f statistik in Regression

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
wbart
Beiträge: 89
Registriert: Fr Mär 16, 2018 4:08 pm

f statistik in Regression

Beitrag von wbart »

Hallo,

ich habe eine multiple lineare regression duchgeführt und erhalte Beispielhaft folgendes Ergebnis über die summary() Funktion

Code: Alles auswählen

Call:
lm(formula = X~ age + empfindlicheKopfhaut + fettigeKopfhaut + 
    geröteteKopfhaut + juckendeKopfhaut + schuppigeKopfhaut + 
    trockeneKopfhaut, data = data_scalp_opANDyp)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.79735 -0.19624  0.00212  0.25218  0.56221 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)           3.86572    0.24618  15.703  < 2e-16 ***
age                   0.02286    0.00320   7.141 1.84e-08 ***
empfindlicheKopfhaut  0.07093    0.03877   1.829 0.075443 .  
fettigeKopfhaut       0.13793    0.03814   3.616 0.000886 ***
geröteteKopfhaut      0.03233    0.05917   0.546 0.588039    
juckendeKopfhaut     -0.08795    0.03847  -2.287 0.028043 *  
schuppigeKopfhaut     0.04516    0.03893   1.160 0.253478    
trockeneKopfhaut     -0.08752    0.04218  -2.075 0.045002 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3809 on 37 degrees of freedom
Multiple R-squared:  0.6287,	Adjusted R-squared:  0.5585 
F-statistic: 8.951 on 7 and 37 DF,  p-value: 2.054e-06

Nun möchte ich für weitere Analysen auf den P-Wert der F-Statistik unten rechts von 2.054e-06 zugreifen. Ich kann so ziemlich alles adressieren, z.B die Koeffizienten oder R2, diesen Wert aber leider nicht. Hat jemand eine Idee?

Viele Grüße

wbart
Athomas
Beiträge: 773
Registriert: Mo Feb 26, 2018 8:19 pm

Re: f statistik in Regression

Beitrag von Athomas »

Google sagt:

Code: Alles auswählen

x <- rnorm(10)
y <- 0.6732*x + rnorm(10,0,0.8)

DF <- data.frame(x,y)

LinMo <- lm(y ~ x, data=DF)
Ergebnisse <- summary(LinMo)

Fwerte <- Ergebnisse[["fstatistic"]]

pf(Fwerte[1], Fwerte[2], Fwerte[3], lower.tail=FALSE)
bigben
Beiträge: 2827
Registriert: Mi Okt 12, 2016 9:09 am

Re: f statistik in Regression

Beitrag von bigben »

Hier gibt es das gleiche nochmal als fertige Funktion verpackt und in den Comments in verschiedenen Schreibweisen, ganz nach Geschmack:
https://stackoverflow.com/a/5587781/6503141

Ein recht eleganter Weg scheint die Funktion glance() im Paket broom zu sein: https://cran.r-project.org/web/packages ... broom.html

Die Ergebnisanzeige ist dabei aber anders:

Code: Alles auswählen

library(broom)
model <- lm(Sepal.Length ~ Petal.Length, data = iris)
summary(model)
glance(model)
führt zu

Code: Alles auswählen

Residual standard error: 0.4071 on 148 degrees of freedom
Multiple R-squared:   0.76,	Adjusted R-squared:  0.7583 
F-statistic: 468.6 on 1 and 148 DF,  p-value: < 2.2e-16

> glance(model)
# A tibble: 1 × 12
  r.squared adj.r.squared sigma statistic  p.value    df logLik   AIC   BIC deviance df.residual  nobs
      <dbl>         <dbl> <dbl>     <dbl>    <dbl> <dbl>  <dbl> <dbl> <dbl>    <dbl>       <int> <int>
1     0.760         0.758 0.407      469. 1.04e-47     1  -77.0  160.  169.     24.5         148   150
Also einmal < 2.2e-16 und einmal 1.0e-47. Praktisch dürfte beides gleichbedeutend sein. Bei größeren p-Werten kommt auch das gleiche heraus:

Code: Alles auswählen

library(broom)
set.seed(88)
model <- lm(Sepal.Length ~ rnorm(150), data = iris)
summary(model)
glance(model)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
student
Beiträge: 687
Registriert: Fr Okt 07, 2016 9:52 am

Re: f statistik in Regression

Beitrag von student »

Ich weiß, man wundert sich, dass nicht wie auf andere Eigenschaften des Modells zugegriffen werden kann. Ich gehe dann den Weg über die ANOVA:

Code: Alles auswählen

> m <- anova(Modell_lm)
> str(m)
Classes ‘anova’ and 'data.frame':	2 obs. of  5 variables:
 $ Df     : int  1 30
 $ Sum Sq : num  848 278
 $ Mean Sq: num  847.73 9.28
 $ F value: num  91.4 NA
 $ Pr(>F) : num  1.29e-10 NA
 - attr(*, "heading")= chr [1:2] "Analysis of Variance Table\n" "Response: mpg"
> m$`F value`
[1]91.37533      NA
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Antworten