我使用来自包glmer()的lme4函数运行一个具有随机效应的广义线性模型。
模型代码如下所示:
mod6 <- glmer((Ndifference+74337) ~ netm1011 + d1011 +
b0001 + (1|region), Gamma(link = "identity"))Ndifference是50个州(和DC)在200-2010年间人口差异的计数数据。有一个负值(密歇根州为-74336),所以我添加了一个常数,以确保我的反应都是正的。
所有的预测因子(除区域的随机效应外)都是比例或百分比。Netm1011 (2010年到各州的移民率)和d1011 (每千人的死亡率)都有几个负值。B0001包含所有阳性比例(出生率/千人)。
当我运行模型时,我一直收到以下错误:
Error in as.data.frame.default(data) :
cannot coerce class ""family"" to a data.frame我也尝试过不同的发行版本(Gamma,inverse.gaussian)。这个错误代码到底是什么意思?
发布于 2016-12-04 23:42:42
glmer(formula, data = NULL, family = gaussian, control = glmerControl(),
start = NULL, verbose = 0L, nAGQ = 1L, subset, weights, na.action,
offset, contrasts = NULL, mustart, etastart,
devFunOnly = FALSE, ...)您还需要指定正式论证:
family = Gamma(link = "identity")当未指定正式参数时,参数按位置匹配。第二个参数是data,但您将Gamma函数传递给它。因此,model.frame无法工作。
这可能是glmer**.** 与glm相比的一个特殊问题。
glm(formula, family = gaussian, data, weights, subset,
na.action, start = NULL, etastart, mustart, offset,
control = list(...), model = TRUE, method = "glm.fit",
x = FALSE, y = TRUE, contrasts = NULL, ...)第二个论点是family,data是第三个。所以没有问题的是你做了:
glm((Ndifference+74337) ~ netm1011 + d1011, Gamma(link = "identity"))还可以考虑来自mgcv的mgcv
gam(formula,family=gaussian(),data=list(),weights=NULL,subset=NULL,
na.action,offset=NULL,method="GCV.Cp",
optimizer=c("outer","newton"),control=list(),scale=0,
select=FALSE,knots=NULL,sp=NULL,min.sp=NULL,H=NULL,gamma=1,
fit=TRUE,paraPen=NULL,G=NULL,in.out,drop.unused.levels=TRUE,
drop.intercept=NULL,...)我们看到family也排在第二位。
https://stackoverflow.com/questions/40965012
复制相似问题