Hoe waarden in r te voorspellen met behulp van een meervoudig regressiemodel
U kunt de volgende basissyntaxis gebruiken om waarden in R te voorspellen met behulp van een aangepast meervoudig lineair regressiemodel:
#define new observation new <- data. frame (x1=c(5), x2=c(10), x3=c(12.5)) #use fitted model to predict the response value for the new observation predict(model, newdata=new)
Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.
Voorbeeld: Waarden voorspellen met behulp van een aangepast meervoudig lineair regressiemodel
Stel dat we de volgende dataset in R hebben die informatie over basketbalspelers bevat:
#create data frame df <- data. frame (rating=c(67, 75, 79, 85, 90, 96, 97), points=c(8, 12, 16, 15, 22, 28, 24), assists=c(4, 6, 6, 5, 3, 8, 7), rebounds=c(1, 4, 3, 3, 2, 6, 7)) #view data frame df rating points assists rebounds 1 67 8 4 1 2 75 12 6 4 3 79 16 6 3 4 85 15 5 3 5 90 22 3 2 6 96 28 8 6 7 97 24 7 7
Stel nu dat we een meervoudig lineair regressiemodel passen met behulp van points , assists en rebounds als voorspellende variabelen en rating alsresponsvariabele :
#fit multiple linear regression model model <- lm(rating ~ points + assists + rebounds, data=df) #view model summary summary(model) Call: lm(formula = rating ~ points + assists + rebounds, data = df) Residuals: 1 2 3 4 5 6 7 -1.5902 -1.7181 0.2413 4.8597 -1.0201 -0.6082 -0.1644 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 66.4355 6.6932 9.926 0.00218 ** points 1.2152 0.2788 4.359 0.02232 * assists -2.5968 1.6263 -1.597 0.20860 rebounds 2.8202 1.6118 1.750 0.17847 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.193 on 3 degrees of freedom Multiple R-squared: 0.9589, Adjusted R-squared: 0.9179 F-statistic: 23.35 on 3 and 3 DF, p-value: 0.01396
Uit de waarden in de kolom Schatting kunnen we het passende regressiemodel schrijven:
Score = 66,4355 + 1,2151 (punten) – 2,5968 (assists) + 2,8202 (rebounds)
We kunnen de volgende code gebruiken om de rating te voorspellen van een nieuwe speler die 20 punten, 5 assists en 2 rebounds heeft:
#define new player new <- data. frame (points=c(20), assists=c(5), rebounds=c(2)) #use the fitted model to predict the rating for the new player predict(model, newdata=new) 1 83.39607
Het model voorspelt dat deze nieuwe speler een rating van 83,39607 zal hebben.
We kunnen bevestigen dat dit correct is door de waarden van de nieuwe speler in de aangepaste regressievergelijking in te voegen:
- Score = 66,4355 + 1,2151 (punten) – 2,5968 (assists) + 2,8202 (rebounds)
- Beoordeling = 66,4355 + 1,2151(20) – 2,5968(5) + 2,8202(2)
- Score = 83,39
Dit komt overeen met de waarde die we hebben berekend met de functie voorspellen() in R.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe maak je een restplot in R