library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.4 v stringr 1.4.0
## v readr 2.0.2 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(ggpubr)
library(rstatix)
##
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
##
## filter
library(datarium)
df<-read.csv("https://raw.githubusercontent.com/gidasan08/DExperimental/main/Problema%205.csv")
df
## ï..ID Ruido Angulo0 Angulo4 Angulo8
## 1 1 SR 420 420 480
## 2 1 CR 480 600 780
## 3 2 SR 420 480 480
## 4 2 CR 360 480 600
## 5 3 SR 480 480 540
## 6 3 CR 660 780 780
## 7 4 SR 420 540 540
## 8 4 CR 480 780 900
## 9 5 SR 540 660 540
## 10 5 CR 480 660 720
## 11 6 SR 360 420 360
## 12 6 CR 360 480 540
## 13 7 SR 480 480 600
## 14 7 CR 540 720 840
## 15 8 SR 480 600 660
## 16 8 CR 540 720 900
## 17 9 SR 540 600 540
## 18 9 CR 480 720 780
## 19 10 SR 480 420 540
## 20 10 CR 540 660 780
df$ï..ID=factor(df$ï..ID)
df$Ruido=factor(df$Ruido)
df$Angulo0=as.numeric(df$Angulo0)
df$Angulo4=as.numeric(df$Angulo4)
df$Angulo8=as.numeric(df$Angulo8)
df
## ï..ID Ruido Angulo0 Angulo4 Angulo8
## 1 1 SR 420 420 480
## 2 1 CR 480 600 780
## 3 2 SR 420 480 480
## 4 2 CR 360 480 600
## 5 3 SR 480 480 540
## 6 3 CR 660 780 780
## 7 4 SR 420 540 540
## 8 4 CR 480 780 900
## 9 5 SR 540 660 540
## 10 5 CR 480 660 720
## 11 6 SR 360 420 360
## 12 6 CR 360 480 540
## 13 7 SR 480 480 600
## 14 7 CR 540 720 840
## 15 8 SR 480 600 660
## 16 8 CR 540 720 900
## 17 9 SR 540 600 540
## 18 9 CR 480 720 780
## 19 10 SR 480 420 540
## 20 10 CR 540 660 780
df<-df %>% gather(key="Angulo",value="score","Angulo0", "Angulo4", "Angulo8") %>% convert_as_factor(ï..ID, Angulo)
df
## ï..ID Ruido Angulo score
## 1 1 SR Angulo0 420
## 2 1 CR Angulo0 480
## 3 2 SR Angulo0 420
## 4 2 CR Angulo0 360
## 5 3 SR Angulo0 480
## 6 3 CR Angulo0 660
## 7 4 SR Angulo0 420
## 8 4 CR Angulo0 480
## 9 5 SR Angulo0 540
## 10 5 CR Angulo0 480
## 11 6 SR Angulo0 360
## 12 6 CR Angulo0 360
## 13 7 SR Angulo0 480
## 14 7 CR Angulo0 540
## 15 8 SR Angulo0 480
## 16 8 CR Angulo0 540
## 17 9 SR Angulo0 540
## 18 9 CR Angulo0 480
## 19 10 SR Angulo0 480
## 20 10 CR Angulo0 540
## 21 1 SR Angulo4 420
## 22 1 CR Angulo4 600
## 23 2 SR Angulo4 480
## 24 2 CR Angulo4 480
## 25 3 SR Angulo4 480
## 26 3 CR Angulo4 780
## 27 4 SR Angulo4 540
## 28 4 CR Angulo4 780
## 29 5 SR Angulo4 660
## 30 5 CR Angulo4 660
## 31 6 SR Angulo4 420
## 32 6 CR Angulo4 480
## 33 7 SR Angulo4 480
## 34 7 CR Angulo4 720
## 35 8 SR Angulo4 600
## 36 8 CR Angulo4 720
## 37 9 SR Angulo4 600
## 38 9 CR Angulo4 720
## 39 10 SR Angulo4 420
## 40 10 CR Angulo4 660
## 41 1 SR Angulo8 480
## 42 1 CR Angulo8 780
## 43 2 SR Angulo8 480
## 44 2 CR Angulo8 600
## 45 3 SR Angulo8 540
## 46 3 CR Angulo8 780
## 47 4 SR Angulo8 540
## 48 4 CR Angulo8 900
## 49 5 SR Angulo8 540
## 50 5 CR Angulo8 720
## 51 6 SR Angulo8 360
## 52 6 CR Angulo8 540
## 53 7 SR Angulo8 600
## 54 7 CR Angulo8 840
## 55 8 SR Angulo8 660
## 56 8 CR Angulo8 900
## 57 9 SR Angulo8 540
## 58 9 CR Angulo8 780
## 59 10 SR Angulo8 540
## 60 10 CR Angulo8 780
df %>% group_by(Angulo) %>% get_summary_stats(score,type="mean_sd")
## # A tibble: 3 x 5
## Angulo variable n mean sd
## <fct> <chr> <dbl> <dbl> <dbl>
## 1 Angulo0 score 20 477 74.1
## 2 Angulo4 score 20 585 123.
## 3 Angulo8 score 20 645 154.
df
## ï..ID Ruido Angulo score
## 1 1 SR Angulo0 420
## 2 1 CR Angulo0 480
## 3 2 SR Angulo0 420
## 4 2 CR Angulo0 360
## 5 3 SR Angulo0 480
## 6 3 CR Angulo0 660
## 7 4 SR Angulo0 420
## 8 4 CR Angulo0 480
## 9 5 SR Angulo0 540
## 10 5 CR Angulo0 480
## 11 6 SR Angulo0 360
## 12 6 CR Angulo0 360
## 13 7 SR Angulo0 480
## 14 7 CR Angulo0 540
## 15 8 SR Angulo0 480
## 16 8 CR Angulo0 540
## 17 9 SR Angulo0 540
## 18 9 CR Angulo0 480
## 19 10 SR Angulo0 480
## 20 10 CR Angulo0 540
## 21 1 SR Angulo4 420
## 22 1 CR Angulo4 600
## 23 2 SR Angulo4 480
## 24 2 CR Angulo4 480
## 25 3 SR Angulo4 480
## 26 3 CR Angulo4 780
## 27 4 SR Angulo4 540
## 28 4 CR Angulo4 780
## 29 5 SR Angulo4 660
## 30 5 CR Angulo4 660
## 31 6 SR Angulo4 420
## 32 6 CR Angulo4 480
## 33 7 SR Angulo4 480
## 34 7 CR Angulo4 720
## 35 8 SR Angulo4 600
## 36 8 CR Angulo4 720
## 37 9 SR Angulo4 600
## 38 9 CR Angulo4 720
## 39 10 SR Angulo4 420
## 40 10 CR Angulo4 660
## 41 1 SR Angulo8 480
## 42 1 CR Angulo8 780
## 43 2 SR Angulo8 480
## 44 2 CR Angulo8 600
## 45 3 SR Angulo8 540
## 46 3 CR Angulo8 780
## 47 4 SR Angulo8 540
## 48 4 CR Angulo8 900
## 49 5 SR Angulo8 540
## 50 5 CR Angulo8 720
## 51 6 SR Angulo8 360
## 52 6 CR Angulo8 540
## 53 7 SR Angulo8 600
## 54 7 CR Angulo8 840
## 55 8 SR Angulo8 660
## 56 8 CR Angulo8 900
## 57 9 SR Angulo8 540
## 58 9 CR Angulo8 780
## 59 10 SR Angulo8 540
## 60 10 CR Angulo8 780
bxp<-ggboxplot(df,x="Angulo",y="score",color="Ruido",palette="jco")
bxp
Outlier
df %>% group_by(Ruido, Angulo) %>% identify_outliers(score)
## # A tibble: 6 x 6
## Ruido Angulo ï..ID score is.outlier is.extreme
## <fct> <fct> <fct> <dbl> <lgl> <lgl>
## 1 CR Angulo0 2 360 TRUE FALSE
## 2 CR Angulo0 3 660 TRUE FALSE
## 3 CR Angulo0 6 360 TRUE FALSE
## 4 CR Angulo8 6 540 TRUE FALSE
## 5 SR Angulo8 6 360 TRUE FALSE
## 6 SR Angulo8 8 660 TRUE FALSE
df %>% group_by(Ruido, Angulo) %>% shapiro_test(score)
## # A tibble: 6 x 5
## Ruido Angulo variable statistic p
## <fct> <fct> <chr> <dbl> <dbl>
## 1 CR Angulo0 score 0.897 0.202
## 2 CR Angulo4 score 0.869 0.0965
## 3 CR Angulo8 score 0.892 0.180
## 4 SR Angulo0 score 0.911 0.287
## 5 SR Angulo4 score 0.886 0.151
## 6 SR Angulo8 score 0.897 0.203
ggqqplot(df,"score",ggtheme=theme_bw()) + facet_grid(Angulo~
Ruido,labeller="label_both")
df %>% group_by(Angulo) %>%
levene_test(score~Ruido)
## # A tibble: 3 x 5
## Angulo df1 df2 statistic p
## <fct> <int> <int> <dbl> <dbl>
## 1 Angulo0 1 18 0.574 0.458
## 2 Angulo4 1 18 0.372 0.550
## 3 Angulo8 1 18 0.812 0.379
Repeated.Measures.ANOVA <- aov(score ~ Angulo + Ruido + Angulo*Ruido + Error(ï..ID/Angulo*Ruido), data=df)
summary(Repeated.Measures.ANOVA)
##
## Error: ï..ID
## Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 9 292140 32460
##
## Error: Ruido
## Df Sum Sq Mean Sq
## Ruido 1 285660 285660
##
## Error: ï..ID:Angulo
## Df Sum Sq Mean Sq F value Pr(>F)
## Angulo 2 289920 144960 40.72 2.09e-07 ***
## Residuals 18 64080 3560
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Error: ï..ID:Ruido
## Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 9 76140 8460
##
## Error: ï..ID:Angulo:Ruido
## Df Sum Sq Mean Sq F value Pr(>F)
## Angulo:Ruido 2 105120 52560 45.31 9.42e-08 ***
## Residuals 18 20880 1160
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
res.aov<-anova_test(data=df,dv=score,wid=ï..ID,within=c(Ruido,Angulo))
get_anova_table(res.aov)
## ANOVA Table (type III tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 Ruido 1 9 33.766 2.56e-04 * 0.387
## 2 Angulo 2 18 40.719 2.09e-07 * 0.390
## 3 Ruido:Angulo 2 18 45.310 9.42e-08 * 0.188
one.way<- df %>% group_by(Angulo) %>% anova_test(dv=score,wid=ï..ID,within=Ruido) %>% get_anova_table() %>% adjust_pvalue(method="bonferroni")
one.way
## # A tibble: 3 x 9
## Angulo Effect DFn DFd F p `p<.05` ges p.adj
## * <fct> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 Angulo0 Ruido 1 9 1.55 0.244 "" 0.043 0.732
## 2 Angulo4 Ruido 1 9 19.7 0.002 "*" 0.392 0.006
## 3 Angulo8 Ruido 1 9 126. 0.00000138 "*" 0.605 0.00000414
pwc<- df %>%
group_by(Angulo) %>%
pairwise_t_test(
score~Ruido,paired=TRUE,
p.adjust.method="bonferroni"
)
pwc
## # A tibble: 3 x 11
## Angulo .y. group1 group2 n1 n2 statistic df p p.adj
## * <fct> <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Angulo0 score CR SR 10 10 1.25 9 0.244 0.244
## 2 Angulo4 score CR SR 10 10 4.44 9 0.002 0.002
## 3 Angulo8 score CR SR 10 10 11.2 9 0.00000138 0.00000138
## # ... with 1 more variable: p.adj.signif <chr>
pwc<-pwc %>% add_xy_position(x="Angulo")
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)
)