Estimating the parameters of a Student t distribution.
studentt (ldf = "logloglink", idf = NULL, tol1 = 0.1, imethod = 1)
studentt2(df = Inf, llocation = "identitylink", lscale = "loglink",
ilocation = NULL, iscale = NULL, imethod = 1, zero = "scale")
studentt3(llocation = "identitylink", lscale = "loglink", ldf = "logloglink",
ilocation = NULL, iscale = NULL, idf = NULL,
imethod = 1, zero = c("scale", "df"))
Optional initial values. If given, the values must be in range. The default is to compute an initial value internally.
A positive value, the tolerance for testing whether an initial value is 1. Best to leave this argument alone.
Numeric, user-specified degrees of freedom. It may be of length equal to the number of columns of a response matrix.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
The Student t density function is
cauchy1
.
When sqrt(2)
then
the Student sc.studentt2
.
The degrees of freedom can be treated as a parameter to be estimated,
and as a real and not an integer.
The Student t distribution is used for a variety of reasons
in statistics, including robust regression.
Let studentt3
estimates the location, scale and
degrees of freedom parameters.
And studentt2
estimates the location, scale parameters
for a user-specified degrees of freedom, df
.
And studentt
estimates the degrees of freedom parameter only.
The fitted values are the location parameters.
By default the linear/additive predictors are
In general convergence can be slow, especially when there are covariates.
Student (1908). The probable error of a mean. Biometrika, 6, 1--25.
Zhu, D. and Galbraith, J. W. (2010). A generalized asymmetric Student-t distribution with application to financial econometrics. Journal of Econometrics, 157, 297--305.
uninormal
,
cauchy1
,
logistic
,
huber2
,
sc.studentt2
,
TDist
,
simulate.vlm
.
# NOT RUN {
tdata <- data.frame(x2 = runif(nn <- 1000))
tdata <- transform(tdata, y1 = rt(nn, df = exp(exp(0.5 - x2))),
y2 = rt(nn, df = exp(exp(0.5 - x2))))
fit1 <- vglm(y1 ~ x2, studentt, data = tdata, trace = TRUE)
coef(fit1, matrix = TRUE)
fit2 <- vglm(y1 ~ x2, studentt2(df = exp(exp(0.5))), data = tdata)
coef(fit2, matrix = TRUE) # df inputted into studentt2() not quite right
fit3 <- vglm(cbind(y1, y2) ~ x2, studentt3, data = tdata, trace = TRUE)
coef(fit3, matrix = TRUE)
# }
Run the code above in your browser using DataLab