我从包中装了一个R带有lmer()-function 的模型lme4.我缩放了因变量:
mod <- lmer(scale(Y)
~ X
+ (X | Z),
data = df,
REML = FALSE)
Run Code Online (Sandbox Code Playgroud)
我看一下固定效应系数fixef(mod):
> fixef(mod)
(Intercept) X1 X2 X3 X4
0.08577525 -0.16450047 -0.15040043 -0.25380073 0.02350007
Run Code Online (Sandbox Code Playgroud)
从固定效应系数手动计算平均值非常容易.但是,我希望它们不被缩放,我不确定如何完全这样做.我知道缩放意味着减去每个平均值Y并且偏离标准偏差.但是,平均值和标准偏差都是从原始数据计算出来的.在lmer()使用原始数据的均值和标准偏差拟合-model 后,我可以简单地反转此过程吗?
谢谢你的帮助!
更新:我提出上述模型的方式似乎意味着通过取所有响应的均值并除以所有响应的标准差来缩放因变量.通常,它的完成方式不同.不是采用总体平均值和标准偏差,而是通过使用该受试者的反应的平均值和标准偏差来对每个受试者标准化响应.(这是奇怪的,lmer()我认为随机拦截应该照顾...更不用说我们正在谈论按顺序计算方法的事实......)然而问题保持不变:一旦我适合这样一个模型,是否有一种干净的方法来重新调整拟合模型的系数?
我一直在努力将缩放和居中的模型系数从glmer模型转换回未经中断和未缩放的值.
我在lme4(v1.1.7)包中使用GLMM分析了一个数据集.它涉及声学接收器的最大检测范围的计算和环境变量的影响.
样本数据:
dd <- structure(list(SUR.ID = c(10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L, 10186L,
10186L, 10186L, 10186L, 10186L, …Run Code Online (Sandbox Code Playgroud) 我使用OLS拟合线性模型,并使用R中的函数比例缩放我的回归量,因为变量之间的度量单位不同.然后,我使用lm命令拟合模型并获得拟合模型的系数.据我所知,拟合模型的系数与原始回归量变量的系数不同,因此必须先缩小才能解释.我一直在寻找一种无法找到任何东西的直接方法.有谁知道这是怎么做到的吗?
请查看代码,能否请您帮我实施您提出的建议?
library(zoo)
filename="DataReg4.csv"
filepath=paste("C:/Reg/",filename, sep="")
separator=";"
readfile=read.zoo(filepath, sep=separator, header=T, format = "%m/%d/%Y", dec=".")
readfile=as.data.frame(readfile)
str(readfile)
DF=readfile
DF=as.data.frame(scale(DF))
fm=lm(USD_EUR~diff_int+GDP_US+Net.exports.Eur,data=DF)
summary(fm)
plot(fm)
Run Code Online (Sandbox Code Playgroud)
对不起,这是数据.