效果函数的问题:如何从模型中获取调整后的值?

问题描述 投票:0回答:1

我遇到使用效果包中的“效果”。我的目标是为我的预测变量的某些值提取拟合模型的值。问题出在具有二次预测变量的混合模型上,但可以使用简单的线性模型来重现。

让我们考虑以下生成的数据:

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 模型)?

提前致谢

r model lm effects
1个回答
0
投票

默认情况下,

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

© www.soinside.com 2019 - 2024. All rights reserved.