U2A2

Angélica Payán Serna, Karen Gutiérrez Velásquez y Andrea Higuera Chávez

24/04/2021

U2A2: Análisis de correlación, significancia, normalidad y regresion lineal.

Tema: Educación en México

La educación siempre ha sido importante para el desarrollo, pero ha adquirido mayor relevancia en el mundo de hoy que vive profundas transformaciones, motivadas en parte por el vertiginoso avance de la ciencia y sus aplicaciones, así como por el no menos acelerado desarrollo de los medios y las tecnologías de la información. En México, más 4 millones de niños, niñas y adolescentes no asisten a la escuela1, mientras que 600 mil más están en riesgo de dejarla por diversos factores como la falta de recursos, la lejanía de las escuelas y la violencia. Además, los niños y niñas que sí van a la escuela tienen un aprovechamiento bajo de los contenidos impartidos en la educación básica obligatoria. En esta asignación analizaremos una hipótesis en donde se determinara en base a los datos otorgados un analisis de correlacion, significancia, normalidad y regresion lineal, determinaremos si la hipótesis realizada es correcta.

Acerca de este documento

Datos obtenidos de: https://inegi.org.mx/temas/educacion/

Descarga de este código

xfun::embed_file("U2A2.Rmd")

Download U2A2.Rmd

Importanción de datos

setwd("~/estadistica")
library(readxl)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.0.5     v dplyr   1.0.4
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(prettydoc)
library(readr)
library(DT)
library(pacman)
library(normtest) ###REALIZA 5 PRUEBAS DE NORMALIDAD###
library(nortest) ###REALIZA 10 PRUEBAS DE NORMALIDAD###
library(moments) ###REALIZA 1 PRUEBA DE NORMALIDAD###
p_load("base64enc","htmltools","mime","xfun","prettydoc","readr","knitr","DT","dplyr","ggplot2","plotly","gganimate","gifski","scales", "MASS", "class")
tasa <- read.csv("EducacionTasa.csv") 

Tabla de datos

datatable(tasa)

Hipótesis

Podemos decir que la tasa de educación aumenta año con año, ya que, cada vez hay más acceso a la educación. En base a un analisis de correlacion, significancia, normalidad y regresion lineal, determinaremos si la hipótesis es correcta o no.

Análisis de correlación

pairs(x = tasa, lower.panel = NULL)

cor(x = tasa, method = "pearson")
##              periodo preescolar  primaria secundaria
## periodo    1.0000000  0.9692545 0.4297579  0.9786243
## preescolar 0.9692545  1.0000000 0.3423277  0.9575203
## primaria   0.4297579  0.3423277 1.0000000  0.3965081
## secundaria 0.9786243  0.9575203 0.3965081  1.0000000

Como se puede observar, los datos tienen una correlación alta, a excepción de la primeria, que es la que más varía.

Diagrama de dispersión para preescolar

data("tasa")
## Warning in data("tasa"): data set 'tasa' not found
#Se emplea el log del precio porque mejora la linealidad
ggplot(data = tasa, aes(x = periodo, y = preescolar)) + 
  geom_point(colour = "red4") +
  ggtitle("Diagrama de dispersión") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

En este gráfico se observa que la tasa de preescolar, mayormente aumenta conforme aumenta el período.

Diagrama de dispersión para primaria

data("tasa")
## Warning in data("tasa"): data set 'tasa' not found
#Se emplea el log del precio porque mejora la linealidad
ggplot(data = tasa, aes(x = periodo, y = primaria)) + 
  geom_point(colour = "red4") +
  ggtitle("Diagrama de dispersión") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

En este caso, la tasa de educación en primaria, es muy cambiante conforme pasan los años, y los datos se encuentran más dispersos.

Diagrama de dispersión para secundaria

data("tasa")
## Warning in data("tasa"): data set 'tasa' not found
#Se emplea el log del precio porque mejora la linealidad
ggplot(data = tasa, aes(x = periodo, y = secundaria)) + 
  geom_point(colour = "red4") +
  ggtitle("Diagrama de dispersión") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

Hablando de secundaria, los datos están un poco más uniformes, y van aumentando conforme pasan los años.

Regresión lineal simple

  • Para preescolar
modelo_lineal <- lm(periodo ~ preescolar, tasa)
summary(modelo_lineal)
## 
## Call:
## lm(formula = periodo ~ preescolar, data = tasa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.6066 -0.8491 -0.1697  1.6563  3.3913 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1966.4766     1.8841 1043.75   <2e-16 ***
## preescolar     0.6408     0.0319   20.09   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.063 on 26 degrees of freedom
## Multiple R-squared:  0.9395, Adjusted R-squared:  0.9371 
## F-statistic: 403.4 on 1 and 26 DF,  p-value: < 2.2e-16
ggplot(data = tasa, mapping = aes(x = periodo, y = preescolar)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Periodo ~  Preescolar', x  =  'Periodo') +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula 'y ~ x'

  • Para primaria
modelo_lineal <- lm(periodo ~ primaria, tasa)
summary(modelo_lineal)
## 
## Call:
## lm(formula = periodo ~ primaria, data = tasa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.5512 -6.1197 -0.6804  6.5138 14.1202 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1622.952    156.811  10.350 1.03e-10 ***
## primaria       3.854      1.588   2.427   0.0225 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.569 on 26 degrees of freedom
## Multiple R-squared:  0.1847, Adjusted R-squared:  0.1533 
## F-statistic:  5.89 on 1 and 26 DF,  p-value: 0.02246
ggplot(data = tasa, mapping = aes(x = periodo, y = primaria)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Periodo ~  Primaria', x  =  'Periodo') +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula 'y ~ x'

  • Para secundaria
modelo_lineal <- lm(periodo ~ secundaria, tasa)
summary(modelo_lineal)
## 
## Call:
## lm(formula = periodo ~ secundaria, data = tasa)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -2.586 -1.415  0.039  1.036  4.669 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.958e+03  1.899e+00 1031.21   <2e-16 ***
## secundaria  6.422e-01  2.647e-02   24.26   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.724 on 26 degrees of freedom
## Multiple R-squared:  0.9577, Adjusted R-squared:  0.9561 
## F-statistic: 588.7 on 1 and 26 DF,  p-value: < 2.2e-16
ggplot(data = tasa, mapping = aes(x = periodo, y = secundaria)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'Periodo ~  Secundaria', x  =  'Periodo') +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula 'y ~ x'

Normalidad

par(mfrow = c(1, 2))
hist(tasa$preescolar, breaks = 10, main = "", xlab = "Preescolar", border = "darkred")
hist(tasa$primaria, breaks = 10, main = "", xlab = "Primaria",
     border = "blue")

qqnorm(tasa$preescolar, main = "Preescolar", col = "darkred")
qqline(tasa$preescolar)

qqnorm(tasa$primaria, main = "Primaria", col = "darkred")
qqline(tasa$primaria)

qqnorm(tasa$secundaria, main = "Secundaria", col = "darkred")
qqline(tasa$secundaria)

Comprobación de hipótesis

shapiro.test(tasa$preescolar)
## 
##  Shapiro-Wilk normality test
## 
## data:  tasa$preescolar
## W = 0.85964, p-value = 0.001472
shapiro.test(tasa$primaria)
## 
##  Shapiro-Wilk normality test
## 
## data:  tasa$primaria
## W = 0.9491, p-value = 0.1881
shapiro.test(tasa$secundaria)
## 
##  Shapiro-Wilk normality test
## 
## data:  tasa$secundaria
## W = 0.92022, p-value = 0.03513