Sunteți pe pagina 1din 25

19/8/2014 ANOVA y R

http://www.uv.es/mperea/R-Anovas.html 1/25
Anlisis de Varianza (ANOVAs) con el programa
estadstico R
versin de trabajo (pgina principal)
Manuel Perea
Departament de Metodologia, Universitat de Valncia
Para empezar
El programa R es una potentsima aplicacin que permite gran libertad para efectuar todo tipo de clculos. R es
la versin de cdigo libre del programa comercial S-Plus (S+) y est disponible en sistemas operativos como
UNIX/Linux, Macintosh o Windows. R est en constante desarrollo y la ltima versin puede descargarse en
internet, va http://cran.r-project.org. Adems, hay muchos sitios web con tutoriales o ejemplos a los que poder
acudir en caso de dudas.
El nico problema potencial para el usuario final es que R no es particularmente user friendly en el sentido de
que funciona por comandos en lugar de mens. Esto puede hacer la tarea ms difcil al principio, pero a la vez
hemos de tener en cuenta que da mucha ms versatilidad y potencia al programa. Adems, como veremos, es
sencillo efectuar ANOVAs con R. Esta pgina web no presende reflejar nada novedoso, simplemente se han
recogido diversos ejemplos de ANOVAs entre-sujetos, intra-sujetos y mixtos que de manera ms o menos
completa puede encontrarse en internet en lengua inglesa; todo ello junto a la ventaja de tener la informacin
disponible en castellano.
En los apartados siguientes me centrar en la versin para Linux., si bien la versin para Windows es muy similar
y los comandos a efectuar son los mismos, con muy pocas excepciones (v.g., el dispositivo para grabar en disco
los grficos). (Los ejemplos han sido comprobados con R en su versin Windows y la apariencia del output es
esencialmente la misma; al menos si no emplean los acentos en la variables; v.g., Genero en lugar de Gnero)
Una vez ests conectado a un ordenador con sistema operativo Linux (en este caso, el usuario manolo en la
mquina localhostmanolo), lo nico que has de hacer es escribir la letra R en la consola
[manolo@localhost manolo]$ R
Una vez pulses ENTER, esto es lo que aparecer en la pantalla
R : Copyright 2002, The R Development Core Team
Version 1.5.1 (2002-06-17)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type `license()' or `licence()' for distribution details.
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 2/25
R is a collaborative project with many contributors.
Type `contributors()' for more information.
Type `demo()' for some demos, `help()' for on-line help, or
`help.start()' for a HTML browser interface to help.
Type `q()' to quit R.
>
El smbolo (>) indica que el ordenador est esperando comandos (el ordenador est listo para los anlisis) y ya
estamos preparados para el primer ejemplo
Ahora pulsa q() para salir y vers el mensaje
Save workspace image? [y/n/c]:
Dado que no tenemos nada de inters, en nuestro caso pulsa n y ENTER.
Ejemplo 1: ANOVA entre-sujetos unifactorial
Observa el Apndice 1. Contiene los datos de un experimento en el que los participantes reciban una entre tres
posibles dosis de una droga experimental, y tras la cual se meda el grado de vigilancia en una tarea.
Naturalmente es importante, antes de analizar los datos, en poner los datos en un formato que R pueda
procesar. Hay otras opciones, pero (por brevedad) vamos a examinar solamente una de ellas.
Conversin de archivos de texto (ASCII) a archivos de datos en R. Debis de crear un archivo que
contenga los datos (como los del Apndice 1) y guardarlos en formato de texto. En Linux, esto se puede hacer
con programas como emacs, Kwrite, OpenOffice o cualquier otro programa al efecto. Guardas el archivo en
home , para simplicar. (Una vez tengas ms experiencia, lo mejor es guardarlos en un directorio al efecto para
tus datos.) El archivo tendr el siguiente aspecto:
Dosis Vigilancia
a 30
a 38
a 35
a 41
a 27
a 24
b 32
b 26
b 31
b 29
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 3/25
b 27
b 35
b 21
b 25
c 17
c 21
c 20
c 19
Observa que no es necesario incluir una columna indicando Observacin, dado que es redundante. (pero
puedes hacerlo, si quieres.) En R, cada lnea individual recoge una y solo una observacin. Esto tambin es
cierto para los diseos intra-sujetos (lo que es diferente de la mayora de aplicaciones estadsticas, como SPSS
o Systat, en las que las filas reflejan datos de diferentes sujetos).
Cuando hayas introducido los datos (puedes emplear un espacio para separar los datos dentro de una fila),
guarda el archivo como ej1.txt en tu directorio home. Y ahora pulsa R en tu consola. Te aparecer de nuevo:
R : Copyright 2002, The R Development Core Team
Version 1.5.1 (2002-06-17)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type `license()' or `licence()' for distribution details.
R is a collaborative project with many contributors.
Type `contributors()' for more information.
Type `demo()' for some demos, `help()' for on-line help, or
`help.start()' for a HTML browser interface to help.
Type `q()' to quit R.
>
Para convertir el archivo ASCII en una archivo de R, emplea el comando read.table como sigue
> ej1 _ read.table("ej1.txt",header=T)
o, si se quiere,
> ej1 <- read.table("ej1.txt",header=T)
El primer trmino, ej1, indica el nombre del archivo en R que estamos creando. El primer argumento de
read.table es el nombre del archivo ASCII que estamos convirtiendo en formato R (en nuestro caso, ej1.txt).
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 4/25
(Recuerda poner el archivo entre comillas.) El segundo argumento (header=T o bien header=TRUE, que es lo
mismo) le dice a R que convierta la primera fila en el nombre de las columnas; esto es, la primera columna se
refiere a la variable independiente Dosis, y la segunda a la variable dependiente Vigilancia.
Pensemos que se te olvid poner el nombre de las columnas a la hora de grabar el fichero ej1.txt. No problemo.
Simplemente tendras que emplear el siguiente comando:
> ej1 _ read.table("ej1.txt",col.names=c("Dosis","Vigilancia"))
El segundo argumento le dice a R que aade los nombres de las columnas al archivo de datos.
Si todo va bien, cuando pulses ENTER la consola indicar simplemente > y no habr ningn mensaje de error.
Antes de hacer el ANOVA, es importante recalcar que puedes ver el contenido de este u otros archivos
almacenados (u objetos) en R en nuestra sesin. Se trata de emplear el comando objects.
> objects()
En nuestro caso, obendremos lo siguiente
[1] "ej1"
>
Si queremos ver el contenido del archivo ej1, simplemente tenemos que escribir ej1 y ENTER. Esto es lo que
obtendremos.
> ex1
Dosis Vigilancia
1 a 30
2 a 38
3 a 35
4 a 41
5 a 27
6 a 24
7 b 32
8 b 26
9 b 31
10 b 29
11 b 27
12 b 35
13 b 21
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 5/25
14 b 25
15 c 17
16 c 21
17 c 20
18 c 19
>
Observa que R ha indicado una columna extra con el nmero de la observacin, si bien no tenis que hacer caso
a dicha columna.
Ahora es tiempo ya para hacer el ANOVA. El comando es aov:
> aov.ej1 _ aov(Vigilancia~Dosis,ej1)
Es muy importante indicar el orden en que se dan los argumentos. El primer argumento es siempre la variable
dependiente (Vigilancia), que es seguido por el smbolo (~) y despus la variable independiente (o, como
veremos, las variables independientes, en el caso de diseos factoriales). El argumento final para aov es el
nombre del archivo R que est siendo analizado. aov.ej1 es el nombre del archivo en el que se va a quedar el
anlisis (en otras palabras, que le podras poner otro nombre, pero el dado es ya muy indicativo).
Los resultados del ANOVA se pueden ver con el comando summary:
> summary(aov.ej1)
Df Sum Sq Mean Sq F value Pr(>F)
Dosis 2 426.25 213.13 8.7887 0.002977 **
Residuals 15 363.75 24.25
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
>
En este caso, hemos encontrado un efecto significativo de la variable Dosis (el valor de p ha sido menor de .05).
Naturalmente es necesario indicar las medias por condicin. El comando que se aplica es tapply:
> tapply(ej1$Vigilancia,ej1$Dosis,mean)
a b c
32.50 28.25 19.25
>
Como vemos, es el grupo con dosis c el que tiene una media menor (19.25). Los argumentos de tapply son
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 6/25
los siguientes. El primer argumento es la columna de la variable dependiente; dado que ej1 es un objeto de R
con varias columnas, hemos de indicar cul es la que queremos: ej1$Vigilancia refleja el vector correspondiente
a la columna Vigilancia. El segundo argumento es la variable independiente, a la que se le aplica el mismo
proceso (ej1$Dosis refleja la columna de Dosis). El tercer argumento es el estadstico que queremos calcular, en
nuestro caso, la media aritmtica (mean en ingls).
Si lo que quisiramos ahora es computar las desviaciones tpicas por condicin, el comando a hacer sera el
mismo, pero poniendo sd (standard deviation; desviacin tpica) en lugar de mean. Aqu va:
> tapply(ej1$Vigilancia,ej1$Dosis,sd)
a b c
6.595453 4.432026 1.707825
Indudablemente, indicar las columnas empleando $columna no es muy cmodo. Una alternativa para tener los
mismos resultados es convertir las columnas en objetos, y como tales son manejables en R con el comando
attach
> attach(ej1)
Y vamos a calcular las medias por condicin de esta manera (que evidentemente son las mismas que antes),
> tapply(Vigilancia,Dosis,mean)
a b c
32.50 28.25 19.25
Un aspecto importante en cualquier experimento es observar los datos en cada grupo, para lo cual podemos
tener el diagrama de caja y bigotes para cada grupo. El comando que se emplea es plot
> boxplot(Vigilancia~Dosis)
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 7/25
En la frmula se indica la variable dependiente seguida (tras el signo ~) de la variable independiente.
En el grfico se puede observar una diferencia clara entre el grupo de dosis c y los otros dos grupos.
Naturalmente, viendo el grfico y la existencia de un efecto significativo de Dosis en el ANOVA, lo que hemos
de hacer ahora son comparaciones mltiples. (En caso de que el ANOVA no hubiera sido significativo, no
debes proceder a efectuar estas pruebas.) De esta manera podemos determinar entre qu condiciones
experimentales hay diferencias significativas. Para ello, emplearemos el mtodo de Tukey.
Para ello crearemos el objeto ej1Tukey empleando la funcin TukeyHSD
> ej1Tukey _ TukeyHSD(ej1.aov,"Dosis")
Para ver el resultado, simplemente hemos de teclear el nombre del objeto, es decir, ej1Tukey
> ej1Tukey
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Vigilancia ~ Dosis, data = ej1)
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 8/25
$Dosis
diff lwr upr
b-a -4.25 -11.15796 2.657961
c-a -13.25 -21.50659 -4.993408
c-b -9.00 -16.83289 -1.167109
Las diferencias entre medias en las que el intervalo de confianza que engloba los lmites inferior y superior no
contienen el valor 0, son estadsticamente significativas con el mtodo de Tukey. En nuestro caso, son las
diferencias entre los grupos b y c, y entre los grupos a y c. Esto puede verse tambin si trazamos los
intervalos de confianza grficamente. Para ello emplearemos la funcin plot
> plot(ej1Tukey)
Se puede apreciar que slo el intervalo de confiaza de la diferencia entre los grupos a y b toca 0 (es decir,
que la diferencia entre las dos medias no es estadsticamente significativa.
Una nota respecto a los grficos. Para grabar los grficos en Linux, podemos emplear la expresin
postscript antes del grfico (o grficos). Por ejemplo, si escribimos
> postscript("ej1Tukey.ps)
y luego volvemos a escribir
> plot(ej1Tukey)
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 9/25
Habremos creado el archivo ej1Tukey.ps, que est en formato postscript. Si ya hemos hecho el grfico que
queramos podemos emplear dev.off
> dev.off()
Y ahora los grficos aparecern nicamente en la pantalla. En el caso de Windows, en lugar de postscript() hay
que emplear windows()
Ahora vamos a generalizar un poco lo que tenemos, incluyendo una segunda variable independiente...es el
ejemplo 2.
Ejemplo 2. ANOVA factorial entre sujetos con dos factores
El Apndice II contiene los datos en los que se contabiliz el nivel de vigilancia de hombre y mujeres a los que
se les haba dado dos posibles niveles de dosis de una droga. En este caso, tenemos un diseo entre-sujetos
factorial 2x2, con los factores Gnero (hombres,mujeres) y Dosis (a,b).
Lo primero que has de hacer es crear un archivo con los datos del Apndice II y guardarlo en formato ASCII
con el nombre ej2.txt
Para crear el fichero en formato R, slo has de de introducir el comando siguiente:
> ej2 _ read.table("ex2.txt",header=T)
Y ahora ya puedes hacer el ANOVA:
> aov.ej2 _ aov(Vigilancia~Gnero*Dosis,ej2)
Observa que las dos variables independientes estn separados por un asterisco *. Dicho asterisco indica a R
que queremos analizar dicha interaccin entre Gnero y Dosis. Si nicamente quisiramos analizar los dos
efectos principales, habramos de reemplazar el asterisco con el signo de ms (+).
La Tabla del ANOVA tendr este aspecto:
> summary(aov.ej2)
Df Sum Sq Mean Sq F value Pr(>F)
Gnero 1 76.562 76.562 2.9518 0.1115
Dosis 1 5.062 5.062 0.1952 0.6665
Gnero:Dosis 1 0.063 0.063 0.0024 0.9617
Residuals 12 311.250 25.938
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 10/25
Podemos ver que ni los efectos principales ni la interaccin han resultado significativos en este experimento.
Vamos a ver las medias por condicin. Como antes, el comando para ello es tapply:
> tapply(ej2$Vigilancia,list(ej2$Gnero,ej2$Dosis),mean)
a b
h 15.75 16.75
m 11.25 12.50
(Recuerda que aqu podramos haber empleado attach para evitar el uso de $columna, si bien hay que tener
cuidado en no repetir el nombre de los objetos; por ejemplo, tendremos que haber borrado los objetos con el
mismo nombre del Ejemplo 1.)
Como en el Ejemplo 1, el primer argumento es la columna de la variable dependiente (ej2$Vigilancia), y dado
que tenemos un diseo con 2 factores y queremos las medias por condicin, hemos de indicar el segundo
argumento como una lista (list), en la que listamos los factores en cuestin. (Si hubisemos tenido 3 factores,
hubieramos puesto los 3 factores en la lista.) El tercer argumento es el estadstico que queremos calcular, que en
nuestro caso es la media (mean, en ingls)
Como has podido imaginar, es posible obtener las medias marginales de Gnero y de Dosis. Por ejemplo, para
tener las medias marginales de Gnero (independientemente de Dosis) has de emplear:
> tapply(ej2$Vigilancia,ej2$Gnero,mean)
h m
16.250 11.875
Y para obtener las medias marginales de Dosis, el comando es:
> tapply(ej2$Vigilancia,ej2$Dosis,mean)
a b
13.500 14.625
En diseos factoriales es de inters tener un grfico para apreciar los efectos principales y la interaccin. El
comando a emplear es interaction.plot:
> interaction.plot(ej2$Dosis,ej2$Gnero,ej2$Vigilancia)
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 11/25
Y el resultado lo tenemos en el grfico de abajo. Observar que primero ponemos la variable que queremos tener
en el eje de abscisas (X), de manera que podemos intercambiar el orden de Dosis y Gnero; en ltimo lugar
ponemos la variable dependiente.
Naturalmente, es fcil generalizar lo que hemos visto para el caso de 3 o ms factores entre.
Recuerda que para salir del programa slo has de pulsar q()
Ejemplo 3. ANOVA intra-sujetos de un factor
Pensemos que tenemos un experimento en el que cinco sujetos han de memorizar una lista de palabras. Las
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 12/25
palabras de la lista son de tres tipos: palabras don valencia positiva, negativa o neutra. La variable dependiente
es el nmero de palabras recordadas en la fase de test. Los datos se presentan en el Apndice III. Observa que
tenemos un nico factor (la valencia de las palabras) con tres factores (negativa, positiva y neutra). Tenemos
adems un factor de efectos aleatorios: Sujetos.
Para efectuar el ANOVA con estos datos, hemos de crear un archivo ej3 que contiene los datos. Observad que
cada observacin aparece en una fila diferente (a diferencia de los programas habituales de estadstica como
SPSS o Systat).
Como ya sabemos el archivo con formato R se consigue con el comando
> ej3 _ read.table("ej3.txt",header=T)
Para efectuar el ANOVA el comando a efectuar es:
> aov.ej3 _ aov(Recuerdo~Valencia+Error(Sujeto/Valencia),ej3)
Dado que el factor Valencia est cruzado con el factor aleatorio Sujeto (esto es, cada sujeto recibe los tres
tipos de palabra), hemos de especificar el trmino de error para Valencia, que en nuestro caso es Sujeto por
Valencia. Para hacer esto, aadimos el trmino Error(Sujeto/Valencia) al factor Valencia.
La tabla del ANOVA tiene el siguiente aspecto:
> summary(aov.ej3)
Error: Sujeto
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 105.067 26.267
Error: Sujeto:Valencia
Df Sum Sq Mean Sq F value Pr(>F)
Valencia 2 2029.73 1014.87 189.11 1.841e-07 ***
Residuals 8 42.93 5.37
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Observa que el anlisis de los factores entre-sujetos se ofrece en primer lugar (en nuestro ejemplo, no hay
ningn factor entre-sujetos), que es seguro por los factores intra-sujetos. Observa que el valor de probabilidad p
para Valencia se expresa en notacin cientfica dado su valor tan bajo.
La tabla de las medias se consigue con tapply
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 13/25
> tapply(ej3$Recuerdo,ej3$Valencia,mean)
Neg Neu Pos
27.8 11.6 40.0
Ejemplo 4. ANOVA factorial intra-sujetos (dos factores intra)
El Apndice IV contiene los datos de un experimento en el que cinco sujetos hubieron de recordad palabras de
diferente valencia (como en el Ejemplo 3, con tres niveles de Valencia). Adems, el experimento const de dos
bloques, en uno de llos haban de recordar los items de manera libre, o bien con seal. Por tanto, tenemos dos
factores: Valencia (3 niveles: positiva, negativa, neutra) y Tarea (2 niveles: libre, con seal). Has de introducir
los datos del fichero ASCII con nombre ej4.txt en un archivo de nombre ej4 con formato R:
> ej4 _ read.table("ej4.txt",header=T)
Y para hacer el ANOVA, escribimos
> aov.ex4 _ aov(Recuerdo~(Tarea*Valencia)+Error(Sujeto/(Tarea*Valencia)),ej4)
Observa que, en el ejemplo, el factor Sujeto est cruzado tanto con Tarea como con Valencia, de manera que
hemos de especificar tres trminos de error: uno para Tarea, otro para Valencia, y otro para la interaccin
entre estos dos. No obstante, R es lo suficientemente espabilado para dividir poner estos tres trminos de error
una vez se indica el trmino de error de la interaccin en el comando anterior.
La tabla del ANOVA tendr el siguiente aspecto:
> summary(aov.ej4)
Error: Sujeto
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 349.13 87.28
Error: Sujeto:Tarea
Df Sum Sq Mean Sq F value Pr(>F)
Tarea 1 30.0000 30.0000 7.3469 0.05351 .
Residuals 4 16.3333 4.0833
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 14/25
Error: Sujeto:Valencia
Df Sum Sq Mean Sq F value Pr(>F)
Valencia 2 9.8000 4.9000 1.4591 0.2883
Residuals 8 26.8667 3.3583
Error: Sujeto:Tarea:Valencia
Df Sum Sq Mean Sq F value Pr(>F)
Tarea:Valencia 2 1.4000 0.7000 0.2907 0.7553
Residuals 8 19.2667 2.4083
Podemos apreciar que no ha habido ningn efecto significativo, si bien el efecto principal de Tarea ha rozado la
significatividad estadstica.
La tabla de las medias por condicin la tenemos con tapply
> tapply(ej4$Recuerdo,list(ej4$Tarea,ej4$Valencia),mean)
Neg Neu Pos
Libre 10.2 11.2 11.0
Seal 11.8 13.0 13.6
La explicacin es similar a la que ya vimos en el caso del Ejemplo 2 (ANOVA factorial entre-sujetos). Y
finalmente trazar el grfico de la interaccin de los dos factores, empleamos interaction.plot
> interaction.plot(ej4$Tarea,ej4$Valencia,ej4$Recuerdo)
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 15/25
Ejemplo 5. Diseos factoriales mixtos
El Apndice V contiene los datos de un experimento con 18 sujetos, 9 mujeres y 9 hombres. Cada sujeto recibe
una de las tres posibles dosis de una droga. Todos los sujetos recibieron tres tipos de palabra (valencia positiva,
negativa o neutra) empleando dos tipo de tarea de memoria (recuerdo libre, o recuerdo con seal). Por tanto,
tenemos 2 factores entre-sujeto: Gnero (2 niveles) y Dosis (3 niveles); y 2 factores intra-sujeto: Tarea (2
niveles) y Valencia (2 niveles). Graba los datos ASCII en el archivo ej5.txt
Para pasar el archivo ASCII ej5.txt al archivo ej5 con formato R hars de escribir
> ej5 _ read.table("ex5.txt",header=T)
Para efectuar el ANOVA escribimos
> aov.ej5 _ aov(Recuerdo~(Tarea*Valencia*Gnero*Dosis)+Error(Sujeto/(Tarea*Valencia))+
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 16/25
(Gnero*Dosis),ej5)
Observa que hemos de distinguir los factores entre- e intra-sujetos. Los factores entre-sujeto estn dentro de la
expresin Error(Sujeto/factores intra)
La tabla del ANOVA ser la siguiente:
> summary(aov.ej5)
Error: Sujeto
Df Sum Sq Mean Sq F value Pr(>F)
Gnero 1 425.04 425.04 4.0881 0.06819 .
Dosis 2 688.02 344.01 3.3088 0.07498 .
Gnero:Dosis 2 62.45 31.23 0.3003 0.74644
Residuals 11 1143.67 103.97
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Error: Sujeto:Tarea
Df Sum Sq Mean Sq F value Pr(>F)
Tarea 1 96.333 96.333 36.5402 8.37e-05 ***
Tarea:Gnero 1 2.042 2.042 0.7744 0.3977
Tarea:Dosis 2 7.128 3.564 1.3519 0.2986
Tarea:Gnero:Dosis 2 3.163 1.582 0.6000 0.5658
Residuals 11 29.000 2.636
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Error: Sujeto:Valencia
Df Sum Sq Mean Sq F value Pr(>F)
Valencia 2 14.685 7.343 4.3956 0.02477 *
Valencia:Gnero 2 9.771 4.885 2.9246 0.07477 .
Valencia:Dosis 4 24.809 6.202 3.7129 0.01865 *
Valencia:Gnero:Dosis 4 3.985 0.996 0.5964 0.66901
Residuals 22 36.750 1.670
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Error: Sujeto:Tarea:Valencia
Df Sum Sq Mean Sq F value Pr(>F)
Tarea:Valencia 2 5.389 2.694 1.6737 0.2106
Tarea:Valencia:Gnero 2 5.146 2.573 1.5982 0.2249
Tarea:Valencia:Dosis 4 4.773 1.193 0.7412 0.5741
Tarea:Valencia:Gnero:Dosis 4 2.609 0.652 0.4052 0.8029
Residuals 22 35.417 1.610
Error: Within
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 17/25
Df Sum Sq Mean Sq
Gnero 1 133.333 133.333
Tarea:Gnero 1 0.333 0.333
Valencia:Gnero 2 8.667 4.333
Tarea:Valencia:Gnero 2 8.667 4.333
Y si ahora queremos tener las medias por condicin, empleamos tapply
> tapply(ej5$Recuerdo,list(ej5$Gnero,ej5$Dosis,ej5$Tarea,ej5$Valencia),mean)
, , L, Neg
A B C
H 16 15.000000 19.66667
M 11 8.333333 17.33333
, , S, Neg
A B C
H 17.33333 17.33333 20.66667
M 12.66667 10.00000 18.00000
, , L, Neu
A B C
H 15.33333 13.666667 18.66667
M 11.66667 8.666667 17.33333
, , S, Neu
A B C
H 17.33333 18.00000 21.66667
M 12.66667 11.66667 19.00000
, , L, Pos
A B C
H 16.33333 16.33333 20.33333
M 10.33333 11.00000 17.33333
, , S, Pos
A B C
H 17.00000 19.66667 21.33333
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 18/25
M 12.66667 12.33333 19.00000
O bien podemos pedir, por ejemplo, las medias de la interaccin Dosis*Valencia con tapply
> tapply(ej5$Recuerdo,list(ej5$Dosis,ej5$Valencia),mean)
Neg Neu Pos
A 14.25000 14.25000 14.08333
B 12.66667 13.00000 14.83333
C 18.91667 19.16667 19.50000
Igualmente podramos trazar la interaccin entre, de nuevo, Dosis por Valencia, con interaction.plot
> interaction.plot(ej5$Dosis,ej5$Valencia,ej5$Recuerdo)
Recuerda que para salir del programa slo has de pulsar q()
Finalmente, cabe indicar que R puede emplearse para muchsimos otros aspectos del anlisis. En otros sitios
web podrs encontrar excelentes ejemplos.
Apndices
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 19/25
Apndice I. Datos para el ejemplo 1
Observacin Dosis Vigilancia
1 a 30
2 a 38
3 a 35
4 a 41
5 a 27
6 a 24
7 b 32
8 b 26
9 b 31
10 b 29
11 b 27
12 b 35
13 b 21
14 b 25
15 c 17
16 c 21
17 c 20
18 c 19
Apndice II. Datos para el ejemplo 2
Observacin Gnero Dosis Vigilancia
1 m a 8
2 m a 12
3 m a 13
4 m a 12
5 m b 6
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 20/25
6 m b 7
7 m b 23
8 m b 14
9 h a 15
10 h a 12
11 h a 22
12 h a 14
13 h b 15
14 h b 12
15 h b 18
16 h b 22
Apndice III. Datos para el ejemplo 3
Observacion Sujeto Valencia Recuerdo
1 Pedro Neg 32
2 Pedro Neu 15
3 Pedro Pos 45
4 Mara Neg 30
5 Mara Neu 13
6 Mara Pos 40
7 Elena Neg 26
8 Elena Neu 12
9 Elena Pos 42
10 Vanessa Neg 22
11 Vanessa Neu 10
12 Vanessa Pos 38
13 Luis Neg 29
14 Luis Neu 8
15 Luis Pos 35
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 21/25
Apndice IV. Datos para el ejemplo 4
Observacin Sujeto Tarea Valencia Recuerdo
1 Pedro Libre Neg 8
2 Pedro Libre Neu 9
3 Pedro Libre Pos 5
4 Pedro Seal Neg 7
5 Pedro Seal Neu 9
6 Pedro Seal Pos 10
7 Victor Libre Neg 12
8 Victor Libre Neu 13
9 Victor Libre Pos 14
10 Victor Seal Neg 16
11 Victor Seal Neu 13
12 Victor Seal Pos 14
13 Maria Libre Neg 13
14 Maria Libre Neu 13
15 Maria Libre Pos 12
16 Maria Seal Neg 15
17 Maria Seal Neu 16
18 Maria Seal Pos 14
19 Amparo Libre Neg 12
20 Amparo Libre Neu 14
21 Amparo Libre Pos 15
22 Amparo Seal Neg 17
23 Amparo Seal Neu 18
24 Amparo Seal Pos 20
25 Ana Libre Neg 6
26 Ana Libre Neu 7
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 22/25
27 Ana Libre Pos 9
28 Ana Seal Neg 4
29 Ana Seal Neu 9
30 Ana Seal Pos 10
Apndice V. Datos para el ejemplo 5
Obs Sujeto Gnero Dosis Tarea Valencia Recuerdo
1 A M A L Neg 8
2 A M A L Neu 9
3 A M A L Pos 5
4 A M A S Neg 7
5 A M A S Neu 9
6 A M A S Pos 10
7 B M A L Neg 12
8 B M A L Neu 13
9 B M A L Pos 14
10 B M A S Neg 16
11 B M A S Neu 13
12 B M A S Pos 14
13 C M A L Neg 13
14 C M A L Neu 13
15 C M A L Pos 12
16 C M A S Neg 15
17 C M A S Neu 16
18 C M A S Pos 14
19 D M B L Neg 12
20 D M B L Neu 14
21 D M B L Pos 15
22 D M B S Neg 17
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 23/25
23 D M B S Neu 18
24 D M B S Pos 20
25 E M B L Neg 6
26 E M B L Neu 7
27 E M B L Pos 9
28 E M B S Neg 4
29 E M B S Neu 9
30 E M B S Pos 10
31 L M B L Neg 7
32 L M B L Neu 5
33 L M B L Pos 9
34 L M B S Neg 9
35 L M B S Neu 8
36 L M B S Pos 7
37 G M C L Neg 23
38 G M C L Neu 22
39 G M C L Pos 23
40 G M C S Neg 25
41 G M C S Neu 23
42 G M C S Pos 22
43 H M C L Neg 14
44 H M C L Neu 14
45 H M C L Pos 13
46 H M C S Neg 15
47 H M C S Neu 17
48 H M C S Pos 17
49 I M C L Neg 15
50 I M C L Neu 16
51 I M C L Pos 16
52 I M C S Neg 14
53 I M C S Neu 17
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 24/25
54 I M C S Pos 18
55 J H A L Neg 12
56 J H A L Neu 11
57 J H A L Pos 13
58 J H A S Neg 15
59 J H A S Neu 14
60 J H A S Pos 15
61 K H A L Neg 22
62 K H A L Neu 20
63 K H A L Pos 23
64 K H A S Neg 25
65 K H A S Neu 22
66 K H A S Pos 21
67 L H A L Neg 14
68 L H A L Neu 15
69 L H A L Pos 13
70 L H A S Neg 12
71 L H A S Neu 16
72 L H A S Pos 15
73 M H B L Neg 15
74 M H B L Neu 14
75 M H B L Pos 16
76 M H B S Neg 15
77 M H B S Neu 18
78 M H B S Pos 21
79 N H B L Neg 12
80 N H B L Neu 10
81 N H B L Pos 14
82 N H B S Neg 15
83 N H B S Neu 14
84 N H B S Pos 17
19/8/2014 ANOVA y R
http://www.uv.es/mperea/R-Anovas.html 25/25
85 O H B L Neg 18
86 O H B L Neu 17
87 O H B L Pos 19
88 O H B S Neg 22
89 O H B S Neu 22
90 O H B S Pos 21
91 P H C L Neg 22
92 P H C L Neu 22
93 P H C L Pos 24
94 P H C S Neg 23
95 P H C S Neu 25
96 P H C S Pos 25
97 Q H C L Neg 18
98 Q H C L Neu 17
99 Q H C L Pos 18
100 Q H C S Neg 17
101 Q H C S Neu 19
102 Q H C S Pos 19
103 R H C L Neg 19
104 R H C L Neu 17
105 R H C L Pos 19
106 R H C S Neg 22
107 R H C S Neu 21
108 R H C S Pos 20

S-ar putea să vă placă și