6 votos

¿Pares los valores de p para el ANOVA unidireccional?

Estoy realizando un relativamente simple ANOVA de una vía, como parte de un ejercicio de clase. Me gustaría conseguir pares sin corregir los valores de p de R, entonces puedo hacer un secuencial FDR prueba en otro paquete (me doy cuenta de que hay FDR paquetes en R). He configurado mi ANOVA como se muestra a continuación, y funciona bien, produce resultados, pero me parece que no puede averiguar cómo obtener la materia prima, falta de corrección de los valores de p de la espalda. Finalmente, me gustaría hacer el pares pruebas FDR y secuencial de Bonferroni en R, pero esto parece ser un primer paso.

Parece pairwiseCI o multcomp podría obtener de mí donde estoy tratando de ir, pero estoy teniendo un tiempo difícil averiguar que hará lo que yo estoy buscando.

R> head(d10)
  time  breed
1 27.4 type.A
2 18.3 type.A
3 24.3 type.B
4 19.6 type.B
5 21.6 type.C
6 30.3 type.D

a10 <- aov(time~breed,data=d10)

# reports the overall significance, but nothing on the pairs  
summary(a10)

# reports corrected values only
TukeyHSD(a10)

9voto

Raptrex Puntos 115

Para el multcomp paquete, consulte la página de ayuda para glht; desea utilizar el "Tukey" opción; en realidad, no se utiliza la corrección de Tukey, simplemente configura todas las comparaciones por pares. En el ejemplo de la sección hay un ejemplo que hace exactamente lo que usted desea.

Calcula las estimaciones y se para cada comparación pero no los valores de p, para que usted necesite summary.glht; en la página de ayuda para que, previo aviso, en particular, la test parámetro que permite establecer la prueba real de que se ejecute. Para hacer multiplicar-ajustar los valores de p, se utiliza la adjusted función de este parámetro, y para no multiplicar-ajuste, utilice test=adjusted("none") (que no se mencionan específicamente en la página de ayuda, aunque no dicen que toma cualquiera de los métodos en p.adjust, que es donde encontraría none.)

También puede calcular las estimaciones y de los buscadores de forma manual, usando la multiplicación de la matriz y, a continuación, obtener el valor de p, sin embargo que usted desea; esto es lo que el glht función está haciendo detrás de las escenas. Para obtener las matrices que usted necesita para empezar tendría que utilizar coef y vcov.

Yo no he puesto código completo como usted dice que es para un proyecto de clase (gracias por ser honesto, por el camino!) y la política aquí es proporcionar consejos útiles pero no soluciones.

7voto

DavLink Puntos 101

Usted puede utilizar pairwise.t.test() con una de las opciones disponibles para la corrección de comparación múltiple en la p.adjust.method= argumento; véase help(p.adjust) para obtener más información sobre la opción de un solo paso y paso hacia abajo de los métodos (por ejemplo, BH de FDR o bonf para la corrección de Bonferroni). De la nota, usted directamente puede dar p.adjust() un vector de materias primas de los valores de p y se le dará el corregido p-valores.

Así, me gustaría sugerir a ejecutar algo como

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

El primer comando da t-test basado en los valores de p sin controlar por la FWER o FDR. Usted puede utilizar cualquier comando que se desea obtener corregido p-valores.

2voto

berko Puntos 1231
library(multcomp)
df = mtcars
df$am = as.factor(df$am)
m1 <- aov(mpg ~ am, data= df)
ht = glht(m1, linfct = mcp(am = "Tukey"))
summary(ht, test = adjusted("none"))
# Linear Hypotheses:
#            Estimate Std. Error t value Pr(>|t|)
# 1 - 0 == 0    7.245      1.764   4.106 0.000285 ***

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X