Przeprowadziłem regresję wielokrotną, w której model jako całość jest znaczący i wyjaśnia około 13% wariancji. Muszę jednak znaleźć wielkość wariancji wyjaśnioną przez każdy znaczący predyktor. Jak mogę to zrobić za pomocą R?
Oto kilka przykładowych danych i kodu:
D = data.frame(
dv = c( 0.75, 1.00, 1.00, 0.75, 0.50, 0.75, 1.00, 1.00, 0.75, 0.50 ),
iv1 = c( 0.75, 1.00, 1.00, 0.75, 0.75, 1.00, 0.50, 0.50, 0.75, 0.25 ),
iv2 = c( 0.882, 0.867, 0.900, 0.333, 0.875, 0.500, 0.882, 0.875, 0.778, 0.867 ),
iv3 = c( 1.000, 0.067, 1.000, 0.933, 0.875, 0.500, 0.588, 0.875, 1.000, 0.467 ),
iv4 = c( 0.889, 1.000, 0.905, 0.938, 0.833, 0.882, 0.444, 0.588, 0.895, 0.812 ),
iv5 = c( 18, 16, 21, 16, 18, 17, 18, 17, 19, 16 ) )
fit = lm( dv ~ iv1 + iv2 + iv3 + iv4 + iv5, data=D )
summary( fit )
Oto wynik z moimi faktycznymi danymi:
Call: lm(formula = posttestScore ~ pretestScore + probCategorySame +
probDataRelated + practiceAccuracy + practiceNumTrials, data = D)
Residuals:
Min 1Q Median 3Q Max
-0.6881 -0.1185 0.0516 0.1359 0.3690
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.77364 0.10603 7.30 8.5e-13 ***
iv1 0.29267 0.03091 9.47 < 2e-16 ***
iv2 0.06354 0.02456 2.59 0.0099 **
iv3 0.00553 0.02637 0.21 0.8340
iv4 -0.02642 0.06505 -0.41 0.6847
iv5 -0.00941 0.00501 -1.88 0.0607 .
--- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.18 on 665 degrees of freedom
Multiple R-squared: 0.13, Adjusted R-squared: 0.123
F-statistic: 19.8 on 5 and 665 DF, p-value: <2e-16
To pytanie zostało odebrane tutaj , ale akceptowaną odpowiedź odnosi się jedynie nieskorelowanych czynników predykcyjnych, a jednocześnie istnieje dodatkowa odpowiedź, że adresy skorelowane czynników predykcyjnych, zapewnia jedynie ogólną wskazówkę, nie jest rozwiązaniem specyficzny. Chciałbym wiedzieć, co zrobić, jeśli moje predyktory są skorelowane.
relaimpo
pakietu i dołączonej do niego pracy: jstatsoft.org/index.php/jss/article/view/v017i01/v17i01.pdf Często używam metody „LMG”.