censReg和Dates

时间:2015-04-30 17:15:23

标签: r regression covariance

使用censReg函数时,我很难计算方差 - 协方差矩阵。我的示例数据集(在下面发布)没有任何删失数据,因此我可以将结果与简单线性回归(lm)函数进行比较。我将来需要将此应用于具有审查数据的数据集,因此我需要知道它是如何工作的原因。

问题:censReg似乎在处理日期时遇到问题(无论是作为类Date还是转换为类数字)。这是一个简单的数据集:

X = data.table(EVENT=as.Date(c(ISOdate(2011,1,1),ISOdate(2011,1,2),ISOdate(2011,1,3),ISOdate(2011,1,4))),
               VAL = c(12.2,62.4,38.9,65.7),
               INTERP = c(126.42,124.26,125.53,124.48))

当我通过censReg函数传递时,我得到以下结果:

CEN = censReg(formula=log(VAL) ~ INTERP + EVENT,data=X)
vcov(CEN)
            (Intercept) INTERP EVENT logSigma
(Intercept)         Inf    Inf   Inf      Inf
INTERP              Inf    Inf   Inf      Inf
EVENT               Inf    Inf   Inf      Inf
logSigma            Inf    Inf   Inf      Inf

如果我将日期(在本例中为#34; EVENT")字段更改为较小的数字(seq(1,4,1)),则vcov函数将计算某些内容。

X = data.table(EVENT=seq(1,4,1),
               VAL = c(12.2,62.4,38.9,65.7),
               INTERP = c(126.42,124.26,125.53,124.48))

CEN = censReg(formula=log(VAL) ~ INTERP + EVENT,data=X)
vcov(CEN)
              (Intercept)        INTERP         EVENT      logSigma
(Intercept)  1.112009e+02 -8.802189e-01 -4.073329e-01  5.874470e-09
INTERP      -8.802189e-01  6.968719e-03  3.170767e-03 -4.652036e-11
EVENT       -4.073329e-01  3.170767e-03  4.176038e-03 -2.049346e-11
logSigma     5.874470e-09 -4.652036e-11 -2.049346e-11  1.250000e-01

我尝试将EVENT字段转换为数字值,但这仍然不起作用。

X = data.table(EVENT=as.Date(c(ISOdate(2011,1,1),ISOdate(2011,1,2),ISOdate(2011,1,3),ISOdate(2011,1,4))),
               VAL = c(12.2,62.4,38.9,65.7),
               INTERP = c(126.42,124.26,125.53,124.48))
X[,EVENT := as.numeric(EVENT)]
CEN = censReg(formula=log(VAL) ~ INTERP + EVENT,data=X)
vcov(CEN)
            (Intercept) INTERP EVENT logSigma
(Intercept)         Inf    Inf   Inf      Inf
INTERP              Inf    Inf   Inf      Inf
EVENT               Inf    Inf   Inf      Inf
logSigma            Inf    Inf   Inf      Inf

有谁知道发生了什么事?

0 个答案:

没有答案