[英]Regression model point estimation
我想根據參數的值列表檢索二階多項式回歸線的值。
這是模型:
fit <- lm(y ~ poly(age, 2) + height + age*height)
我想使用年齡值列表並檢索回歸線上的值,以及標准偏差和標准誤差。 'age'是一個連續變量,但我想創建一個離散值數組並從回歸線返回預測值。
例:
age <- c(10, 11, 12, 13, 14)
由於您有一個交互項,因此當您同時指定要考慮的height
值時,線性或二次age
項(或兩者一起)的回歸系數僅具有意義。 因此,要獲得高度達到其平均值時的預測,您可以這樣做:
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 )
我想如果你做了一個自舉運行,並將單獨系數的標准偏差看作系數的標准誤差的估計,那可能被認為是一個標准偏差,但它會在參數空間的范圍內而不是變量的規模。
您的數據有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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.