Welche Mehrfachvergleichsmethode kann für ein älteres Modell verwendet werden: lsmeans oder glht?

15

Ich analysiere einen Datensatz unter Verwendung eines gemischten Effektmodells mit einem festen Effekt (Bedingung) und zwei zufälligen Effekten (Teilnehmer aufgrund des innerhalb des Motivs und des Paares). Das Modell wurde mit dem erzeugten lme4Paket: exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp).

Als nächstes führte ich einen Likelihood-Ratio-Test dieses Modells gegen das Modell ohne festen Effekt (Bedingung) durch und stellte einen signifikanten Unterschied fest. Mein Datensatz enthält 3 Bedingungen, daher möchte ich einen Mehrfachvergleich durchführen, bin mir jedoch nicht sicher, welche Methode ich verwenden soll . Ich habe eine Reihe ähnlicher Fragen in CrossValidated und anderen Foren gefunden, bin aber immer noch ziemlich verwirrt.

Nach allem, was ich gesehen habe, haben die Leute vorgeschlagen, mit

1. Das lsmeansPaket - lsmeans(exp.model,pairwise~condition)was mir die folgende Ausgabe gibt:

condition     lsmean         SE    df  lower.CL  upper.CL
 Condition1 0.6538060 0.03272705 47.98 0.5880030 0.7196089
 Condition2 0.7027413 0.03272705 47.98 0.6369384 0.7685443
 Condition3 0.7580522 0.03272705 47.98 0.6922493 0.8238552

Confidence level used: 0.95 

$contrasts
 contrast                   estimate         SE    df t.ratio p.value
 Condition1 - Condition2 -0.04893538 0.03813262 62.07  -1.283  0.4099
 Condition1 - Condition3 -0.10424628 0.03813262 62.07  -2.734  0.0219
 Condition2 - Condition3 -0.05531090 0.03813262 62.07  -1.450  0.3217

P value adjustment: tukey method for comparing a family of 3 estimates 

2. Das multcompPaket auf zwei verschiedene Arten - mit mcp glht(exp.model,mcp(condition="Tukey"))resultierend in

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
    data = exp, REML = FALSE)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)  
Condition2 - Condition1 == 0  0.04894    0.03749   1.305    0.392  
Condition3 - Condition1 == 0  0.10425    0.03749   2.781    0.015 *
Condition3 - Condition2 == 0  0.05531    0.03749   1.475    0.303  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

und mit lsm glht(exp.model,lsm(pairwise~condition))resultierenden in

Note: df set to 62

     Simultaneous Tests for General Linear Hypotheses

Fit: lmer(formula = outcome ~ condition + (1 | participant) + (1 | pair), 
    data = exp, REML = FALSE)

Linear Hypotheses:
                             Estimate Std. Error t value Pr(>|t|)  
Condition1 - Condition2 == 0 -0.04894    0.03749  -1.305   0.3977  
Condition1 - Condition3 == 0 -0.10425    0.03749  -2.781   0.0195 *
Condition2 - Condition3 == 0 -0.05531    0.03749  -1.475   0.3098  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1
(Adjusted p values reported -- single-step method)

Wie Sie sehen, führen die Methoden zu unterschiedlichen Ergebnissen. Es ist das erste Mal, dass ich mit R und Statistiken arbeite, also könnte etwas schief gehen, aber ich würde nicht wissen, wo. Meine Fragen sind:

Was sind die Unterschiede zwischen den vorgestellten Methoden? Ich habe in einer Antwort auf verwandte Fragen gelesen, dass es um die Freiheitsgrade ( lsmeansvs. glht) geht. Gibt es Regeln oder Empfehlungen, wann welche verwendet werden sollen, dh Methode 1 ist für diese Art von Datensatz / Modell usw. geeignet? Welches Ergebnis soll ich melden? Ohne es besser zu wissen, würde ich wahrscheinlich einfach den höchsten p-Wert melden, den ich bekommen habe, um auf Nummer sicher zu gehen, aber es wäre schön, einen besseren Grund zu haben. Vielen Dank

schvaba986
quelle

Antworten:

17

Keine vollständige Antwort ...

Der Unterschied zwischen glht(myfit, mcp(myfactor="Tukey"))den beiden anderen Methoden besteht darin, dass auf diese Weise eine "z" -Statistik (Normalverteilung) verwendet wird, während die anderen eine "t" -Statistik (Studentenverteilung) verwenden. Die "z" -Statistik ist dasselbe wie eine "t" -Statistik mit einem unendlichen Freiheitsgrad. Diese Methode ist asymptotisch und liefert kleinere p-Werte und kürzere Konfidenzintervalle als die anderen. Die p-Werte können zu klein sein und die Konfidenzintervalle können zu kurz sein, wenn der Datensatz klein ist.

Beim Ausführen wird lsmeans(myfit, pairwise~myfactor)die folgende Meldung angezeigt:

Loading required namespace: pbkrtest

Dies bedeutet, dass lsmeans(für ein lmerModell) das pbkrtestPaket verwendet wird, das die Kenward & Rogers-Methode für die Freiheitsgrade der "t" -Statistik implementiert. Diese Methode soll bessere p-Werte und Konfidenzintervalle liefern als die asymptotische Methode (es gibt keinen Unterschied, wenn der Freiheitsgrad groß ist).

Was nun den Unterschied zwischen lsmeans(myfit, pairwise~myfactor)$contrastsund betrifft glht(myfit, lsm(pairwise~factor), habe ich gerade einige Tests durchgeführt und meine Beobachtungen sind die folgenden:

  • lsmist eine Schnittstelle zwischen dem lsmeansPaket und dem multcompPaket (siehe ?lsm)

  • Für ein ausgewogenes Design gibt es keinen Unterschied zwischen den Ergebnissen

  • Bei einem unausgeglichenen Design habe ich kleine Unterschiede zwischen den Ergebnissen festgestellt (die Standardfehler und das t-Verhältnis).

Leider weiß ich nicht, woran diese Unterschiede liegen. Es sieht aus wie lsmAufrufe lsmeans, um nur die Matrix der linearen Hypothesen und die Freiheitsgrade abzurufen, lsmeansverwendet jedoch eine andere Methode, um die Standardfehler zu berechnen.

Stéphane Laurent
quelle
Danke für die ausführliche Antwort! Ich habe den Unterschied in der Teststatistik komplett verpasst ... Sie erwähnen, dass die Werte für die asymptotische Methode zu klein und die CIs zu eng sein können. Mein Datensatz besteht aus ~ 30 Teilnehmern, also werde ich mich wohl an die t-Statistik halten. Wenn Sie sagen, dass die Kenward & Rogers-Methode zu besseren p-Werten führt, meinen Sie dann genauer oder kleiner? Die Unterschiede sind also auf Unterschiede bei den Berechnungsmethoden für df und SE zurückzuführen und nicht auf die falsche Verwendung einer dieser Methoden bei meinem Modell, wenn ich Sie richtig verstanden habe. Gibt es eine Möglichkeit, hier die "beste" Methode auszuwählen?
schvaba986
11
(Ich bin der Entwickler des lsmeans- Pakets) lsmeansverwendet das pbkrtest-Paket, das (1) Kenward-Rogers-df-Berechnungen und (2) eine angepasste Kovarianzmatrix mit reduzierter Abweichung in den Schätzungen vorsieht. Wenn Sie zuerst festlegen lsm.options(disable.pbkrtest=TRUE), führt der lsmeansAufruf mit zu adjust="mvt"den gleichen Ergebnissen wie glht, mit Ausnahme geringfügiger Unterschiede aufgrund des randomisierten Algorithmus, der von beiden Paketen für die multivariate t-Verteilung verwendet wird.
Rvl
3
Ich schlage jedoch die "MVT" -Anpassung vor, ohne pbkrtest zu deaktivieren, da die Bias-Anpassung und die Tatsache, dass asymptotische (z) -Werte ohne df im Wesentlichen unendlich df annehmen, unrealistisch niedrige P-Werte ergeben.
Rvl
3
Übrigens ermöglicht die summaryMethode für glhtneben der Standardeinstellung für die Einstellung der Ein-Schritt-Multiplizität (simultane CIs) auch verschiedene Step-Down-Testmethoden. In einem ganz anderen Punkt können Sie, wenn Sie mehr als einen Faktor haben, lsmganz einfach die üblichen Vergleichstypen erstellen, mcpohne dass dies überhaupt möglich ist.
rvl