让我们说我有10个国家(2级)的300家公司(1级)的数据。 1级变量是PQ和大小。二级变量是人均国内生产总值。使用lmer进行多级回归缩放的正确方法[R]
library(lme4)
set.seed(1)
PQ <- runif(300,7,21)
id <- (1:300)
country <- sample(1:10,300,replace=T)
size <- sample(1:25000,300,replace=T)
GDP <- sample(800:40000,10,replace=T)
Country1 <- 1:10
L1data <- as.data.frame(cbind(id,country,PQ,size))
L2data <- as.data.frame(cbind(Country1,GDP))
MLdata <- merge(L1data,L2data, by.x = "country", by.y = "Country1")
dummymodel <- lmer(PQ ~ size + GDP + (size|country), data = MLdata, REML = F)
当我运行此我得到的警告消息
警告信息:1:一些预测变量是非常不同的 尺度:考虑重新调整2:在checkConv(ATTR(选择 “derivs” ), opt $ par,ctrl = control $ checkConv,:模型与 max | grad | = 1.77081(tol = 0.002,component 1)收敛3:在 checkConv(attr(opt,“derivs”),opt $ par,ctrl = control $ checkConv,:
模型几乎不可识别:非常大的特征值 - 重新定义变量?模型几乎不可识别:较大的特征值比率 - 重新定义变量?
事实上,当我运行的原始数据,我得到一个额外的警告信息模型:
模型没有收敛:堕落黑森州与1个负本征值
我想我需要扩展自变量来解决这个问题。像这样在多级回归中进行缩放的正确方法是什么?这个问题很重要,因为多级模型的结果依赖于缩放。或者还有其他一些我无法找到的问题?
缩放所有变量'as.data.frame(scale(MLdata))'后,模型正确拟合。 –
谢谢。这在理论上是有效的在多层次上缩放这样的数据吗?由于缩放,每个级别解释的结果和方差都有显着变化。 –