So berechnen sie dffits in r
In der Statistik wollen wir oft wissen, welchen Einfluss verschiedene Beobachtungen auf Regressionsmodelle haben.
Eine Möglichkeit, den Einfluss von Beobachtungen zu berechnen, ist die Verwendung einer Metrik namens DFFITS , die für „Differenz in Anpassungen“ steht.
Diese Metrik sagt uns, wie sehr sich die Vorhersagen eines Regressionsmodells ändern, wenn wir eine einzelne Beobachtung weglassen.
Dieses Tutorial zeigt ein schrittweises Beispiel für die Berechnung und Visualisierung von DFFITS für jede Beobachtung in einem Modell in R.
Schritt 1: Erstellen Sie ein Regressionsmodell
Zuerst erstellen wir ein multiples lineares Regressionsmodell unter Verwendung des in R integrierten mtcars- Datensatzes:
#load the dataset data(mtcars) #fit a regression model model <- lm(mpg~disp+hp, data=mtcars) #view model summary summary(model) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.127 on 29 degrees of freedom Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09
Schritt 2: Berechnen Sie DFFITS für jede Beobachtung
Als Nächstes verwenden wir die integrierte Funktion dffits() , um den DFFITS-Wert für jede Beobachtung im Modell zu berechnen:
#calculate DFFITS for each observation in the model dffits <- as . data . frame (dffits(model)) #display DFFITS for each observation challenges dffits(model) Mazda RX4 -0.14633456 Mazda RX4 Wag -0.14633456 Datsun 710 -0.19956440 Hornet 4 Drive 0.11540062 Hornet Sportabout 0.32140303 Valiant -0.26586716 Duster 360 0.06282342 Merc 240D -0.03521572 Merc 230 -0.09780612 Merc 280 -0.22680622 Merc 280C -0.32763355 Merc 450SE -0.09682952 Merc 450SL -0.03841129 Merc 450SLC -0.17618948 Cadillac Fleetwood -0.15860270 Lincoln Continental -0.15567627 Chrysler Imperial 0.39098449 Fiat 128 0.60265798 Honda Civic 0.35544919 Toyota Corolla 0.78230167 Toyota Corona -0.25804885 Dodge Challenger -0.16674639 AMC Javelin -0.20965432 Camaro Z28 -0.08062828 Pontiac Firebird 0.67858692 Fiat X1-9 0.05951528 Porsche 914-2 0.09453310 Lotus Europa 0.55650363 Ford Pantera L 0.31169050 Ferrari Dino -0.29539098 Maserati Bora 0.76464932 Volvo 142E -0.24266054
Normalerweise schauen wir uns Beobachtungen mit DFFITS-Werten über einem Schwellenwert von 2√ p/n genauer an, wobei:
- p: Anzahl der im Modell verwendeten Prädiktorvariablen
- n: Anzahl der im Modell verwendeten Beobachtungen
In diesem Beispiel wäre der Schwellenwert 0,5 :
#find number of predictors in model p <- length (model$coefficients)-1 #find number of observations n <- nrow (mtcars) #calculate DFFITS threshold value thresh <- 2* sqrt (p/n) thresh [1] 0.5
Wir können die Beobachtungen nach ihren DFFITS-Werten sortieren, um zu sehen, ob einer von ihnen den Schwellenwert überschreitet:
#sort observations by DFFITS, descending dffits[ order (-dffits[' dffits(model) ']), ] [1] 0.78230167 0.76464932 0.67858692 0.60265798 0.55650363 0.39098449 [7] 0.35544919 0.32140303 0.31169050 0.11540062 0.09453310 0.06282342 [13] 0.05951528 -0.03521572 -0.03841129 -0.08062828 -0.09682952 -0.09780612 [19] -0.14633456 -0.14633456 -0.15567627 -0.15860270 -0.16674639 -0.17618948 [25] -0.19956440 -0.20965432 -0.22680622 -0.24266054 -0.25804885 -0.26586716 [31] -0.29539098 -0.32763355
Wir können sehen, dass die ersten fünf Beobachtungen einen DFFITS-Wert von mehr als 0,5 haben, was bedeutet, dass wir diese Beobachtungen möglicherweise genauer untersuchen möchten, um festzustellen, ob sie einen großen Einfluss auf das Modell haben.
Schritt 3: Visualisieren Sie die DFFITS für jede Beobachtung
Schließlich können wir ein schnelles Diagramm erstellen, um die DFFITS für jede Beobachtung zu visualisieren:
#plot DFFITS values for each observation plot(dffits(model), type = ' h ') #add horizontal lines at absolute values for threshold abline(h = thresh, lty = 2) abline(h = -thresh, lty = 2)
Die x-Achse zeigt den Index jeder Beobachtung im Datensatz und der y-Wert zeigt den entsprechenden DFFITS-Wert für jede Beobachtung an.
Zusätzliche Ressourcen
So führen Sie eine einfache lineare Regression in R durch
So führen Sie eine multiple lineare Regression in R durch
So berechnen Sie Hebelstatistiken in R
So erstellen Sie ein Residuendiagramm in R