VGAM (version 1.1-6)

studentt: Student t Distribution


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"))


llocation, lscale, ldf

Parameter link functions for each parameter, e.g., for degrees of freedom \(\nu\). See Links for more choices. The defaults ensures the parameters are in range. A loglog link keeps the degrees of freedom greater than unity; see below.

ilocation, iscale, idf

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.

imethod, zero


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 $$f(y;\nu) = \frac{\Gamma((\nu+1)/2)}{\sqrt{\nu \pi} \Gamma(\nu/2)} \left(1 + \frac{y^2}{\nu} \right)^{-(\nu+1)/2}$$ for all real \(y\). Then \(E(Y)=0\) if \(\nu>1\) (returned as the fitted values), and \(Var(Y)= \nu/(\nu-2)\) for \(\nu > 2\). When \(\nu=1\) then the Student \(t\)-distribution corresponds to the standard Cauchy distribution, cauchy1. When \(\nu=2\) with a scale parameter of sqrt(2) then the Student \(t\)-distribution corresponds to the standard (Koenker) distribution, 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 \(Y = (T - \mu) / \sigma\) where \(\mu\) and \(\sigma\) are the location and scale parameters respectively. Then 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 \((\mu, \log(\sigma), \log\log(\nu))^T\) or subsets thereof.

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.

See Also

uninormal, cauchy1, logistic, huber2, sc.studentt2, TDist, simulate.vlm.


Run this code
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 DataCamp Workspace