Ich werde Ihre Frage mit einem Beispiel beantworten, dem Sie (ich hoffe) in [R] folgen können. Wenn Sie [R] nicht verwenden, können Sie die Ergebnisse in diesem Beitrag verfolgen.
Ich werde den Datensatz verwenden mtcars
. Sie können Dokumentation finden , worum es geht hier . Denken Sie jedoch daran, dass es 32 Modelle gibt und für jedes Modell die Meilen pro Gallone, die Pferdestärke und andere Variablen aufgezeichnet werden. Dies ist der Anfang davon:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
MODELLE:
Wir werden zwei fast zufällige OLS-Regressionen wie folgt durchführen:
fit1 <- lm(mpg ~ wt, mtcars) #mpg regressed on weight of the car
fit2 <- lm(mpg ~ wt + qsec, mtcars) #mpg regressed on weight and qsec
Beachten Sie, dass dies fit1
ein eingeschränktes Modell ist, da wir den Regressionskoeffizienten für qsec
in fit2
auf Null setzen. fit2
umgekehrt ist nicht eingeschränkt .
ANOVA:
anova(fit1, fit2)
Analysis of Variance Table
Model 1: mpg ~ wt
Model 2: mpg ~ wt + qsec
Res.Df RSS Df Sum of Sq F Pr(>F)
1 30 278.32
2 29 195.46 1 82.858 12.293 0.0015 **
Ich werde nicht lange erklären, was diese Werte bedeuten, aber zu sehen, woher sie kommen, wird Ihnen wahrscheinlich helfen.
FREIHEITSGRADE:
1. Fehler oder verbleibende Freiheitsgrade: Wir sehen sie in der Ausgabe des anova
Aufrufs als Res. Df 30
und Res. Df 29
. Sie werden berechnet als:
Nein. Beobachtungen - nein. unabhängige Variablen - 1 = 32 - 1 - 1 = 30für fit1
und32 - 2 - 1 = 29für fit2
. Denken Sie daran, dass wir 32 Automodelle haben.
2. Modell Freiheitsgrade: Es ist gleichNein. keine Variablen .
3. Gesamtfreiheitsgrade: Nein. Beobachtungen - 1.
4. Einschränkungen: Das nicht eingeschränkte Modell ( fit2
) hat zwei unabhängige Variablen und ist daher ein Modell mit2Freiheitsgrade. Im Gegensatz dazu hat das eingeschränkte Modell ( fit1
) nur1Freiheitsgrad. Der Unterschied zwischenModell ohne Einschränkung df - Modell ohne Einschränkung df = 1ist die Anzahl der Einschränkungen, die in der Ausgabe der Anova-Tabelle als angezeigt werden Df 1
.
RESIDUAL SUMME VON QUADRATEN & R QUADRATISCH:
Berechnen wir den RSS ( Restsumme der Quadrate ), auch als Summe der quadratischen Fehler (SSE) bekannt, und den F-Wert . Dazu sind die einschlägigen manuellen Berechnungen:
Mittlere abhängige Variable: y¯
mu_mpg <- mean(mtcars$mpg) # Mean mpg in dataset
Gesamtsumme der Quadrate (TSS): ∑n1(yich- -y¯)2
TSS <- sum((mtcars$mpg - mu_mpg)^2) # Total sum of squares
Modellsumme der Quadrate (MSS): ∑n1(y^ich- -y¯)2
MSS_fit1 <- sum((fitted(fit1) - mu_mpg)^2) # Variation accounted for by model
MSS_fit2 <- sum((fitted(fit2) - mu_mpg)^2) # Variation accounted for by model
Restquadratsumme (RSS, auch SSE): ∑n1(yich- -y^)2
RSS_fit1 <- sum((mtcars$mpg - fitted(fit1))^2) # Error sum of squares fit1
RSS_fit1
278,3219
RSS_fit2 <- sum((mtcars$mpg - fitted(fit2))^2) # Error sum of squares fit2
RSS_fit2
195,4636
Beachten Sie, dass die RSS
Spalte in der ANOVA Tabelle entspricht , RSS_fit1 = 278.3219
und RSS_fit2 = 195.4636
der manuellen Berechnungen oben.
In der ANOVA- Tabelle haben wir auch die Differenz in RSS: sum(residuals(fit1)^2)-sum(residuals(fit2)^2) = 82.85831
oder berechnet wie oben angegeben:
RSS_fit1 - RSS_fit2 = 82.85831, angegeben in der Anova-Tabelle als Sum of Sq
.
Bruchteil RSS / TSS:
Frac_RSS_fit1 <- RSS_fit1 / TSS # % Variation secndry to residuals fit1
Frac_RSS_fit2 <- RSS_fit2 / TSS # % Variation secndry to residuals fit2
R-Quadrat des Modells: 1 - R S.S./ T.S.S.
R.sq_fit1 <- 1 - Frac_RSS_fit1 # % Variation secndry to Model fit1
R.sq_fit1
0,7528328 Vergleiche mit Zusammenfassung (fit1) $ r.square 0.7528328
R.sq_fit2 <- 1 - Frac_RSS_fit2 # % Variation secndry to Model fit2
R.sq_fit2
0,8264161 Vergleiche mit Zusammenfassung (fit2) $ r.square 0.8264161
F WERT:
n <- nrow(mtcars) # Number of subjects or observations
Constraints <- 1 # Constraints imposed or difference in iv's fit2 vs. fit1
UnConstrained <- 2 # Independent variables uncontrained model (fit2)
F.=(R.2mod.2- -R.2mod.1)×( N.- -Nein. ungezwungenmod.2- -1 )( ( 1 -R.2mod.2)×Nein. Einschränkungen )
mit N. entsprechend der Anzahl der Beobachtungen; Nein. ungezwungendie Anzahl der unabhängigen Variablen im vollständigen Modell; undNein. Einschränkungen, der Unterschied in unabhängigen Variablen zwischen dem vollständigen und dem reduzierten Modell.
F_value=(R.sq_fit2 - R.sq_fit1) * (n - UnConstrained - 1) / ((1 - R.sq_fit2) * Constraints)
F_value #
12.29329
Und das p-value
, was in diesem Fall ist 0.0015
, was bedeutsam ist. [R] hat ein Sternensystem, um in diesem Fall auf das Signifikanzniveau hinzuweisen p < 0.01
.
In Bezug auf eine grafischere Interpretation der ANOVA einer OLS-Regression können wir die Modellquadratvariation ( MSS
) fit1
als grüne Linien in der folgenden Darstellung visualisieren (entspricht der Varianz oder dem Signal "zwischen Gruppen"). Dies RSS
ist genau die Summe der Länge der roten Segmente, die die einzelnen Punkte von der angepassten Regressionslinie trennen (und entspricht der Varianz oder dem Rauschen "innerhalb der Gruppe"):
( Code hier )
coef(fit1)
erzeugt die Regressionslinie vonmpg ~ 37.2851 - 5.3445wt
. In der obigen Darstellung gehtmpg
es jedoch darum,30
wannwt=0
statt was es sein sollte (37.2851
). Wie können Sie dieses Dilemma erklären?