Korrelation Regression

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
anna_stat

Korrelation Regression

Beitrag von anna_stat »

Hallo!

Ich habe ein kleines Verständnis-Problem vielleicht kann mir jemand helfen?

Ich habe ein multiples Regressionsmodell (reg.mod) erstellt und möchte nun die Korrelation zwischen den tatsächlichen und den vorhergesagten Werten bestimmen, um zu sehen, wie gut das Modell funktioniert.

Code: Alles auswählen


y.predict<-predict.lm(reg.mod)		#Werte vorhersagen mit der Funktion predict()
y.actual<-kg					#Vektor mit den tatsächlichen Werten
y.actual.predict<-cbind(y.actual, y.predict)	
cor(y.actual.predict, use="pairwise.complete.obs") #Korrelation berechnen

Als Ergebnis erhalte ich eine Korrelation von 0,89. Eine so hohe Korrelation würde ich aufgrund meiner Daten als falsch einstufen. Kann mir jemand sagen,, ob in meinen R-Codes oben ein Fehler vorliegt?

Danke!
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Korrelation Regression

Beitrag von bigben »

Hi!

Anhand welcher Daten schätzt Du das als schlecht ein? Welches R^2 hat Dein Modell ergeben? Wie sieht der Plot aus?

Code: Alles auswählen

plot(y.actual, y.predict)
Magst Du uns sonst ein wenig mehr über das Modell sagen, z. B.

Code: Alles auswählen

summary(reg.mod)


Frohe Weihnacht!

Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
anna_stat

Re: Korrelation Regression

Beitrag von anna_stat »

Lieber Bernhard,

vielen Dank für Deine Antwort! Hier sind ein paar mehr Infos zu meinen Daten:

Code: Alles auswählen


> summary(reg.mod)

Call:
lm(formula = kg ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9)

Residuals:
    Min      1Q  Median      3Q     Max 
-105.40  -24.95   -1.02   24.83  110.36 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -207.196    142.309  -1.456 0.146835    
x1             4.518      1.683   2.685 0.007813 ** 
x2             3.414      1.189   2.872 0.004480 ** 
x3           -14.499      2.675  -5.420 1.57e-07 ***
x4             7.347      3.481   2.111 0.035946 *  
x5            -4.186      2.157  -1.941 0.053555 .  
x6            -3.819      2.744  -1.392 0.165426    
x7             7.545      2.516   2.999 0.003025 ** 
x8             4.016      2.055   1.955 0.051885 .  
x9            -8.167      2.357  -3.465 0.000637 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 41.1 on 219 degrees of freedom
  (81141 observations deleted due to missingness)
Multiple R-squared:  0.458,	Adjusted R-squared:  0.4357 
F-statistic: 20.56 on 9 and 219 DF,  p-value: < 2.2e-16
Das R² liegt bei "nur" 0,458, weshalb ich eine Korrelation von 0,89 als falsch einstufen würde.

Ich hätte noch eine weitere Frage, die Du mir evtl beantworten kannst: Nach welchem Kriterium wähle ich mein Regressionsmodell aus? Achte ich wirklich nur auf das R² bzw. auf das adjustierte R² oder besser doch auf den root mean squared error? Und warum?

Viele Grüße
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Korrelation Regression

Beitrag von bigben »

Huch,

keine 230 eingeschlossenen Fälle bei achzigtausend Nicht-Eingeschlossenen? Das ist Dir bestimmt aufgefallen bzw. war hoffentlich so geplant. Du hast ein recht gut passendes Modell, warum sollte nicht die Korrelation zwischen vorhergesagten und wahren Werten gut sein?

R^2 sagt ja zunächst einmal nur etwas über die Korrelation von kg mit x1 bis x9 aus. Nicht über die Korrelation von Vorhersagewerten, oder fehlt mir da das entscheidende Stück Wissen?

Also mir erscheint das r so unplausibel nicht. Hast Du beides denn mal gegeneinander geplottet?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten