Domanda:
Valori p a coppie non corretti per ANOVA unidirezionale?
scw
2011-06-02 15:45:22 UTC
view on stackexchange narkive permalink

Eseguo un'ANOVA unidirezionale relativamente semplice come parte di un esercizio di classe. Vorrei ottenere valori p non corretti a coppie da R, quindi posso eseguire un test FDR sequenziale in un altro pacchetto (mi rendo conto che ci sono anche pacchetti FDR in R). Ho impostato il mio ANOVA come mostrato di seguito e funziona bene, produce risultati, ma non riesco a capire come recuperare i valori p grezzi e non corretti. In definitiva, vorrei fare i test a coppie sia per FDR che per Bonferroni sequenziale in R, ma questo sembra un primo passaggio.

Sembra pairwiseCI o multcomp potrebbe portarmi dove sto cercando di andare, ma ho difficoltà a capire quale farà quello che cerco.

  R> head (d10 ) time breed1 27.4 type.A2 18.3 type.A3 24.3 type.B4 19.6 type.B5 21.6 type.C6 30.3 type.Da10 <- aov (time ~ breed, data = d10) # riporta il significato generale, ma niente sulle coppie riepilogo (a10) # riporta solo i valori correttiTukeyHSD (a10)  
Tre risposte:
#1
+8
Aaron left Stack Overflow
2011-06-02 19:57:17 UTC
view on stackexchange narkive permalink

Per il pacchetto multcomp , vedere la pagina della guida per glht ; vuoi usare l'opzione "Tukey" ; questo in realtà non usa la correzione di Tukey, imposta solo tutti i confronti a coppie. Nella sezione degli esempi c'è un esempio che fa esattamente quello che vuoi.

Questo calcola le stime e i valori per ogni confronto ma non fa i valori p; per questo hai bisogno di summary.glht ; nella pagina della guida per questo, notare in particolare il parametro test , che consente di impostare il test effettivo che viene eseguito. Per ottenere valori p con aggiustamento multiplo, utilizzi la funzione adjusted per questo parametro e per non aggiustare moltiplicando, utilizzi test = adjusted ("none") ( che non è menzionato specificamente nella pagina della guida, anche se dice che accetta uno dei metodi in p.adjust , che è dove troverai none .)

Puoi anche calcolare le stime e i valori a mano usando la moltiplicazione di matrici, quindi ottenere i valori p come preferisci; questo è ciò che la funzione glht fa dietro le quinte. Per ottenere le matrici di cui hai bisogno per iniziare dovresti usare coef e vcov.

Non ho inserito il codice completo come dici tu per un progetto di classe (grazie per essere onesti, a proposito!) e la politica qui è di fornire suggerimenti utili ma non soluzioni.

grazie per la risposta dettagliata! Ri: compiti a casa; questo è un corso di perfezionamento e questo lavoro non viene consegnato, so come eseguire lo stesso nel JMP utilizzato in classe ma vorrei attenermi il più possibile a R.
Grazie per l'aggiornamento sullo stato dei compiti. Se hai bisogno di un aiuto più specifico, faccelo sapere.
#2
+7
chl
2011-06-02 16:06:53 UTC
view on stackexchange narkive permalink

Puoi utilizzare pairwise.t.test () con una delle opzioni disponibili per la correzione del confronto multiplo nell'argomento p.adjust.method = ; vedere help (p.adjust) per ulteriori informazioni sull'opzione disponibile per i metodi single-step e step-down (ad esempio, BH per FDR o bonf codice> per Bonferroni). Da notare, puoi dare direttamente a p.adjust () un vettore di valori p non elaborati e ti darà i valori p corretti.

Quindi, suggerirei di esegui qualcosa come

  pairwise.t.test (time, breed, p.adjust.method = "none") # p-valuepairwise.t.test non corretto (time, breed, p.adjust .method = "bonf") # Bonferroni p-value  

Il primo comando ti fornisce valori p basati su t-test senza controllare FWER o FDR. Puoi quindi utilizzare qualsiasi comando desideri per ottenere valori p corretti.

Con il nome, si potrebbe pensare che calcoli separatamente ogni test t pairwise (l'ho fatto, comunque), ma in realtà utilizza la SD in pool per impostazione predefinita, quindi il risultato è lo stesso dell'uso del risultato anova.
@Aaron Hai ragione, utilizza SD in pool per impostazione predefinita, ma può essere disabilitato. Potremmo anche costruire ogni contrasto che vogliamo con una semplice algebra. Mi piace la tua risposta btw (+1).
#3
+2
tim
2015-08-17 02:59:59 UTC
view on stackexchange narkive permalink
  libreria (multcomp) df = mtcarsdf $ am = as.factor (df $ am) m1 <- aov (mpg ~ am, data = df) ht = glht (m1, linfct = mcp (am = " Tukey ")) sommario (ht, test = adjusted (" none ")) # Ipotesi lineari: # Stima Std. Valore t errore Pr (> | t |) # 1 - 0 == 0 7.245 1.764 4.106 0.000285 ***  


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...