R:Erhalten Sie den p-Wert für alle Koeffizienten in der multiplen linearen Regression (inkl.Referenzniveau)
-
21-12-2019 - |
Frage
Beispiel
Ich habe eine lineare Regression, die eine numerische abhängige Variable mit drei erklärenden Faktorvariablen anpasst.Jede der Faktorvariablen hat 2 Ebenen.
install.packages("robustbase")
install.packages("MASS")
require(robustbase)
require(MASS)
# Example data
data(npk)
df= npk[,-1]
str(df)
# 'data.frame': 24 obs. of 4 variables:
# $ N : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...
# $ P : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...
# $ K : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...
# $ yield: num 49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...
set.seed(0)
model <- lmrob(yield ~ N + P + K - 1, data= df)
Aufgabe
Ich möchte auf die p-Werte für jeden Koeffizienten zugreifen model
Objekt.Um ein unnötiges Abfangen zu vermeiden, verwende ich bereits - 1
in der Formel.
summary(model)$coefficients
# Estimate Std. Error t value Pr(>|t|)
# N0 54.644672 2.400075 22.7678995 8.972084e-16
# N1 60.166737 1.966661 30.5933467 2.858276e-18
# P1 -1.059299 2.139443 -0.4951286 6.259053e-01
# K1 -3.905052 2.226012 -1.7542822 9.469295e-02
Scheint, dass die Grundwerte (Referenzwerte) für P
Und K
sind versteckt.
Frage
Wie kann ich den Code ändern, um auch auf die p-Werte zuzugreifen? P0
Und K0
als Koeffizienten für die model
Objekt?
Notiz: Ich bin mir nicht sicher, ob es einen Unterschied für die Lösung macht, die ich tatsächlich für mein eigentliches Problem verwende lmrob
Als robuste Regressionsfunktion habe ich beschlossen, sie in diesem reproduzierbaren Beispiel besser beizubehalten.
Lösung
Die geschätzten p-Werte sind:
coef(summary(model))[, 4]
Bezüglich der Referenzniveaus verwendet das Modell Behandlungskontraste, sodass die Werte der Referenzniveaus alle Null sind und es daher nicht sinnvoll ist, nach ihren p-Werten zu fragen.