Was ist die angepasste R-Quadrat-Formel in lm in R und wie ist sie zu interpretieren?


35

Was ist die genaue Formel, die in R lm() für das angepasste R-Quadrat verwendet wird? Wie kann ich das interpretieren?

Angepasste R-Quadrat-Formeln

Es scheinen verschiedene Formeln zur Berechnung des bereinigten R-Quadrats zu existieren.

  • Wherry-Formel: 1(1R2)(n1)(nv)
  • McNemars Formel:1(1R2)(n1)(nv1)
  • Gottes Formel:1(1R2)(n+v1)(nv1)
  • Steins Formel:1[(n1)(nk1)(n2)(nk2)(n+1)n](1R2)

Lehrbuchbeschreibungen

  • Laut Field's Lehrbuch, Discovering Statistics Using R (2012, S. 273), verwendet R Wherry's Gleichung, die besagt, "wie viel Varianz in Y berücksichtigt würde, wenn das Modell aus der Population abgeleitet worden wäre, aus der die Stichprobe entnommen wurde". Er gibt die Formel für Wherry nicht an. Er empfiehlt die Verwendung von Steins Formel (von Hand), um zu überprüfen, wie gut das Modell eine Kreuzvalidierung durchführt.
  • Kleiber / Zeileis, Angewandte Ökonometrie mit R (2008, S. 59) behaupten, es sei "Theils angepasstes R-Quadrat" und sagen nicht genau, wie sich seine Interpretation von dem multiplen R-Quadrat unterscheidet.
  • Dalgaard, Introductory Statistics with R (2008, S. 113), schreibt: "Wenn Sie [angepasstes R-Quadrat] mit 100% multiplizieren, kann dies als '% Varianzreduktion' interpretiert werden." Er sagt nicht, welcher Formel dies entspricht.

Ich hatte vorher viel darüber nachgedacht und gelesen, dass R-Quadrat bestraft, wenn dem Modell zusätzliche Variablen hinzugefügt wurden. Nun scheint die Verwendung dieser verschiedenen Formeln unterschiedliche Interpretationen erforderlich zu machen. Ich habe mir auch eine verwandte Frage zum Stapelüberlauf ( Was ist der Unterschied zwischen multiplem R-Quadrat und angepasstem R-Quadrat in einer Regression mit einer einzigen variablen kleinsten Quadrate? ) Und das statistische Wörterbuch der Wharton-Schule bei UPenn angesehen .

Fragen

  • Welche Formel wird für das angepasste r-Quadrat von R verwendet lm() ?
  • Wie kann ich das interpretieren?

8
from summary.lm ():, ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf)wobei ans $ r.squared = R ^ 2 ist; n = n, rdf = restliche df, df.int = Schnittpunkt df (0 oder 1).
EDi

Ich werde hier eine Antwort auf das eigentliche Problem geben, nämlich nicht "welche Art von R ^ 2 ...". Die Information, die Ihnen (und vielen anderen) fehlt, ist folgende: Alle R-Pakete, sogar der Kern, stellen den Quellcode zur Verfügung. Sogar Sachen, die in den Distributionen kompiliert wurden, sind in {packagenames} .tar.gz auf dem CRAN oder einem anderen Repository verfügbar.
Carl Witthoft

OP hier: Vielen Dank für diesen tollen Input. Wie wäre es mit meiner zweiten Frage: Wie kann ich sie interpretieren? Ich habe so viele verschiedene Interpretationen von Adj gelesen. R-Quadrat, das manchmal auf einer Formel zu beruhen scheint, die möglicherweise nicht die von Wherry ist?

Antworten:


29

1. Welche Formel wird lmin R für das angepasste r-Quadrat verwendet?

Wie bereits erwähnt, erhalten Sie durch Tippen summary.lmden Code, den R zur Berechnung des angepassten R-Quadrats verwendet. Extrahieren der relevantesten Zeile, die Sie erhalten:

ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf)

was in mathematischer Notation entspricht:

Radj2=1(1R2)n1np1

Angenommen, es gibt einen Achsenabschnitt (dh df.int=1), ist Ihre Stichprobengröße und p ist Ihre Anzahl von Prädiktoren. Somit sind Ihre Fehlerfreiheitsgrade (dh ) gleich .nprdfn-p-1

npnp1

2. Warum gibt es so viele angepasste R-Quadrat-Formeln?

Radj2ρ2ρ2

R2Radj2

Radj2

Radj2ρ2ρ2R2

Verweise

  • R2

9

Zu Ihrer ersten Frage: Wenn Sie nicht wissen, wie sie berechnet wird, schauen Sie sich den Code an! Wenn Sie summary.lmIhre Konsole eingeben, erhalten Sie den Code für diese Funktion. Wenn Sie throught den Code abschöpfen finden Sie eine Zeile finden: ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf). Wenn Sie sich einige Zeilen oberhalb dieser Zeile ansehen, werden Sie feststellen, dass:

  • ans$r.squaredR2
  • n ist die Anzahl der Residuen = Anzahl der Beobachtungen
  • df.int ist 0 oder 1 (abhängig davon, ob Sie einen Intercept haben)
  • rdf sind deine restlichen df

R2R2

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.