`glmer{lme4}` 出错:无法将 class "family" 强制转换为 data.frame
Error with `glmer{lme4}`: cannot coerce class "family" to a data.frame
我正在 运行 使用包 lme4
.
中的 glmer()
函数建立具有随机效应的广义线性模型
模型代码如下所示:
mod6 <- glmer((Ndifference+74337) ~ netm1011 + d1011 +
b0001 + (1|region), Gamma(link = "identity"))
Ndifference
是美国50个州(和DC)200年到2010年的人口差异统计数据。有一个负值(密歇根州为 -74336),所以我添加了一个常数以确保我的反应都是积极的。
所有预测变量(区域随机效应除外)都是比例或百分比。 Netm1011(2010 年移民到各州的比率)和 d1011(每 1000 人的死亡率)都有几个负值。 B0001 包含所有正比例(出生 rate/1000 人)。
当我 运行 模型时,我不断收到此错误:
Error in as.data.frame.default(data) :
cannot coerce class ""family"" to a data.frame
我也尝试过不同系列的发行版 (Gamma
、inverse.gaussian
)。这个错误代码到底是什么意思?
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"))
还考虑 gam
来自 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
也在第二位。
我正在 运行 使用包 lme4
.
glmer()
函数建立具有随机效应的广义线性模型
模型代码如下所示:
mod6 <- glmer((Ndifference+74337) ~ netm1011 + d1011 +
b0001 + (1|region), Gamma(link = "identity"))
Ndifference
是美国50个州(和DC)200年到2010年的人口差异统计数据。有一个负值(密歇根州为 -74336),所以我添加了一个常数以确保我的反应都是积极的。
所有预测变量(区域随机效应除外)都是比例或百分比。 Netm1011(2010 年移民到各州的比率)和 d1011(每 1000 人的死亡率)都有几个负值。 B0001 包含所有正比例(出生 rate/1000 人)。
当我 运行 模型时,我不断收到此错误:
Error in as.data.frame.default(data) :
cannot coerce class ""family"" to a data.frame
我也尝试过不同系列的发行版 (Gamma
、inverse.gaussian
)。这个错误代码到底是什么意思?
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"))
还考虑 gam
来自 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
也在第二位。