Hier ist ein kleines Beispiel:
MyDf<-data.frame(x=c(1,2,3,4), y=c(1.2, .7, -.5, -3))
Jetzt mit dem base::lm
:
> lm(y~x, data=MyDf) %>% summary
Call:
lm(formula = y ~ x, data = MyDf)
Residuals:
1 2 3 4
-0.47 0.41 0.59 -0.53
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.0500 0.8738 3.491 0.0732 .
x -1.3800 0.3191 -4.325 0.0495 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7134 on 2 degrees of freedom
Multiple R-squared: 0.9034, Adjusted R-squared: 0.8551
F-statistic: 18.71 on 1 and 2 DF, p-value: 0.04952
Versuchen Sie jetzt dasselbe mit biglm
aus dem biglm
Paket:
XX<-biglm(y~x, data=MyDf)
print(summary(XX), digits=5)
Large data regression model: biglm(y ~ x, data = MyDf)
Sample size = 4
Coef (95% CI) SE p
(Intercept) 3.05 1.30243 4.79757 0.87378 0.00048
x -1.38 -2.01812 -0.74188 0.31906 0.00002
Beachten Sie, dass wir den print
und benötigen digits
, um den p-Wert zu sehen. Die Koeffizienten und Standardfehler sind gleich, aber die p-Werte sind sehr unterschiedlich. Warum ist das so?
r
regression
p-value
linear-model
Johannes Paul
quelle
quelle
pt(-3.491, 2)*2
zumpnorm(-3.491)*2
Beispiel mit.Antworten:
Um zu sehen, welche p-Werte korrekt sind (falls vorhanden), wiederholen wir die Berechnung für simulierte Daten, in denen die Nullhypothese wahr ist. In der vorliegenden Einstellung ist die Berechnung eine Anpassung der kleinsten Quadrate an (x, y) -Daten und die Nullhypothese lautet, dass die Steigung Null ist. In der Frage gibt es vier x-Werte 1,2,3,4 und der geschätzte Fehler liegt bei 0,7. Nehmen wir dies also in die Simulation auf.
Hier ist das Setup, das so geschrieben wurde, dass es für alle verständlich ist, auch für diejenigen, die es nicht kennen
R
.Die Simulation generiert unabhängige Fehler, fügt sie hinzu
y.expected
, ruftlm
auf, um die Anpassung vorzunehmen undsummary
die p-Werte zu berechnen. Obwohl dies ineffizient ist, wird der tatsächlich verwendete Code getestet. Wir können immer noch Tausende von Iterationen in einer Sekunde durchführen:und für diejenigen, die sich vorstellen könnten, dass dies nicht einheitlich genug ist, hier der Chi-Quadrat-Test:
Der große p-Wert in diesem Test zeigt, dass diese Ergebnisse mit der erwarteten Gleichmäßigkeit übereinstimmen. Mit anderen Worten,
lm
ist richtig.Woher kommen dann die Unterschiede in den p-Werten? Lassen Sie uns die wahrscheinlichen Formeln überprüfen, die aufgerufen werden könnten, um einen p-Wert zu berechnen. In jedem Fall wird die Teststatistik sein
für die Intercept-Schätzung und
lm
biglm
biglm
lm
Einige Lehren, die wir aus dieser kleinen Untersuchung ziehen können, sind:
Verwenden Sie keine Näherungswerte, die aus asymptotischen Analysen (wie der Standardnormalverteilung) mit kleinen Datensätzen abgeleitet wurden.
Kennen Sie Ihre Software.
quelle