我想根据参数值列表来检索二阶多项式回归线的值。
这是模型:
fit <- lm(y ~ poly(age, 2) + height + age*height)
我想使用年龄值列表并在回归线上检索值,以及标准偏差和标准误差。 “年龄”是一个连续变量,但我想创建一个离散值数组并从回归线返回预测值。
示例:
age <- c(10, 11, 12, 13, 14)
答案 0 :(得分:4)
由于您有一个交互项,因此线性或二次age
项(或两者)的回归系数仅在同时指定要考虑的height
值时才有意义。因此,要在高度达到平均值时进行预测,您可以这样做:
predict(fit, data.frame(age=c(10, 11, 12, 13, 14), height=mean(height) ) )
bouncyball
提出了一个很好的观点。您询问了“标准偏差和标准误差”,但是系数和预测没有通常使用的“标准偏差”,但是比率“估计的标准误差”通常缩短为标准误差。
predict(fit, data.frame(age=c(10, 11, 12, 13, 14), height=mean(height) ), se.fit=TRUE )
我想,如果您进行了引导程序运行,并查看了各个系数的标准偏差作为系数std误差的估计值,则可以说这是一个标准偏差,但它的范围是参数空间而不是变量的规模。
答案 1 :(得分:2)
您的数据有2个变量,因此您需要同时提供年龄和身高。
例如,使用模拟数据:
age = sample(10)
height = sort(rnorm(10, 6, 1))
y = sort(rnorm(10, 150, 30))
fit <- lm(y ~ age + poly(age, 2) + height + age*height)
要获得预测,请指定年龄和身高,然后进行预测:
# I'm using my own heights, you should choose the values you're interested in
new.data <- data.frame(age=c(10, 11, 12, 13, 14) ,
height=c(5.7, 6.3, 5.8, 5.9, 6.0) )
> predict(fit, new.data)
1 2 3 4 5
132.76675715 137.70712251 113.39494557 102.07262016 88.84240532
为每个预测获取置信带
> predict(fit, new.data, interval="confidence")
fit lwr upr
1 132.76675715 96.0957812269 169.43773307
2 137.70712251 73.2174486246 202.19679641
3 113.39494557 39.5470153667 187.24287578
4 102.07262016 3.5466926099 200.59854771
5 88.84240532 -37.7404171712 215.42522781