Domanda:
lsmeans (R): regolare per confronti multipli con termini di interazione
Sam
2015-08-07 17:32:13 UTC
view on stackexchange narkive permalink

Ho un problema di lsmeans in R. Voglio fare un'analisi post-hoc di un'interazione, simile agli esempi forniti nella documentazione di lsmeans.

Sono perplesso dal fatto che il p- i valori sono gli stessi sia che io usi

  warp.lm <- lm (breaks ~ wool * tension, data = warpbreaks)  

(A):

  lsmeans (warp.lm, list (pairwise ~ wool | tension, pairwise ~ tension | wool))  

o (B):

  lsmeans (warp.lm, list (pairwise ~ wool | tension))  

I valori p non dovrebbero essere più alti nel caso di (A) di (B )? (A) effettua 9 confronti post-hoc, (B) solo 3.

Posso essere sicuro che (A) sia corretto per tutti e 9 i confronti?

Grazie!

Cosa intendi per correttamente?Suggerisco di utilizzare prima la funzione lsmeans senza il lato sinistro, quindi utilizzare "pair" per ottenere i contrasti desiderati.Leggi la vignetta "using-lsmeans" per un po 'di esempi e discussioni.
@rvl Spiacente, non è stato chiaro.Per entrambi i comandi ottieni gli stessi valori p. tensione = L: stima del contrasto SE df t.ratio p.value A - B 16.333333 5.157299 48 3.167 0.0027 tensione = M: A - B -4.777778 5.157299 48 -0.926 0.3589 tensione = H: A - B 5.777778 5.157299 48 1.120 0.2682 I valori p non dovrebbero essere più alti dopo il primo comando rispetto al secondo? Ci sono più confronti da fare dopo il primo comando. Ho provato il percorso "pair" ma i risultati sono gli stessi di "pairwise".
Gli aggiustamenti del valore di p vengono applicati separatamente a ciascun raggruppamento.Se desideri una regolazione per l'intera serie di confronti, dovrai eseguire contrasti personalizzati.
Ho un suggerimento di risposta da pubblicare, ma non posso pubblicarlo perché la domanda è stata messa in attesa.Se può essere tolto dall'attesa, lo posterò.
@Scortchi Potrebbe per favore togliere la domanda in attesa in modo che rvl possa rispondere?L'ho modificato, quindi spero che lo troverai più chiaro.Grazie.
@Sam: Ho fatto - grazie per averlo modificato.(Nota che una volta modificata una domanda, si unirà automaticamente a una coda di revisione per la riapertura.) Ma è ancora chiaro come il fango per chiunque non abbia familiarità con il pacchetto "lsmeans" di R e ti sarei grato se lo modifichiulteriormente per spiegare quale analisi statistica si sta tentando di eseguire e perché i risultati sono inaspettati.
@rvl: Ho riaperto questa domanda in modo che tu possa rispondere: per favore, spiega i problemi statistici sottostanti e illustra l'analisi con `lsmeans`.
Due risposte:
Russ Lenth
2015-08-15 06:02:59 UTC
view on stackexchange narkive permalink

Fornitura nella prossima versione di lsmeans”

Il prossimo aggiornamento di lsmeans (2.20 o successivo) includerà un rbind metodo per gli oggetti ref.grid e lsmobj . Rende facile combinare due o più oggetti in una famiglia e utilizza per impostazione predefinita il metodo di regolazione "mvt" . Ecco il presente esempio:

  > wt <- pair (lsmeans (warp.lm, ~ wool | tension)) > tw <- pair (lsmeans (warp.lm, ~ tension | wool )) > rbind (wt, tw) tensione lana contrasto stima SE df t.ratio p.value L. A - B 16.3333333 5.157299 48 3.167 0.0203 M. A - B -4.7777778 5.157299 48 -0.926 0.9119 H. A - B 5.7777778 5.157299 48 1.120 0.8258. A L - M 20.5555556 5.157299 48 3.986 0.0018. A L - H 20.0000000 5.157299 48 3.878 0.0027. A M - H -0.5555556 5.157299 48 -0.108 1.0000. B L - M -0.5555556 5.157299 48 -0.108 1.0000. B L - H 9.4444444 5.157299 48 1.831 0.3793. BM - H 10.0000000 5.157299 48 1.939 0.3191 Regolazione del valore P: metodo mvt per 9 test 

Se specifichi Tukey invece di mvt, si avvicina abbastanza allo stesso risultato:

  > test (rbind (wt, tw), Adjust = "tukey") tensione lana contrasto stima SE df t.ratio p.value L. A - B 16.3333333 5.157299 48 3.167 0.0196 M. A - B -4.7777778 5.157299 48 -0.926 0.8683 H. A - B 5.7777778 5.157299 48 1.120 0.7727. A L - M 20.5555556 5.157299 48 3.986 0.0018. A L - H 20.0000000 5.157299 48 3.878 0.0026. A M - H -0.5555556 5.157299 48 -0.108 0.9999. B L - M -0.5555556 5.157299 48 -0.108 0.9999. B L - H 9.4444444 5.157299 48 1.831 0.3467. B M - H 10.0000000 5.157299 48 1.939 0.2922
Aggiustamento del valore P: metodo tukey per confrontare una famiglia di 4.772 stime  

La dimensione familiare curiosamente frazionaria risulta da $ {4.772 \ choose 2} = 9 $.

Russ Lenth
2015-08-11 23:12:08 UTC
view on stackexchange narkive permalink

Entrambe le istruzioni lsmeans mostrate generano elenchi di lsmobj e ogni elemento di tali elenchi viene gestito separatamente. Se vuoi incorporare una regolazione complessiva per due o più elenchi combinati, è tecnica e richiede un po 'di lavoro.

Innanzitutto, salva la lista:

  lsmlist = lsmeans (warp.lm, list (pairwise ~ wool | tension, pairwise ~ tension | wool))  

Questo crea un elenco di 4 lsmobj (originariamente due elenchi di due)

  > nomi (lsmlist) [1] "lsmeans di lana | tensione "[2]" differenze di contrasto a coppie, tensione | tensione "[3]" lsme di tensione | lana "[4]" differenze di contrasto a coppie, lana | lana " 

L'utente desidera combinare i tre confronti in lsmlist [[2]] con i sei in lsmlist [[4]] e avere un aggiustamento della molteplicità generale per quei 9 confronti .

Per iniziare, crea un nuovo lsmobj da uno dei risultati e correggilo.

  mydiffs = lsmlist [[4] ]  

Innanzitutto, unisci le funzioni lineari per i due set di confronti:

  mydiffs @ linfct = rbind (lsmlist [[2]] @ linfct , lsmlist [[4]] @ linfct)  co de> 

Dobbiamo anche definire lo slot grid , che definisce i fattori associati a ciascuna funzione lineare. Per semplificare, definisco un fattore chiamato contrast con 9 livelli per i 9 contrasti (qui si potrebbe fare qualcosa di più elaborato).

  mydiffs @ grid = data .frame (contrast = 1: 9)  

Infine, aggiusta le informazioni ausiliarie che fanno la contabilità. Ora usiamo il nostro nuovo fattore contrast come unica variabile, senza variabili "by". Per la famiglia combinata di 9 contrasti, la regolazione di Tukey non ha senso, quindi utilizziamo il metodo multivariato $ t $ ( "mvt" ):

  mydiffs = update (mydiffs, pri.vars = "contrast", by.vars = NULL, Adjust = "mvt")  

Ora possiamo guardare il riepilogo risultante:

  > mydiffs contrasto stima SE df t.ratio p. value 1 16.3333333 5.157299 48 3.167 0.0205 2-4.7777778 5.157299 48 -0.926 0.9119 3 5.7777778 5.157299 48 1.120 0.8258 4 20.5555556 3.9572 0.0019 5 20.0000000 5.157299 48 3.878 0.0026 6-0.5555556 5.157299 48 -0.108 1.0000 7 -0.5555556 5.157299 48 -0.108 1.0000 8 9.4444444 5.157299 48 1.831 0.3796 9 10.0000000 5.157299 48 1.939 0.3190 Regolazione valore P: metodo mvt per 9 test   pre> 

Potrei prendere in considerazione l'aggiunta di una funzionalità per combinare parti di oggetti lsm.list , ma non è semplice, principalmente a causa delle complicazioni nell'ottenere etichette significative per i risultati (il griglia parte). È anche un problema che utenti diversi si aspettano impostazioni predefinite diverse.

risposte fantastiche come sempre.
Grazie mille per la tua risposta, è geniale!Se potesse essere incorporato un messaggio di avviso sarebbe utile, penso.Questa impostazione predefinita produce molti falsi positivi.
Nota: ho pubblicato una domanda relativa a questo: http://stats.stackexchange.com/questions/167097/its-all-in-the-family-but-do-we-include-the-in-laws-pure


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...