2

我正在尝试用 R 包 gnm 拟合广义的 Lee-Carter 模型。我建立了一个数据框

EXPO <- read.table("dati/Exposures.txt",header=TRUE,skip=0)
DEATH <- read.table("dati/Deaths.txt",header=TRUE,skip=2) 
base=data.frame(
D=DEATH$Total,
E=EXPO$Total,
X=as.factor(EXPO$Age),
T=as.factor(EXPO$Year))

现在,虽然这有效

LC1 <- gnm(D/E~ as.factor(X)+Mult(as.factor(X),as.factor(T)),
                 weights=E,family=binomial(link="logit"),data=base)

当我移动到这个时,我得到一个错误

LC2 <- gnm(D/E~ as.factor(X)+instances(Mult(as.factor(X),as.factor(T)),2),
                 weights=E,family=binomial(link="logit"),data=base).

具体来说,

Error in eval(expr, envir, enclos) : object 'D/E' not found

我已经尝试将公式中的“D/E”替换为“base$D/base$E”,但没有成功……

4

1 回答 1

1

我是gnm. 这似乎是一个错误instances,我将在其中记下要修复的错误。同时,您可以指定长格式的实例:

LC2 <- gnm(D/E ~ as.factor(X) + Mult(as.factor(X), as.factor(T), inst = 1) + 
           Mult(as.factor(X), as.factor(T), inst = 2),
           weights = E, family = binomial(link = "logit"), data = base)

或者,按照 Josh 的建议预先计算比例也可以。

于 2015-08-04T08:17:58.607 回答