我遇到使用效果包中的“效果”。我的目标是为我的预测变量的某些值提取拟合模型的值。问题出在具有二次预测变量的混合模型上,但可以使用简单的线性模型来重现。
让我们考虑以下生成的数据:
y=rnorm(n = 12,mean = 10,sd = 3)
time=rep(c(0,1,6,10),3)
df=data.frame(time,y)
现在我拟合一个线性模型并用效果函数得到“时间”的效果:
model=lm(y~time, data=df)
fx=effect("time", model)
我假设我可以通过以下方式获取 4 个时间值的模型值:
time=fx$x
values=fx$fit
但是 fx$x 返回的不是我的 4 个时间点,而是一个时间向量:0 2 5 8 10
我不明白为什么(但我猜我做错了)。我只想获取我的时间点 (0,1,6,10) 的模型值。我该怎么做(这也适用于 lme4::lmer 模型)?
提前致谢
默认情况下,
effects
包将值均匀地分布在焦点预测器的范围内。您可以在 xlevels
参数中明确指定所需的值:
library(effects)
#> Loading required package: carData
#> lattice theme set by effectsTheme()
#> See ?effectsTheme for details.
y=rnorm(n = 12,mean = 10,sd = 3)
time=rep(c(0,1,6,10),3)
df=data.frame(time,y)
model=lm(y~time, data=df)
fx=effect("time", model,
xlevels = list(time = unique(df$time)) )
time=fx$x
time
#> time
#> 1 0
#> 2 1
#> 3 6
#> 4 10
values=fx$fit
values
#> [,1]
#> 1 9.629158
#> 2 9.439073
#> 3 8.488650
#> 4 7.728311
创建于 2024-01-26,使用 reprex v2.0.2