1 votos

Realización de ANOVA de medidas repetidas en datos no apilados en R

Estoy tratando de hacer un ANOVA de medidas repetidas en datos no apilados para mi experimento. Para los antecedentes, mi diseño experimental es el siguiente: Tengo 160 estímulos divididos uniformemente en 8 listas contrabalanceadas, cada estímulo está etiquetado como una condición (1-8). El participante fue expuesto a 1 lista (20 estímulos) y registré sus tiempos de reacción al pulsar un botón. Tengo 40 participantes en total. Mi variable independiente es la condición de un estímulo (1-8) y mi variable dependiente es el tiempo de reacción registrado.

Así es como se ven mis datos, son los promedios por condición por participante en segundos:

participant con1.pdd con2.dpp con3.ddd con4.pdp con5.ppd con6.dpp con7.dpd con8.ppp
        1    0,717    0,724    0,526    0,501    0,673    0,733    0,55     0,442
        2    0,522    0,434    0,622    0,501    0,409    0,267    0,848    0,549
        3    0,584    0,226    0,643    0,273    0,494    0,422    0,367    0,251
        ...
        38   0,524    0,327    0,434    0,524    0,42     0,2      0,493    0,408 
        39   0,413    0,491    0,303    0,491    0,567    0,487    0,353    0,453
        40   0,379    0,32     0,274    0,262    0,227    0,37     0,221    0,229

Así es como me han dicho que deberían ser mis datos al realizar un ANOVA de medidas repetidas. Sin embargo, al mirar la función de R que realiza un ANOVA de medidas repetidas, no parece que esté en el camino correcto. Fórmula R con las variables entre paréntesis:

 aov([dependentvar] ~ [independentvar] + Error(Participant_ID/[dependentvar]), data=[dataframe])

Parece que no puedo realizar un ANOVA utilizando esta función, ya que mi variable dependiente no está reunida en 1 columna. Estoy empezando a perderme. ¿Puedo realizar un RM-anova con mis datos?

Mis disculpas por no hacer una pregunta muy concisa, espero haber explicado bien mi problema.

1voto

vdaubry Puntos 116

La forma más sencilla es convertir el marco de datos de formato ancho a formato largo y pasarlo a la función aov función. El paquete tidyr tiene la función gather para dicha conversión.

so<-read.table(header = TRUE, text="participant con1.pdd con2.dpp con3.ddd con4.pdp con5.ppd con6.dpp con7.dpd con8.ppp
1    0.717    0.724    0.526    0.501    0.673    0.733    0.55     0.442
2    0.522    0.434    0.622    0.501    0.409    0.267    0.848    0.549
3    0.584    0.226    0.643    0.273    0.494    0.422    0.367    0.251
38   0.524    0.327    0.434    0.524    0.42     0.2      0.493    0.408 
39   0.413    0.491    0.303    0.491    0.567    0.487    0.353    0.453
40   0.379    0.32     0.274    0.262    0.227    0.37     0.221    0.229")

library(tidyr)
#convert from wide to long 
so2<-gather(so, key="key", value = "value", 2:9 )
#run aov on the new datafrom
aov(value ~ key+participant , data=so2)

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