library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggpubr)
library(rstatix)
##
## Attaching package: 'rstatix'
##
## The following object is masked from 'package:stats':
##
## filter
library(readxl)
Datos_Medidas_repetidas_2 <- read_excel("Datos Medidas repetidas 2.xlsx",
sheet = "Hoja2")
Se puede realizar el ANOVA de medidas repetidas bidireccionales para determinar si existe una interacción significativa entre la variedad y el tiempo en la puntuación de autoestima.
# Wide format
data("Datos_Medidas_repetidas_2", package = "datarium")
## Warning in data("Datos_Medidas_repetidas_2", package = "datarium"): data set
## 'Datos_Medidas_repetidas_2' not found
Datos_Medidas_repetidas_2 %>% sample_n_by(variedad, size = 1)
## # A tibble: 3 × 6
## id X1 X2 X3 X4 variedad
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 4 2.81 4.29 4.75 4.88 Var_1
## 2 3 3.09 4.65 5.11 5.44 Var_2
## 3 5 2.91 4.25 4.84 4.97 Var_3
# Gather the columns t1, t2 and t3 into long format.
# Convert id and time into factor variables
Datos_Medidas_repetidas_2 <- Datos_Medidas_repetidas_2 %>%
gather(key = "time", value = "score", X1, X2, X3, X4) %>%
convert_as_factor(id, time)
# Inspect some random rows of the data by groups
set.seed(123)
Datos_Medidas_repetidas_2 %>% sample_n_by(variedad, time, size = 1)
## # A tibble: 12 × 4
## id variedad time score
## <fct> <chr> <fct> <dbl>
## 1 3 Var_1 X1 2.78
## 2 3 Var_1 X2 4.25
## 3 10 Var_1 X3 4.97
## 4 2 Var_1 X4 4.74
## 5 6 Var_2 X1 3.21
## 6 5 Var_2 X2 4.75
## 7 4 Var_2 X3 5.23
## 8 6 Var_2 X4 5.53
## 9 9 Var_3 X1 2.57
## 10 10 Var_3 X2 5.09
## 11 5 Var_3 X3 4.84
## 12 3 Var_3 X4 4.96
##Resumen estadístico
Datos_Medidas_repetidas_2 %>%
group_by(variedad, time) %>%
get_summary_stats(score, type = "mean_sd")
## # A tibble: 12 × 6
## variedad time variable n mean sd
## <chr> <fct> <fct> <dbl> <dbl> <dbl>
## 1 Var_1 X1 score 10 2.83 0.242
## 2 Var_1 X2 score 10 4.26 0.176
## 3 Var_1 X3 score 10 4.78 0.133
## 4 Var_1 X4 score 10 5 0.209
## 5 Var_2 X1 score 10 3.24 0.174
## 6 Var_2 X2 score 10 4.79 0.218
## 7 Var_2 X3 score 10 5.29 0.215
## 8 Var_2 X4 score 10 5.55 0.163
## 9 Var_3 X1 score 10 2.85 0.27
## 10 Var_3 X2 score 10 4.44 0.338
## 11 Var_3 X3 score 10 4.82 0.341
## 12 Var_3 X4 score 10 5.08 0.219
bxp <- ggboxplot(
Datos_Medidas_repetidas_2, x = "time", y = "score",
color = "variedad", palette = "jco"
)
bxp
##Comprobar suposiciones:
1.Valores atípicos
Datos_Medidas_repetidas_2 %>%
group_by(variedad, time) %>%
identify_outliers(score)
## # A tibble: 9 × 6
## variedad time id score is.outlier is.extreme
## <chr> <fct> <fct> <dbl> <lgl> <lgl>
## 1 Var_1 X1 1 2.21 TRUE FALSE
## 2 Var_1 X2 1 3.86 TRUE TRUE
## 3 Var_1 X2 2 4.05 TRUE TRUE
## 4 Var_1 X2 10 4.45 TRUE FALSE
## 5 Var_2 X4 9 5.82 TRUE FALSE
## 6 Var_2 X4 10 5.82 TRUE FALSE
## 7 Var_3 X3 6 4.23 TRUE FALSE
## 8 Var_3 X3 7 5.38 TRUE FALSE
## 9 Var_3 X4 10 5.56 TRUE FALSE
Impacto en la validez de los resultados: Los datos atípicos pueden distorsionar la validez de los resultados del estudio. Pueden afectar la precisión de las estimaciones y reducir la confiabilidad de las conclusiones.
Influencia en las pruebas estadísticas: Los datos atípicos pueden tener un impacto significativo en las pruebas estadísticas utilizadas para analizar las diferencias entre los grupos o a lo largo del tiempo. Dependiendo de la magnitud de los datos atípicos, podrían conducir a conclusiones erróneas o malinterpretaciones de los resultados.
Datos_Medidas_repetidas_2 %>%
group_by(variedad, time) %>%
shapiro_test(score)
## # A tibble: 12 × 5
## variedad time variable statistic p
## <chr> <fct> <chr> <dbl> <dbl>
## 1 Var_1 X1 score 0.750 0.00360
## 2 Var_1 X2 score 0.831 0.0339
## 3 Var_1 X3 score 0.953 0.709
## 4 Var_1 X4 score 0.960 0.791
## 5 Var_2 X1 score 0.905 0.247
## 6 Var_2 X2 score 0.971 0.899
## 7 Var_2 X3 score 0.965 0.842
## 8 Var_2 X4 score 0.881 0.135
## 9 Var_3 X1 score 0.944 0.602
## 10 Var_3 X2 score 0.901 0.224
## 11 Var_3 X3 score 0.962 0.813
## 12 Var_3 X4 score 0.888 0.163
Según la prueva de normalidad la puntuación se distribuyó normalmente en cada momento (p > 0,05), excepto para la variedad Var_1 en los tiempos X1 y X2, según lo evaluado mediante la prueba de Shapiro-Wilk.
gráfico QQ para cada celda del diseño:
ggqqplot(Datos_Medidas_repetidas_2, "score", ggtheme = theme_bw()) +
facet_grid(time ~ variedad, labeller = "label_both")
Si los puntos en el gráfico QQ siguen aproximadamente una línea diagonal, indica que los datos observados se ajustan bien a la distribución teórica.
Del gráfico anterior, como todos los puntos caen aproximadamente a lo largo de la línea de referencia, podemos asumir normalidad.
crear un gráfico QQ para cada celda del diseño” implica visualizar y evaluar la normalidad de las distribuciones de datos para cada combinación única de condiciones o niveles dentro de tu estudio experimental.
##Cálculo
res.aov <- anova_test(
data = Datos_Medidas_repetidas_2, dv = score, wid = id,
within = c(variedad, time)
)
get_anova_table(res.aov)
## ANOVA Table (type III tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 variedad 1.1 9.93 31.560 1.83e-04 * 0.496
## 2 time 3.0 27.00 3403.032 6.54e-35 * 0.939
## 3 variedad:time 6.0 54.00 2.493 3.30e-02 * 0.020
Hay interacciones bidireccionales estadísticamente significativas entre el variedad y el tiempo, F(6,54) = p < 0,05.
El índice GES es una medida de efecto que indica la proporción de la varianza total explicada por el efecto de interés. En este caso, el valor de GES es 0.020, lo que sugiere que alrededor del 2% de la variabilidad total puede atribuirse al efecto de interés.
##Pruebas post hoc Debido a que existe interacciones estadisitcamente significativas entre la variedad y el tiempo (existen diferencias entre las medias) las pruebas post hoc ayudan a identificar cuáles pares de grupos difieren significativamente entre sí en este caso avaluaremos el efecto de la varieddad sobre la creciemiento en cada tiempo
# Effect of treatment at each time point
one.way <- Datos_Medidas_repetidas_2 %>%
group_by(time) %>%
anova_test(dv = score, wid = id, within = variedad) %>%
get_anova_table() %>%
adjust_pvalue(method = "bonferroni")
one.way
## # A tibble: 4 × 9
## time Effect DFn DFd F p `p<.05` ges p.adj
## <fct> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 X1 variedad 2 18 18.7 0.0000408 * 0.43 0.000163
## 2 X2 variedad 1.15 10.4 21.6 0.00062 * 0.458 0.00248
## 3 X3 variedad 1.11 9.98 21.8 0.000727 * 0.498 0.00291
## 4 X4 variedad 1.15 10.3 55.5 0.0000126 * 0.621 0.0000504
Existen diferencias significativas
# Pairwise comparisons between treatment groups
pwc <- Datos_Medidas_repetidas_2 %>%
group_by(time) %>%
pairwise_t_test(
score ~ variedad, paired = TRUE,
p.adjust.method = "bonferroni"
)
pwc
## # A tibble: 12 × 11
## time .y. group1 group2 n1 n2 statistic df p p.adj
## * <fct> <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl>
## 1 X1 score Var_1 Var_2 10 10 -8.76 9 0.0000106 3.18e-5
## 2 X1 score Var_1 Var_3 10 10 -0.226 9 0.826 1 e+0
## 3 X1 score Var_2 Var_3 10 10 4.88 9 0.000873 3 e-3
## 4 X2 score Var_1 Var_2 10 10 -16.7 9 0.000000045 1.35e-7
## 5 X2 score Var_1 Var_3 10 10 -1.84 9 0.098 2.95e-1
## 6 X2 score Var_2 Var_3 10 10 3.64 9 0.005 1.6 e-2
## 7 X3 score Var_1 Var_2 10 10 -18.6 9 0.0000000174 5.22e-8
## 8 X3 score Var_1 Var_3 10 10 -0.480 9 0.643 1 e+0
## 9 X3 score Var_2 Var_3 10 10 4.48 9 0.002 5 e-3
## 10 X4 score Var_1 Var_2 10 10 -25.3 9 0.00000000114 3.42e-9
## 11 X4 score Var_1 Var_3 10 10 -1.20 9 0.259 7.77e-1
## 12 X4 score Var_2 Var_3 10 10 7.24 9 0.0000488 1.46e-4
## # ℹ 1 more variable: p.adj.signif <chr>
no huvo diferencias signidficativas por que todo da sobre 0.05, la comparaciones por pares muestran que la puntuación media de creciemiento fue significativamente en el tiempo
Efecto del tiempo . Tenga en cuenta que también es posible realizar el mismo análisis para la timevariable en cada nivel de variedad. No es necesario que hagas este análisis.
# Effect of time at each level of treatment
one.way2 <- Datos_Medidas_repetidas_2 %>%
group_by(variedad) %>%
anova_test(dv = score, wid = id, within = time) %>%
get_anova_table() %>%
adjust_pvalue(method = "bonferroni")
# Pairwise comparisons between time points
pwc2 <- Datos_Medidas_repetidas_2 %>%
group_by(variedad) %>%
pairwise_t_test(
score ~ time, paired = TRUE,
p.adjust.method = "bonferroni"
)
pwc2
## # A tibble: 18 × 11
## variedad .y. group1 group2 n1 n2 statistic df p p.adj
## * <chr> <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Var_1 score X1 X2 10 10 -49.6 9 2.77e-12 1.66e-11
## 2 Var_1 score X1 X3 10 10 -41.7 9 1.31e-11 7.86e-11
## 3 Var_1 score X1 X4 10 10 -52.4 9 1.68e-12 1.01e-11
## 4 Var_1 score X2 X3 10 10 -22.3 9 3.45e- 9 2.07e- 8
## 5 Var_1 score X2 X4 10 10 -26.1 9 8.48e-10 5.09e- 9
## 6 Var_1 score X3 X4 10 10 -8.97 9 8.79e- 6 5.27e- 5
## 7 Var_2 score X1 X2 10 10 -60.5 9 4.66e-13 2.8 e-12
## 8 Var_2 score X1 X3 10 10 -98.9 9 5.59e-15 3.35e-14
## 9 Var_2 score X1 X4 10 10 -106. 9 2.95e-15 1.77e-14
## 10 Var_2 score X2 X3 10 10 -36.9 9 3.90e-11 2.34e-10
## 11 Var_2 score X2 X4 10 10 -35.3 9 5.84e-11 3.5 e-10
## 12 Var_2 score X3 X4 10 10 -10.2 9 2.98e- 6 1.79e- 5
## 13 Var_3 score X1 X2 10 10 -29.8 9 2.65e-10 1.59e- 9
## 14 Var_3 score X1 X3 10 10 -30.7 9 1.99e-10 1.19e- 9
## 15 Var_3 score X1 X4 10 10 -39.4 9 2.16e-11 1.3 e-10
## 16 Var_3 score X2 X3 10 10 -7.85 9 2.57e- 5 1.54e- 4
## 17 Var_3 score X2 X4 10 10 -12.8 9 4.58e- 7 2.75e- 6
## 18 Var_3 score X3 X4 10 10 -3.54 9 6 e- 3 3.8 e- 2
## # ℹ 1 more variable: p.adj.signif <chr>
el efecto del tiempo fue significativo para todas las pruebas
##Procedimiento de interacción bidireccional no significativa
Comparaciones de pruebas t pareadas por pares:
# comparisons for variedad variable
Datos_Medidas_repetidas_2 %>%
pairwise_t_test(
score ~ variedad, paired = TRUE,
p.adjust.method = "bonferroni"
)
## # A tibble: 3 × 10
## .y. group1 group2 n1 n2 statistic df p p.adj p.adj.signif
## * <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 score Var_1 Var_2 40 40 -27.7 39 2.72e-27 8.16e-27 ****
## 2 score Var_1 Var_3 40 40 -1.87 39 7 e- 2 2.09e- 1 ns
## 3 score Var_2 Var_3 40 40 9.78 39 4.79e-12 1.44e-11 ****
# comparisons for time variable
Datos_Medidas_repetidas_2 %>%
pairwise_t_test(
score ~ time, paired = TRUE,
p.adjust.method = "bonferroni"
)
## # A tibble: 6 × 10
## .y. group1 group2 n1 n2 statistic df p p.adj p.adj.signif
## * <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 score X1 X2 30 30 -61.3 29 3.12e-32 1.87e-31 ****
## 2 score X1 X3 30 30 -72.4 29 2.58e-34 1.55e-33 ****
## 3 score X1 X4 30 30 -87.2 29 1.18e-36 7.08e-36 ****
## 4 score X2 X3 30 30 -22.1 29 1.10e-19 6.60e-19 ****
## 5 score X2 X4 30 30 -32.4 29 2.58e-24 1.55e-23 ****
## 6 score X3 X4 30 30 -9.40 29 2.66e-10 1.6 e- 9 ****
hay diferencias significativas exepto
INFORME:
# Visualization: box plots with p-values
pwc <- pwc %>% add_xy_position(x = "time")
bxp +
stat_pvalue_manual(pwc, tip.length = 0, hide.ns = TRUE) +
labs(
subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc)
)