Ich habe eine multiple Regression durchgeführt, bei der das Modell als Ganzes signifikant ist und ungefähr 13% der Varianz erklärt. Ich muss jedoch den Betrag der Varianz finden, der von jedem signifikanten Prädiktor erklärt wird. Wie kann ich das mit R machen?
Hier sind einige Beispieldaten und Code:
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 )
Hier ist die Ausgabe mit meinen aktuellen Daten:
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
Diese Frage wurde beantwortet hier , aber die akzeptierte Antwort bezieht mich nur auf unkorrelierte Prädiktoren, und während es eine zusätzliche Antwort ist , dass Adressen Prädiktoren korrelierten, es gibt nur einen allgemeinen Hinweis, nicht eine bestimmte Lösung. Ich möchte wissen, was zu tun ist, wenn meine Prädiktoren korreliert sind.
r
regression
variance
baixiwei
quelle
quelle
relaimpo
Paket und sein Begleitpapier zu schauen : jstatsoft.org/index.php/jss/article/view/v017i01/v17i01.pdf Ich verwende häufig die "LMG" -Methode.Antworten:
Der erläuterte Prozentsatz hängt von der eingegebenen Bestellung ab.
Wenn Sie eine bestimmte Reihenfolge angeben, können Sie diese in R trivial berechnen (z. B. über die
update
undanova
Funktionen , siehe unten), aber eine andere Reihenfolge der Eingabe würde möglicherweise sehr unterschiedliche Antworten ergeben.[Eine Möglichkeit könnte darin bestehen, über alle Bestellungen oder Ähnliches zu mitteln, aber es würde unhandlich und könnte eine besonders nützliche Frage nicht beantworten.]
-
Wie Stat betont, können Sie mit einem einzelnen Modell, wenn Sie nach jeweils einer Variablen suchen, einfach 'anova' verwenden, um die inkrementellen Summen der Quadrattabelle zu erstellen. Dies würde aus Ihrem Code folgen:
-
Da haben wir also die inkrementelle Varianz erklärt; Wie bekommen wir den Anteil?
Ziemlich trivial, skaliere sie durch 1 geteilt durch ihre Summe. (Ersetzen Sie die 1 durch 100 für die erläuterte prozentuale Abweichung.)
Hier habe ich es als eine hinzugefügte Spalte zur anova-Tabelle angezeigt:
-
Wenn Sie sich für mehrere bestimmte Eingabereihenfolgen entscheiden, können Sie etwas noch Allgemeineres tun (das es Ihnen auch ermöglicht, Gruppen von Variablen gleichzeitig einzugeben oder zu entfernen, wenn Sie dies wünschen):
(Ein solcher Ansatz könnte auch automatisiert werden, z. B. über Schleifen und die Verwendung von
get
. Sie können Variablen bei Bedarf in mehreren Reihenfolgen hinzufügen und entfernen.)... und dann wie zuvor auf Prozent skalieren.
(NB. Die Tatsache, dass ich erkläre, wie man diese Dinge macht, sollte nicht unbedingt als Anwalt für alles verstanden werden, was ich erkläre.)
quelle
anova(fit)
summary.lm
gibt Ihnen der t-Test in der Regressionstabelle von einen Test der Signifikanz jeder Variablen, die bereits zuletzt angepasst wurde.)Ich habe bewiesen, dass der Prozentsatz der Variation, der durch einen gegebenen Prädiktor in einer multiplen linearen Regression erklärt wird, das Produkt des Steigungskoeffizienten und der Korrelation des Prädiktors mit den angepassten Werten der abhängigen Variablen ist (unter der Annahme, dass alle Variablen standardisiert wurden, um den Mittelwert Null zu haben und Varianz eins (ohne Verlust der Allgemeinheit). Hier finden Sie es:
https://www.researchgate.net/publication/306347340_A_Natural_Decomposition_of_R2_in_Multiple_Linear_Regression
quelle
Sie können die hier.part-Bibliothek verwenden, um Anpassungsgütemaßnahmen für die Regression einer einzelnen abhängigen Variablen auf alle Kombinationen von N unabhängigen Variablen zu erhalten
quelle