[R] Tobit Estimation with Panel Data
Terry Therneau
therneau at mayo.edu
Thu Jul 3 14:27:30 CEST 2008
Adding true random effects to survreg is certainly on my list of useful
additions, but one with no start date in sight. That said, one can get an
alternate solution with
survreg(Surv(time, status) ~ x1 + x2 + frailty.gaussian(id, method='aic'))
Justification: one can view a random effects model as a penalized model, that
is, as
a. the addition of "factor(id)" - a coefficient b_i for each subject
b. a shrinkage penalty, -.5*k* sum(b_i^2), is added to the log-lik, and
we minimize the sum
c. the value of k is chosen to maximize an integrated likelihood, one
with the b's integrated out. 1/k is the variance of the random effect
The above code uses the AIC to choose k. You could also use a user-specified
degrees of freedom.
WARNING: Using "method='reml'" in the above won't work correctly. The fact
that no warning is given in this case is serious flaw in the survival package.
(In my defense, the 'penalty function' code for coxph and survreg was designed
to allow general user-written penalties; a side effect is that the penalty
functions can't easily tell which routine is calling them. Most, e.g.,
pspline() and ridge(), work for both coxph and survreg. But frailty with either
an 'ml' or 'reml' argument computes the appropriate Cox model integral, not the
survreg one, and so gives nonsense answers when used with survreg.)
Terry Therneau
More information about the R-help
mailing list