我试图使用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
我已经尝试替换&#34; D / E&#34;与&#34;基础$ D /基础$ E&#34;在公式中,但它没有工作......
答案 0 :(得分:0)
我是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的建议预先计算比例也可以。