Bei der Berechnung von Regressionsmodellen mit R verwende ich regelmäßig die Relevel-Funktion, damit mein Modell auch für die andere Ebene Ergebnisse liefert. Mir ist aufgefallen, dass dies manchmal, aber nicht oft, das Modell dahingehend veränderte, dass die Werte anderer Faktoren, die vor der Relevanz signifikant waren, nicht mehr vorhanden sind. Ist dies relevant oder außergewöhnlich und möglicherweise auf ein Problem mit meinen Daten zurückzuführen? Zeigt es, dass meine Daten wahrscheinlich nicht eine der Voraussetzungen für lineare Modelle erfüllen?
Ist es in diesem Zusammenhang in Ordnung, wenn ich relevel verwende, mein Modell neu berechne und dann Signifikanzwerte von beiden Modellen in meinem Artikel berichte? Wenn die Signifikanz zwischen den beiden Modellen für einen bestimmten Faktor unterschiedlich ist, sollte ich mich dann für eines entscheiden, das weniger optimistisch ist.
Ich nehme an, meine Frage verrät, dass ich nicht genug über lm weiß, um die Notwendigkeit eines Basislevels zu erfassen. Ich dachte, ich verstehe es ziemlich gut;) Irgendwie erklärte keine der Einführungen, die ich las, diesen Punkt, oder ich war zu dumm, um es zu verstehen. Wenn mich also jemand zu einer Site leiten könnte, an der der Punkt, an dem Basiswerte in lm vorliegen, erklärt wird, oder es selbst erklären könnte, wäre das auch großartig!
Bearbeiten: Hier ist ein minimales Beispiel:
library(datasets)
sprays<-OrchardSprays
model<-lm(decrease~treatment+rowpos+colpos,data=sprays)
summary(model)
Ein Teil der Zusammenfassung sagt
treatmentC 20.625 9.731 2.120 0.03866 *
Wenn also die Behandlung == C ist, hat dies einen signifikanten positiven Einfluss auf die Abnahme. Jetzt verlasse ich die 'Behandlung' auf B, um herauszufinden, welchen Einfluss die Behandlung hat == A:
sprays$treatment<-relevel(sprays$treatment,"B")
summary(model)
Und jetzt ist die Behandlung == C in diesem neuen Modell nicht signifikant:
treatmentC 17.625 9.731 1.811 0.07567 .
Entschuldigung für die Veröffentlichung am falschen Ort! Kann ich meine Frage in stats statexchange verschieben oder sollte ich dort eine neue öffnen?
quelle
d <- data.frame(y=runif(300),f=factor(rep(LETTERS[1:3],each=100)); lm(y~f,data=d)
gibt Ihnen einen Anfang, obwohl es in diesem Fall natürlich keine signifikanten Änderungen geben wird (obwohl sich die Parameterschätzungen und p-Werte sicherlich ändern werden, wenn Sie neu einordnen).Antworten:
Angenommen, der Faktor
conditions
hat EbenenA,B,C
und Sie regressieren Ihre Antwortvariabley
unter Bedingungen mitmod <- lm(y ~ conditions)
. Nunsummary(mod)
gibt den Mittelwert der Referenzpegel vonconditions
(sagen wirA
) und der Differenz zwischen den Bedingungen in den MittelnB
undA
und die Differenz zwischen den BedingungenC
undA
(berichtet jeweils als(Intercept)
,conditions:B
undconditions:C
). Wenn Sieconditions <- relevel(conditions, ref = 'B')
das lineare Modell erneut ausführen, erhalten Sie jetzt den MittelwertB
, den Unterschied zwischenA
undB
und den Unterschied zwischenC
undA
. Natürlich können sich die p-Werte ändern. Dies bedeutet nicht, dass ein Problem mit Ihren Daten vorliegt. Dies bedeutet nicht, dass Ihre Daten nicht unbedingt eine Annahme des linearen Modells verfehlen. Die Passform ist dieselbe und Sie haben einfach geändert, welche Informationen ausgedruckt werden, weil Sie den Referenzwert geändert haben und Behandlungskontraste verwenden. Sie können dieselben linearen Hypothesentests mit dem Original erhaltenmod
.In vielen Bereichen ist es üblich zu melden, ob ein statistisch signifikanter Effekt von
conditions
(unter Verwendung der Ausgabe vonanova(mod)
) aufgetreten ist, und an die vollständige Regressionsausgabe in einer Tabelle zu berichten (unter Verwendung der gewünschten Referenzstufen) ). Die Normen, wie und ob Tests vonA
vs.B
(zum Beispiel) gemeldet werden sollen, variieren je nach Feld. Schauen Sie sich gute Papiere auf Ihrem Gebiet genau an.quelle