RESPECTO A LOS GRAFICOS : Cuando es de las diagonales X SIEMPRE ES NUMERO Y Y ES UN FACTOR cuando es el de los bloques X SIEMPRE ES UN FACTOR Y Y ES SIEMPRE UN NÚMERO. SI NO LO HAGO ASÍ EL GRÁFICO ME SALDRÁ MAL.
GRÁFICOS Si es NO PARAMÉTRICA, uso boxplot (ggplot) Si es PARAMÉTRICA, uso las barras (ggpubr) ggerrorplot
Los astericos indican que la probabilidad de que todas las medias sean iguales es menor a 0.05. De ahi que al menos una difiere de las demás.
RDG Y SES(nivel socioeconómico) - La pregunta sería: ¿a mayor nivel socioeconómico, mayor nivel de lectura? - Cuando me sale e-12. quiere decir que muevo la coma decimal doce veces, es muy significativo. - Según el gráfico, confirma que la diferencia es significativa puesto que el primer bloque está debajo de los demás. - Politómica: de tres a más
##Exploración Bivariada (parte 1)
library(rio)
linkGIT="https://github.com/JoseManuelMagallanes/Estadistica_Para_AnalisisPolitico/raw/master/hsb.sav"
data=import(linkGIT)
str(data,strict.width="cut",width=50)
## 'data.frame': 600 obs. of 15 variables:
## $ ID : num 1 2 3 4 5 6 7 8 9 10 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ SEX : num 2 1 2 2 2 1 1 2 1 2 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ RACE : num 2 2 2 2 2 2 2 2 2 2 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ SES : num 1 1 1 2 2 2 1 1 2 1 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ SCTYP : num 1 1 1 1 1 1 1 1 1 1 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ HSP : num 3 2 2 3 3 2 1 1 1 1 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ LOCUS : num 0.29 -0.42 0.71 0.06 0.22 0.46 0..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CONCPT: num 0.88 0.03 0.03 0.03 -0.28 0.03 -..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ MOT : num 0.67 0.33 0.67 0 0 0 0.33 1 0.33..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CAR : num 10 2 9 15 1 11 10 9 9 11 ...
## ..- attr(*, "format.spss")= chr "F5.0"
## $ RDG : num 33.6 46.9 41.6 38.9 36.3 49.5 62..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ WRTG : num 43.7 35.9 59.3 41.1 48.9 46.3 64..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ MATH : num 40.2 41.9 41.9 32.7 39.5 46.2 48..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ SCI : num 39 36.3 44.4 41.7 41.7 41.7 63.4..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CIV : num 40.6 45.6 45.6 40.6 45.6 35.6 55..
## ..- attr(*, "format.spss")= chr "F5.2"
data$ID=as.character(data$ID)
data[,c(2,3,5,6,10)]=lapply(data[,c(2,3,5,6,10)],as.factor)
data$SES=as.ordered(data$SES)
Veo cómo quedó:
str(data,strict.width="cut",width=50)
## 'data.frame': 600 obs. of 15 variables:
## $ ID : chr "1" "2" "3" "4" ...
## $ SEX : Factor w/ 2 levels "1","2": 2 1 2 2 2..
## $ RACE : Factor w/ 4 levels "1","2","3","4": 2..
## $ SES : Ord.factor w/ 3 levels "1"<"2"<"3": 1..
## $ SCTYP : Factor w/ 2 levels "1","2": 1 1 1 1 1..
## $ HSP : Factor w/ 3 levels "1","2","3": 3 2 2..
## $ LOCUS : num 0.29 -0.42 0.71 0.06 0.22 0.46 0..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CONCPT: num 0.88 0.03 0.03 0.03 -0.28 0.03 -..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ MOT : num 0.67 0.33 0.67 0 0 0 0.33 1 0.33..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CAR : Factor w/ 17 levels "1","2","3","4",...
## $ RDG : num 33.6 46.9 41.6 38.9 36.3 49.5 62..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ WRTG : num 43.7 35.9 59.3 41.1 48.9 46.3 64..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ MATH : num 40.2 41.9 41.9 32.7 39.5 46.2 48..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ SCI : num 39 36.3 44.4 41.7 41.7 41.7 63.4..
## ..- attr(*, "format.spss")= chr "F5.2"
## $ CIV : num 40.6 45.6 45.6 40.6 45.6 35.6 55..
## ..- attr(*, "format.spss")= chr "F5.2"
1.1. RDG Y SEX Analizar reading en base al sexo
f1=formula(RDG ~ SEX)
aggregate(f1, data,mean)
library(knitr)
tablag= aggregate(f1, data,
FUN = function(x) {y <- shapiro.test(x); c(y$statistic, y$p.value)})
# para que se vea mejor:
library(knitr)
shapiroTest=as.data.frame(tablag[,2])
names(shapiroTest)=c("W","Prob")
kable(cbind(tablag[1],shapiroTest))
SEX | W | Prob |
---|---|---|
1 | 0.9784886 | 0.0003866 |
2 | 0.9824176 | 0.0004953 |
- Si e | l prob es me | nos que 0.05 no se distribuye normalmente. |
GRÁFICO
library(ggpubr)
## Loading required package: ggplot2
## Loading required package: magrittr
ggqqplot(data=data,x="RDG") + facet_grid(. ~ SEX)
- El gráfico ggqplot: si los puntos se alejan de la diagonal, no es normal. Decimos que la variable es significativa cuando la probabilidad es menor que 0.05.
Como no hay normalidad, vamos por camino NO parametrico:
wilcox.test(f1,data)
##
## Wilcoxon rank sum test with continuity correction
##
## data: RDG by SEX
## W = 46426, p-value = 0.3962
## alternative hypothesis: true location shift is not equal to 0
Decimos que la variable es significativa cuando la probabilidad (p-value) es menor que 0.05.
Como el p-value es 0.3962, la variable no es significativa. Entonces, en el gráfico me saldrá que la diferencia entre los bloques no es tanta o es casi nula.
Visualmente:
ggplot(data=data, aes(x=SEX, y=RDG)) + geom_boxplot(notch = T)
Concluyendo que NO hay diferencia de medias.
Si hubieramos necesitado una prub parametrica, debimos haber usaod la prueba T:
t.test(f1,data)
##
## Welch Two Sample t-test
##
## data: RDG by SEX
## t = 1.019, df = 572.67, p-value = 0.3087
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.784896 2.477264
## sample estimates:
## mean in group 1 mean in group 2
## 52.36300 51.51682
I.2 RDG y SES
f2=formula(RDG ~ SES)
aggregate(f2, data,mean)
Vemos que es politómica
library(knitr)
tablag=aggregate(f2, data,
FUN = function(x) {y <- shapiro.test(x); c(y$statistic, y$p.value)})
# para que se vea mejor:
shapiroTest=as.data.frame(tablag[,2])
names(shapiroTest)=c("W","Prob")
kable(cbind(tablag[1],shapiroTest))
SES | W | Prob |
---|---|---|
1 | 0.9533579 | 0.0001203 |
2 | 0.9841816 | 0.0022243 |
3 | 0.9814021 | 0.0282263 |
Gráfico:
library(ggpubr)
ggqqplot(data=data,x="RDG") + facet_grid(. ~ SES)
Ninguno se acepta como normal. Vamos por no parametrico: uso KRUSTAL
kruskal.test(f2,data)
##
## Kruskal-Wallis rank sum test
##
## data: RDG by SES
## Kruskal-Wallis chi-squared = 52.583, df = 2, p-value = 3.818e-12
COMO ES 3.818E-12 ES MUY SIGNIFICATIVO.
GRÁFICO:
ggplot(data=data, aes(x=SES, y=RDG)) + geom_boxplot(notch = T)
El valor medio que se alejaria seria el SES=1 de todos los demas.
Si se quiere una prureba parametrica, debemos utilizar la prueba F (anova de un factor):
ANOVA: Un análisis de varianza (ANOVA) prueba la hipótesis de que las medias de dos o más poblaciones son iguales. Los ANOVA evalúan la importancia de uno o más factores al comparar las medias de la variable de respuesta en los diferentes niveles de los factores.
summary(aov(f2, data))
## Df Sum Sq Mean Sq F value Pr(>F)
## SES 2 5329 2664.7 28.5 1.5e-12 ***
## Residuals 597 55811 93.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
I.1 SCI y SEX
f1=formula(SCI ~ SEX)
aggregate(f1, data,mean)
library(knitr)
tablag=aggregate(f1, data,
FUN = function(x) {y <- shapiro.test(x); c(y$statistic, y$p.value)})
# para que se vea mejor:
shapiroTest=as.data.frame(tablag[,2])
names(shapiroTest)=c("W","Prob")
kable(cbind(tablag[1],shapiroTest))
SEX | W | Prob |
---|---|---|
1 | 0.9787394 | 0.0004268 |
2 | 0.9798800 | 0.0001525 |
GRÁFICO:
library(ggpubr)
ggqqplot(data=data,x="SCI") + facet_grid(. ~ SEX)
Como no hay normalidad, vamos por camino NO parametrico:
wilcox.test(f1,data)
##
## Wilcoxon rank sum test with continuity correction
##
## data: SCI by SEX
## W = 51631, p-value = 0.0009173
## alternative hypothesis: true location shift is not equal to 0
GRÁFICO:
ggplot(data=data, aes(x=SEX, y=SCI)) + geom_boxplot(notch = T)
Concluyendo que SI hay diferencia de medias.
I.2 SCI y SES
f2=formula(SCI ~ SES)
aggregate(f2, data,mean)
library(knitr)
tablag=aggregate(f2, data,
FUN = function(x) {y <- shapiro.test(x); c(y$statistic, y$p.value)})
# para que se vea mejor:
shapiroTest=as.data.frame(tablag[,2])
names(shapiroTest)=c("W","Prob")
kable(cbind(tablag[1],shapiroTest))
SES | W | Prob |
---|---|---|
1 | 0.9773277 | 0.0205115 |
2 | 0.9833695 | 0.0015284 |
3 | 0.9574177 | 0.0000744 |
GRÁFICO:
library(ggpubr)
ggqqplot(data=data,x="SCI") + facet_grid(. ~ SES)
Ningun grupo es normal. Vamos por no parametrico:
Opcion No Paramétrica para politomica:
kruskal.test(f2,data)
##
## Kruskal-Wallis rank sum test
##
## data: SCI by SES
## Kruskal-Wallis chi-squared = 52.806, df = 2, p-value = 3.415e-12
Hay diferencias!
Visualmente:
ggplot(data=data, aes(x=SES, y=SCI)) + geom_boxplot(notch = T)
Los tres grupos se diferencian