Está en la página 1de 12

Material de Laboratorio PSI4035

Pontificia Universidad Católica de Chile


METODOLOGÍA CUANTITATIVA AVANZADA I
LABORATORIO 5:ANOVA Intra y Mixto
Fabiola Gómez
Jueves 20 de Abril de 2023
Durante esta sesión utilizaremos el paquete ez el cual nos permite hacer análisis de varianza
intrasujeto y mixto.
pacman::p_load("ez", "psych")

Diseño Instrasujetos
Se le ha pedido realizar un estudio para evaluar el cambio en el desempeño de estudiantes de
postgrado en el ramo: Metodología Cuantitativa Avanzada I a lo largo de 3 meses. Para esto, se
mide el rendimiento de 30 estudiantes al 1er, 2do y 3er meses de estudiar la materia. Los datos
de este ejemplo se encuentran el la base de datos intrasujeto.txt
Preguntas antes de comenzar:
a. £Cuál es la variable dependiente en este estudio?
b. £Cuál es el factor intrasujeto? H1= T1<(T2+T3)/2

c. £Qué hipótesis se pueden plantear?


Al igual que en sesiones anteriores, es necesario leer la base de datos, revisarla.
setwd("/Users/fa/Dropbox/Docencia/2023/Cuanti I 2023/Laboratorios/Laboratorio 6_Anova_In

baseintra <- read.table("intrasujeto.txt",header=T)


str(baseintra)
## 'data.frame': 90 obs. of 3 variables:
## $ sujeto : int 1 2 3 4 5 6 7 8 9 10 ...
## $ mes : chr "mes1" "mes1" "mes1" "mes1" ...
## $ rendimiento: num 5.01 5.52 3.43 4.5 6.45 5 5.77 3.87 2.42 3.21 ...
# En este tipo de análisis, dado que las mediciones se encuentran
# "anidadas" en los sujetos, es necesario considerarla como factor.
baseintra$sujeto <- as.factor(baseintra$sujeto)
baseintra$mes <- as.factor(baseintra$mes)
str(baseintra)
## 'data.frame': 90 obs. of 3 variables:
## $ sujeto : Factor w/ 30 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ mes : Factor w/ 3 levels "mes1","mes2",..: 1 1 1 1 1 1 1 1 1 1 ...

1
## $ rendimiento: num 5.01 5.52 3.43 4.5 6.45 5 5.77 3.87 2.42 3.21 ...

Exporación de datos
# Descriptivos
describe(baseintra[3])
## vars n mean sd median trimmed mad min max range skew kurtosis
## rendimiento 1 90 5.23 1.2 5.57 5.38 0.87 1.66 6.81 5.15 -1.02 0.26
## se
## rendimiento 0.13
with(baseintra, tapply(rendimiento,mes,mean)) # Promedios por mes
## mes1 mes2 mes3
## 4.103 5.397 6.192
with(baseintra, tapply(rendimiento,mes,sd)) #Desviaciones por mes
## mes1 mes2 mes3
## 1.2521957 0.6113871 0.3970269
Tabla 1
Descriptivos: Estudio 1

Medición 1 2 3 Total
M 4,10 5,39 6,19 5,23
DS 1,25 0,61 0.40 1,19
N 30 30 30 30

2
plot(baseintra$mes,baseintra$rendimiento,
main="Distribución por tiempo", xlab="Mes", ylab="Rendimiento")

Distribución por tiempo

7
6
5
Rendimiento

4
3
2

mes1 mes2 mes3

Mes

3
Especificación del modelo ANOVA intrasujetos
A diferencia del comando aov, el comando ezANOVA solicita que se especifique una variable
dependiente, un factor intrasujeto y un factor identificador de sujeto:
library(ez)
modelo1 <- ezANOVA(data=baseintra,
dv=.(rendimiento), #variable dependiente
wid=.(sujeto), # factor de identificacion de sujeto
within=.(mes), # factor intrasujeto
detailed=TRUE) # entrega mas informacion en resultados

Importante para leer resultados: Este comando entrega también el contraste del supuesto
de esfericidad de Mauchly. Este test es importante revisarlo antes de tomar desiciones respecto
de las hipótesis del estudio. Si el supuesto de esfericidad es violado, el F del modelo no se puede
interpretar y se tienen que usar correcciones.
Para esto existen dos correcciones: Greenhouse-Geisser y Huynh-Feldt. La desición sobre cual
usar se basa en el valor de epsilon total. Si el epsilon es >,75 es adecuado usar la corrección de
Huynh-Feldt. Mientras que si el epison es <,75 se recomienda usar la corrección de Greenhouse-
Geisser.
Nota: el valor ges que se encuentra al lado de la significancia es el eta cuadrado generalizado,
esta es una forma de tamaño de efecto LO PRIMERO ES VERIFICAR EL SUPUESTO DE ESFERICIDAD
modelo1 # muestra los resultados
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05
## 1 (Intercept) 1 29 2462.38864 19.71269 3622.50198 5.218563e-32 *
## 2 mes 2 58 66.70382 41.17045 46.98542 7.385229e-13 *
## ges
## 1 0.9758714
## 2 0.5228106
##
## $`Mauchly's Test for Sphericity`
1) Mirar esto! no son homocedásticos en este caso
## Effect W p p<.05
## 2 mes 0.6290164 0.001517986 *
##
## $`Sphericity Corrections`
Este es epsilon
## Effect GGe p[GG] p[GG]<.05 HFe p[HF] p[HF]<.05
## 2 mes 0.7294033 5.566244e-10 * 0.7582133 2.745314e-10 *
# En los contrastes post hoc es necesario tener en cuenta si el supuesto
# de esfericidad se cumple, ya que eso determina si para el cálculo
# del p-value de comparación entre grupos se usa una misma desviación
2) Usar corrección del valor p[GG] o p[HF] -> Ese será mi valor p de ANOVA (del mes, factor)
4
# standard o se usan distintas por cada grupo.
pairwise.t.test(baseintra$rendimiento,baseintra$mes,"bonferroni",
pool.sd=FALSE, # TRUE si se cumple esfericidad
paired=TRUE)
##
## Pairwise comparisons using paired t tests
##
## data: baseintra$rendimiento and baseintra$mes
##
## mes1 mes2
## mes2 6.4e-05 -
## mes3 4.3e-09 8.4e-06
##
## P value adjustment method: bonferroni

Diseño Mixto
En un hospital realizaron 2 intervenciones con el fin de aumentar el optimismo en pacientes con
cáncer de mama. La primera intervención consiste en cambiar los estilos atribucionales de las
pacientes. Y la segunda intervención está enfocada en aumentar la autoeficacia de los pacientes.
A los investigadores también les interesa conocer si los efectos de estas intervenciones cambian a
través del tiempo, para esto se midió el nivel de optimismo de los pacientes a los 1, 2 y 3 meses
de tratamiento.
Preguntas antes de comenzar:
a. Plantee una hipótesis de efecto principal del tratamiento.
b. Plantee una hipótesis de efecto principal del tiempo.
c. Plantee una hipótesis de interacción entre el tiempo y el tratamiento.
Ahora leemos la base de datos y factorizamos las variables necesarias.
setwd("/Users/fa/Dropbox/Docencia/2023/Cuanti I 2023/Laboratorios/Laboratorio 6_Anova_In
basemixto <- read.table("mixto.txt",header=TRUE)
str(basemixto)
## 'data.frame': 66 obs. of 4 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ trata : int 1 1 1 1 1 1 1 1 1 1 ...
## $ medida : int 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 6 4 5 4 5 6 6 6 ...
basemixto$trata <- factor(basemixto$trata, levels=c(1,2),
labels=c("atribucion","autoeficacia"))

5
basemixto$medida <- as.factor(basemixto$medida)
basemixto$ID <- as.factor(basemixto$ID)
str(basemixto)
## 'data.frame': 66 obs. of 4 variables:
## $ ID : Factor w/ 22 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ trata : Factor w/ 2 levels "atribucion","autoeficacia": 1 1 1 1 1 1 1 1 1 1 ...
## $ medida : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 6 4 5 4 5 6 6 6 ...

Exploración de datos
describe(basemixto[c(2:4)])
## vars n mean sd median trimmed mad min max range skew kurtosis
## trata* 1 66 1.50 0.50 1.5 1.50 0.74 1 2 1 0.00 -2.03
## medida* 2 66 2.00 0.82 2.0 2.00 1.48 1 3 2 0.00 -1.55
## optimismo 3 66 5.32 1.98 5.0 5.13 1.48 2 10 8 0.93 0.31
## se
## trata* 0.06
## medida* 0.10
## optimismo 0.24
with(basemixto,tapply(optimismo,list(trata,medida),mean))
## 1 2 3
## atribucion 5.090909 5.454545 8.636364
## autoeficacia 4.000000 4.000000 4.709091
with(basemixto,tapply(optimismo,list(trata,medida),sd))
## 1 2 3
## atribucion 0.9438798 0.9341987 1.858641
## autoeficacia 1.1832160 1.1832160 1.000454

6
Tabla 2
Descriptivos: Estudio 2

Medida 1 Medida 2 Medida3 Total


Tratamiento M SD N M SD N M SD N M SD N
Atribucional 5,09 0,94 11 5,46 0,93 11 8,63 1,85 11 6,40 2,06 11
Autoeficacia 4,00 1,18 11 4,00 1,18 11 4,71 1,00 11 4,23 1,14 11
Total 4,55 1,18 22 4,73 1,27 22 6,67 2,48 22 5,31 1,97 22

Especificación del modelo ANOVA mixto


modelo2<-ezANOVA(data=basemixto,
dv=.(optimismo), #variable dependiente
wid=.(ID), # Factor identificador de sujeto
within=.(medida), # Factor intrasujeto
between=(trata), # Factor entregrupos
detailed=TRUE)

Importante para leer resultados: El supuesto de esfericidad solo aplica para las medidas
instrasujetos, por tanto el programa testeará este supuesto para el factor intrasujetos y la inter-
acción entre factores. Al igual que en el ANOVA factorial, si la interacción es significativa los
efectos principales no son interpretables.
modelo2 #para ver los resultados
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05
## 1 (Intercept) 1 20 1864.55515 48.81515 763.92476 2.082817e-17 *
## 2 trata 1 20 76.80970 48.81515 31.46961 1.721097e-05 *
## 3 medida 2 40 61.18303 41.37576 29.57434 1.304553e-08 *
## 4 trata:medida 2 40 26.20121 41.37576 12.66501 5.482074e-05 *
## ges
## 1 0.9538605
## 2 0.4599366
## 3 0.4041847
## 4 0.2251116
##
## $`Mauchly's Test for Sphericity`
## Effect W p p<.05
## 3 medida 0.1915554 1.519835e-07 *
## 4 trata:medida 0.1915554 1.519835e-07 *
##
## $`Sphericity Corrections`
## Effect GGe p[GG] p[GG]<.05 HFe p[HF]

7
## 3 medida 0.5529614 1.128467e-05 * 0.5616675 9.882897e-06
## 4 trata:medida 0.5529614 1.341563e-03 * 0.5616675 1.259799e-03
## p[HF]<.05
## 3 *
## 4 *
Dado que la interacción es significativa:
#grafico de la interaccion
with(basemixto,
interaction.plot(medida,trata,optimismo,type="l"))

trata
8

atribucion
autoeficacia
7
mean of optimismo

6
5
4

1 2 3

medida

8
Análisis de efectos simples: Para este análisis se sigue la misma lógica que en el ANOVA factorial.

#### Subset por tratamiento


# Tratamiento estilos atribucionales
trata.atrib <- subset(basemixto,trata=="atribucion")
str(trata.atrib)
## 'data.frame': 33 obs. of 4 variables:
## $ ID : Factor w/ 22 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ trata : Factor w/ 2 levels "atribucion","autoeficacia": 1 1 1 1 1 1 1 1 1 1 ...
## $ medida : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 6 4 5 4 5 6 6 6 ...
trata.atrib$ID <- factor(trata.atrib$ID, levels = c(1:11))
str(trata.atrib)
## 'data.frame': 33 obs. of 4 variables:
## $ ID : Factor w/ 11 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ trata : Factor w/ 2 levels "atribucion","autoeficacia": 1 1 1 1 1 1 1 1 1 1 ...
## $ medida : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 6 4 5 4 5 6 6 6 ...
mod.atrib <- ezANOVA(data=trata.atrib,
dv=.(optimismo), #variable dependiente
wid=.(ID), # Factor identificador de sujeto
within=.(medida), # Factor entresujetos
detailed=TRUE)

9
mod.atrib
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05
## 1 (Intercept) 1 10 1349.12121 13.21212 1021.12385 2.119868e-11 *
## 2 medida 2 20 83.69697 38.96970 21.47745 1.047140e-05 *
## ges
## 1 0.9627619
## 2 0.6159679
##
## $`Mauchly's Test for Sphericity`
## Effect W p p<.05
## 2 medida 0.2015363 0.0007406111 *
##
## $`Sphericity Corrections`
## Effect GGe p[GG] p[GG]<.05 HFe p[HF] p[HF]<.05
## 2 medida 0.5560301 0.0005591486 * 0.5756488 0.0004681285 *
#contrastes post hoc
pairwise.t.test(trata.atrib$optimismo, trata.atrib$medida,
"bonferroni",pool.sd=FALSE, paired=TRUE)
##
## Pairwise comparisons using paired t tests
##
## data: trata.atrib$optimismo and trata.atrib$medida
##
## 1 2
## 2 0.3118 -
## 3 0.0023 0.0027
##
## P value adjustment method: bonferroni

10
#tratamiento autoeficacia
trata.autoef <- subset(basemixto,trata=="autoeficacia")
str(trata.autoef)
## 'data.frame': 33 obs. of 4 variables:
## $ ID : Factor w/ 22 levels "1","2","3","4",..: 12 13 14 15 16 17 18 19 20 21 .
## $ trata : Factor w/ 2 levels "atribucion","autoeficacia": 2 2 2 2 2 2 2 2 2 2 ...
## $ medida : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 5 4 4 2 3 3 3 5 ...
trata.autoef$ID <- factor(trata.autoef$ID, levels = c(12:22))
str(trata.autoef)
## 'data.frame': 33 obs. of 4 variables:
## $ ID : Factor w/ 11 levels "12","13","14",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ trata : Factor w/ 2 levels "atribucion","autoeficacia": 2 2 2 2 2 2 2 2 2 2 ...
## $ medida : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ optimismo: num 6 4 5 4 4 2 3 3 3 5 ...
mod.autoef <- ezANOVA(data=trata.autoef,
dv=.(optimismo), #variable dependiente
wid=.(ID), # Factor identificador de sujeto
within=.(medida), # Factor entresujetos
detailed=TRUE)
mod.autoef
## $ANOVA
## Effect DFn DFd SSn SSd F p p<.05
## 1 (Intercept) 1 10 592.243636 35.603030 166.34641 1.478395e-07 *
## 2 medida 2 20 3.687273 2.406061 15.32494 9.215444e-05 *
## ges
Aquí, tamaño de efecto
## 1 0.93969230
## 2 0.08843152
##
## $`Mauchly's Test for Sphericity`
## Effect W p p<.05
## 2 medida 0 0 *
##
## $`Sphericity Corrections`
## Effect GGe p[GG] p[GG]<.05 HFe p[HF] p[HF]<.05
## 2 medida 0.5 0.002891092 * 0.5 0.002891092 *
#contrastes post hoc
pairwise.t.test(trata.autoef$optimismo, trata.autoef$medida,
"bonferroni",pool.sd=FALSE, paired=TRUE)

11
##
## Pairwise comparisons using paired t tests
##
## data: trata.autoef$optimismo and trata.autoef$medida
##
## 1 2
## 2 - -
## 3 0.0058 0.0058
##
## P value adjustment method: bonferroni
tapply(trata.autoef$optimismo,trata.autoef$medida, mean)
## 1 2 3
## 4.000000 4.000000 4.709091
También hay efecto de este tratamiento!

12

También podría gustarte