[英]Predict multiple dependent variables in R (linear model as example)
讓我們使用mtcars
作為示例數據集。
data <- mtcars
現在,我正在創建一個線性模型,其中有兩個因變量( mpg
和disp
)。 所有其他變量/列都是自變量。 我構建線性函數:
fit <- lm(mpg + disp ~ ., data=data)
我想預測兩個因變量( mpg
和disp
),所以我運行predict()
。
predict(fit, data)
但是,結果每行僅返回一個值,而不是每行返回兩個值(兩個因變量)。 這是輸出:
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout Valiant Duster 360 Merc 240D
165.60538 179.57702 159.75746 247.73607 344.79637 251.66598 348.80082 160.58774
Merc 230 Merc 280 Merc 280C Merc 450SE Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
148.81596 207.46454 200.85338 360.66297 331.60317 331.14515 429.61466 452.19838
Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
462.42356 126.53160 59.90496 93.95177 149.87657 332.59491 325.64415 380.86739
Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
375.64822 111.88026 159.05993 101.86053 369.53347 169.01770 309.00674 177.31316
predict()
或任何其他函數獲得兩個因變量值?請注意,此模型可能不現實或不重要。 純粹是技術編程任務,所以不要去評判模型的效用。
不要添加響應, cbind
它們。
fit <- lm(cbind(mpg, disp) ~ ., data=mtcars)
y <- predict(fit)
head(y)
#> mpg disp
#> Mazda RX4 22.37587 143.2295
#> Mazda RX4 Wag 22.07853 157.4985
#> Datsun 710 26.58631 133.1712
#> Hornet 4 Drive 20.82285 226.9132
#> Hornet Sportabout 17.26052 327.5359
#> Valiant 20.46572 231.2003
創建於 2022-12-21,使用reprex v2.0.2
沒有被問到,但它也適用於模型的殘差。
e <- resid(fit)
head(e)
#> mpg disp
#> Mazda RX4 -1.3758673 16.770486
#> Mazda RX4 Wag -1.0785279 2.501505
#> Datsun 710 -3.7863074 -25.171152
#> Hornet 4 Drive 0.5771451 31.086782
#> Hornet Sportabout 1.4394832 32.464148
#> Valiant -2.3657210 -6.200261
創建於 2022-12-21,使用reprex v2.0.2
這種cbind
的使用是通用的,對於glm
的邏輯回歸示例,請參見此處的月經初潮示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.