Introducción

Este trabajo final lo estoy realizando con la base de datos del proyecto de investigación EdDit: Corporaciones tecnológicas, plataformas educativas digitales y garantía de los derechos de la infancia con enfoque de género https://esbrina.eu/es/portfolio/corporacions-tecnologiques-plataformes-educatives-digitals-i-garantia-dels-drets-de-la-infancia-amb-enfocament-de-genere-2/. El objetivo de este proyecto fue la exploración y análisis de las políticas, preocupaciones y prácticas de uso de estas plataformas digitales en las escuelas públicas que proveen enseñanzas obligatorias en Cataluña. Como parte de este proyecto se buscó indagar en al opinión sobre los familiares. En este proyecto participé muy activamente en el diseño, validación y aplicación del cuestionario utilizado para la recopilación de datos. De este proyecto ya se han publicado varios artículos. Entre ellos, he participado en:

Calderón-Garrido, D., Parcerisa, L., Rivera-Vargas, P., y Moreno-Gonzàlez, A. (2023). Opiniones de las familias sobre corporaciones tecnológicas, plataformas digitales educativas y derechos de la infancia: validación psicométrica de un instrumento. Revista Aloma. 41(1), 141-148. https://doi.org/10.51698/aloma.2023.41.1.141-148

Moreno-González, A., Caderón-Garrido, D., Parcerisa, Ll., Rivera-Vargas, P., y Jacovkis, J. (2023). Survey data on Families’ perceptions of ed-tech corporations, educational digital platforms and children’s rights. Data in brief, https://doi.org/10.1016/j.dib.2023.109017

Jacovkis, J., Rivera-Vargas, P., Parcerisa, L., y Calderón, D. (2022). Resistir, alinear o adherir. Los centros educativos y las familias ante las BigTech y sus plataformas educativas digitales. Edutec. Revista Electrónica de Tecnología Educativa, (82), 104-118. https://doi.org/10.21556/edutec.2022.82.2615 Este trabajo final me está sirviendo también para analizar los datos desde otra perspectiva y así poder publicar nuevos artículos.

Hipótesis de partida

Entre las preguntas de este cuestionario, había una sobre la confizana que tenían las famílias en la escuela. Así pues, nuestra hipótesis de partida será que la confizana en la escuela está mediada por las preocupación y opiniones que tienen las familias respecto a los datos que se generan por el uso de plataformas educativas. Por este motivo, crearemos un modelo de predicción de una regresión en la que la confianza en la escuela será la variable dependiente.

Preparación

En primer lugar cargamos todas las librerías que usaremos en este trabajo.

library(tidyverse)
library(gtsummary)
library(knitr)
library(pls)
library(leaps)
library(apaTables)
library (MASS)
library(readxl)
library(car)
library(glmnet)
library(caret)
library(rpart)
library(rpart.plot)

A continuación, cargamos la base de datos de un archivo excel externo.

EdDit <- read_excel("EdDit.xlsx")

Estudio de la base de datos

Estudiamos la base de datos.

names(EdDit)
##  [1] "Género Familia"                      "Edad Familia"                       
##  [3] "Nivel de estudios"                   "Género alumnado"                    
##  [5] "Edad alumando"                       "Etapa educativa"                    
##  [7] "Riesgo gestión pública educación"    "Colaboración necesaria"             
##  [9] "Clave derecho educación"             "Principios democráticos"            
## [11] "Mejora proceso de aprendizaje"       "Trabajo coperativo"                 
## [13] "Disfrutar uso"                       "Intuitivas acompañamiento"          
## [15] "Favorecen la comunicación"           "Reproducción roles género"          
## [17] "Utilización/comercialización"        "Pagar por su uso"                   
## [19] "Vulneración privacidad"              "Condicionar"                        
## [21] "Creación perfiles"                   "Fuente de distracción"              
## [23] "Reducción socialización"             "Uso suficientement supervisado"     
## [25] "Creación perfiles usos comerciales"  "Mejorar experiencia de los usuarios"
## [27] "Protección escuela"
str(EdDit)
## tibble [1,639 × 27] (S3: tbl_df/tbl/data.frame)
##  $ Género Familia                     : chr [1:1639] "Femenino" "Femenino" "Femenino" "Femenino" ...
##  $ Edad Familia                       : num [1:1639] 46 43 47 46 43 46 45 44 45 50 ...
##  $ Nivel de estudios                  : chr [1:1639] "Postuniversitarios" "Postuniversitarios" "Preuniversitarios" "Universitarios" ...
##  $ Género alumnado                    : chr [1:1639] "Femenino" "Femenino" "Femenino" "Masculino" ...
##  $ Edad alumando                      : num [1:1639] 13 13 9 13 10 15 14 13 9 14 ...
##  $ Etapa educativa                    : chr [1:1639] "Secundaria" "Secundaria" "Primaria" "Secundaria" ...
##  $ Riesgo gestión pública educación   : num [1:1639] 6 4 3 2 1 6 5 2 3 5 ...
##  $ Colaboración necesaria             : num [1:1639] 1 4 5 5 1 5 6 5 4 4 ...
##  $ Clave derecho educación            : num [1:1639] 4 1 2 4 1 5 5 5 4 5 ...
##  $ Principios democráticos            : num [1:1639] 6 3 2 3 1 3 3 2 3 4 ...
##  $ Mejora proceso de aprendizaje      : num [1:1639] 3 2 2 4 1 5 4 2 3 6 ...
##  $ Trabajo coperativo                 : num [1:1639] 6 1 4 4 1 5 5 4 2 6 ...
##  $ Disfrutar uso                      : num [1:1639] 3 1 4 4 1 5 4 3 4 6 ...
##  $ Intuitivas acompañamiento          : num [1:1639] 6 1 3 4 1 4 5 1 3 6 ...
##  $ Favorecen la comunicación          : num [1:1639] 5 1 5 4 1 5 6 2 2 6 ...
##  $ Reproducción roles género          : num [1:1639] 2 2 2 3 1 2 4 1 3 2 ...
##  $ Utilización/comercialización       : num [1:1639] 6 6 6 6 6 6 1 6 6 6 ...
##  $ Pagar por su uso                   : num [1:1639] 6 6 6 3 6 6 1 4 5 4 ...
##  $ Vulneración privacidad             : num [1:1639] 6 6 6 5 6 6 1 6 6 6 ...
##  $ Condicionar                        : num [1:1639] 6 6 4 6 6 5 2 1 6 5 ...
##  $ Creación perfiles                  : num [1:1639] 6 6 6 6 6 6 3 4 6 5 ...
##  $ Fuente de distracción              : num [1:1639] 4 6 4 3 6 3 1 6 6 2 ...
##  $ Reducción socialización            : num [1:1639] 4 6 2 4 6 4 1 6 6 4 ...
##  $ Uso suficientement supervisado     : num [1:1639] 4 6 5 5 6 4 1 6 6 3 ...
##  $ Creación perfiles usos comerciales : num [1:1639] 1 1 1 1 1 1 2 6 6 2 ...
##  $ Mejorar experiencia de los usuarios: num [1:1639] 6 4 3 4 6 3 5 3 3 2 ...
##  $ Protección escuela                 : num [1:1639] 1 1 4 4 1 5 4 4 3 4 ...
DT::datatable(head(EdDit))

Para poder trabajar más fácilmente, usamos la función attach()

attach(EdDit)

Realizamos un estudio de las variables sociodemográficas.

tbl_summary(EdDit[1:6])
Characteristic N = 1,6391
Género Familia
    Femenino 1,339 (82%)
    Masculino 288 (18%)
    No binario 12 (0.7%)
Edad Familia 44.0 (41.0, 48.0)
Nivel de estudios
    Postuniversitarios 300 (18%)
    Preuniversitarios 568 (35%)
    Universitarios 771 (47%)
Género alumnado
    Femenino 784 (48%)
    Masculino 847 (52%)
    No binario 8 (0.5%)
Edad alumando 11.00 (8.00, 13.00)
Etapa educativa
    Primaria 1,053 (64%)
    Secundaria 586 (36%)
1 n (%); Median (IQR)
ggplot(data = EdDit, aes(x =`Género Familia`, fill = as.factor(`Género Familia`))) + 
  geom_bar() + 
  xlab("Género de los familiares") + 
  ylab("Muestra") + labs(fill = "Género") +  theme_minimal()

kable(table(`Género Familia`, `Género alumnado`))
Femenino Masculino No binario
Femenino 641 692 6
Masculino 139 149 0
No binario 4 6 2
ggplot(data = EdDit, aes(x = `Género Familia`, fill = `Género alumnado`)) + 
  geom_bar() + 
  xlab("Género de la familia") + 
  ylab("Muestra") +  theme_minimal()

kable(table(`Género Familia`, `Etapa educativa`))
Primaria Secundaria
Femenino 871 468
Masculino 172 116
No binario 10 2
kable(table(`Género Familia`, `Nivel de estudios`))
Postuniversitarios Preuniversitarios Universitarios
Femenino 242 472 625
Masculino 56 92 140
No binario 2 4 6
kable(table(`Género alumnado`, `Etapa educativa`))
Primaria Secundaria
Femenino 516 268
Masculino 532 315
No binario 5 3
 ggplot(data = EdDit, aes(x = `Género alumnado`, fill = `Etapa educativa`)) + 
  geom_bar() + 
  xlab("Género del alumnado") + 
  ylab("Muestra") +  theme_minimal()

ggplot(EdDit) + 
  geom_histogram(binwidth = 1, aes(x = `Edad Familia`, fill = `Nivel de estudios`)) + 
  xlab("Edad de la familia") + 
  ylab("Frecuencia")  +
  theme_minimal()

Finalmente, y ya que será nuestra variable dependiente, incluimos algún gráfico relacionado con con la protección por parte de la escuela.

ggplot(data = EdDit, aes(x =`Etapa educativa`, y = `Protección escuela`)) + 
  geom_jitter(aes(color = `Etapa educativa`), size = 1, alpha = 0.8) +
  geom_boxplot(aes(color = `Etapa educativa`), alpha = 0.5) +
  ylab('Protección por parte de la escuela') +
  theme_minimal()

ggplot(data = EdDit, aes(x = `Género Familia`, y = `Protección escuela`)) + 
  geom_jitter(aes(color = `Género Familia`), size = 1, alpha = 0.8) +
  geom_boxplot(aes(color = `Género Familia`), alpha = 0.5) +
  ylab('Protección por parte de la escuela') +
  theme_minimal()

ggplot(data = EdDit, aes(x = `Género alumnado`, y = `Protección escuela`)) + 
  geom_jitter(aes(color = `Género alumnado`), size = 1, alpha = 0.8) +
  geom_boxplot(aes(color = `Género alumnado`), alpha = 0.5) +
  ylab('Protección por parte de la escuela') +  coord_flip() +
  theme_minimal()

 ggplot(data = EdDit, aes(x = `Nivel de estudios`, y = `Protección escuela`)) + 
    geom_jitter(size = 1, , color = "gray", alpha = 0.5) +
    geom_violin(aes(fill = `Nivel de estudios`),color = 'black', alpha = 0.8) + 
    geom_boxplot (color = 'black', alpha = 0.7) + 
    xlab("Nivel de estudios de la familia") + 
    ylab('Protección por parte de la escuela') +
    theme_minimal()

Regresión Lineal con todas las variables

Realizamos una regresión lineal con todos las variables.

lm.fit <- lm(`Protección escuela`~ . , data = EdDit)
summary(lm.fit)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9283 -0.7035  0.0338  0.7189  3.9815 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.227772   0.336136   9.603  < 2e-16 ***
## `Género Familia`Masculino             -0.147893   0.073556  -2.011 0.044534 *  
## `Género Familia`No binario            -0.272660   0.326702  -0.835 0.404077    
## `Edad Familia`                         0.004001   0.005878   0.681 0.496225    
## `Nivel de estudios`Preuniversitarios   0.315794   0.080305   3.932 8.77e-05 ***
## `Nivel de estudios`Universitarios      0.115624   0.075134   1.539 0.124027    
## `Género alumnado`Masculino            -0.057201   0.054833  -1.043 0.297026    
## `Género alumnado`No binario            0.277765   0.398923   0.696 0.486349    
## `Edad alumando`                        0.020396   0.017019   1.198 0.230932    
## `Etapa educativa`Secundaria           -0.374420   0.093410  -4.008 6.39e-05 ***
## `Riesgo gestión pública educación`    -0.077321   0.019859  -3.894 0.000103 ***
## `Colaboración necesaria`               0.162903   0.022511   7.237 7.09e-13 ***
## `Clave derecho educación`             -0.030993   0.024902  -1.245 0.213469    
## `Principios democráticos`             -0.021951   0.019990  -1.098 0.272319    
## `Mejora proceso de aprendizaje`        0.067997   0.031427   2.164 0.030639 *  
## `Trabajo coperativo`                   0.035347   0.027469   1.287 0.198347    
## `Disfrutar uso`                        0.110050   0.027971   3.934 8.69e-05 ***
## `Intuitivas acompañamiento`            0.086236   0.026255   3.285 0.001043 ** 
## `Favorecen la comunicación`            0.070608   0.022152   3.187 0.001463 ** 
## `Reproducción roles género`           -0.023023   0.020998  -1.096 0.273047    
## `Utilización/comercialización`        -0.044381   0.029304  -1.515 0.130092    
## `Pagar por su uso`                     0.045959   0.019463   2.361 0.018324 *  
## `Vulneración privacidad`               0.005926   0.028507   0.208 0.835363    
## Condicionar                           -0.060870   0.027309  -2.229 0.025956 *  
## `Creación perfiles`                   -0.021574   0.023474  -0.919 0.358211    
## `Fuente de distracción`               -0.007902   0.023987  -0.329 0.741891    
## `Reducción socialización`              0.058575   0.024809   2.361 0.018342 *  
## `Uso suficientement supervisado`      -0.132005   0.026323  -5.015 5.89e-07 ***
## `Creación perfiles usos comerciales`  -0.001264   0.013988  -0.090 0.928021    
## `Mejorar experiencia de los usuarios` -0.113262   0.019653  -5.763 9.88e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.092 on 1609 degrees of freedom
## Multiple R-squared:  0.4144, Adjusted R-squared:  0.4039 
## F-statistic: 39.27 on 29 and 1609 DF,  p-value: < 2.2e-16

Como podemos obervar, hay muchas variables que tienen un p valor alto y que, por tanto, no influyen en el modelo

Método Backward selection

Así pues iremos eliminando una a una las variables empezando por las que tienen un p valor más alto (método Backward selection) y creando nueva data frame y volviendo a hacer la regresión lineal. Usamos la técnica de Backaward selection para concretar las variables que intervienen en la regresión.

EdDit.lm2 <- EdDit [ , - 25]
lm.fit2 <- lm(`Protección escuela`~ . , data = EdDit.lm2)
summary(lm.fit2)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9262 -0.7020  0.0347  0.7188  3.9836 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.224444   0.334009   9.654  < 2e-16 ***
## `Género Familia`Masculino             -0.148044   0.073515  -2.014  0.04420 *  
## `Género Familia`No binario            -0.272416   0.326590  -0.834  0.40434    
## `Edad Familia`                         0.004001   0.005876   0.681  0.49603    
## `Nivel de estudios`Preuniversitarios   0.315485   0.080207   3.933 8.73e-05 ***
## `Nivel de estudios`Universitarios      0.115503   0.075099   1.538  0.12424    
## `Género alumnado`Masculino            -0.057119   0.054809  -1.042  0.29750    
## `Género alumnado`No binario            0.278189   0.398772   0.698  0.48552    
## `Edad alumando`                        0.020390   0.017014   1.198  0.23093    
## `Etapa educativa`Secundaria           -0.374518   0.093375  -4.011 6.33e-05 ***
## `Riesgo gestión pública educación`    -0.077399   0.019834  -3.902 9.92e-05 ***
## `Colaboración necesaria`               0.162924   0.022503   7.240 6.91e-13 ***
## `Clave derecho educación`             -0.031095   0.024869  -1.250  0.21135    
## `Principios democráticos`             -0.021974   0.019982  -1.100  0.27162    
## `Mejora proceso de aprendizaje`        0.068040   0.031414   2.166  0.03046 *  
## `Trabajo coperativo`                   0.035378   0.027458   1.288  0.19778    
## `Disfrutar uso`                        0.110017   0.027960   3.935 8.68e-05 ***
## `Intuitivas acompañamiento`            0.086276   0.026243   3.288  0.00103 ** 
## `Favorecen la comunicación`            0.070694   0.022125   3.195  0.00142 ** 
## `Reproducción roles género`           -0.023043   0.020990  -1.098  0.27247    
## `Utilización/comercialización`        -0.044453   0.029284  -1.518  0.12921    
## `Pagar por su uso`                     0.045979   0.019455   2.363  0.01823 *  
## `Vulneración privacidad`               0.005889   0.028496   0.207  0.83630    
## Condicionar                           -0.060777   0.027281  -2.228  0.02603 *  
## `Creación perfiles`                   -0.021583   0.023467  -0.920  0.35786    
## `Fuente de distracción`               -0.007957   0.023972  -0.332  0.73998    
## `Reducción socialización`              0.058578   0.024801   2.362  0.01830 *  
## `Uso suficientement supervisado`      -0.132044   0.026311  -5.019 5.78e-07 ***
## `Mejorar experiencia de los usuarios` -0.113074   0.019537  -5.788 8.56e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.092 on 1610 degrees of freedom
## Multiple R-squared:  0.4144, Adjusted R-squared:  0.4042 
## F-statistic: 40.69 on 28 and 1610 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm3 <- EdDit.lm2[ , -19]
lm.fit3<- lm(`Protección escuela`~ . , data = EdDit.lm3)
summary(lm.fit3)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9322 -0.7010  0.0347  0.7195  3.9828 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.227091   0.333664   9.672  < 2e-16 ***
## `Género Familia`Masculino             -0.148280   0.073484  -2.018  0.04377 *  
## `Género Familia`No binario            -0.272482   0.326493  -0.835  0.40408    
## `Edad Familia`                         0.003998   0.005875   0.681  0.49623    
## `Nivel de estudios`Preuniversitarios   0.316374   0.080068   3.951 8.11e-05 ***
## `Nivel de estudios`Universitarios      0.115926   0.075049   1.545  0.12262    
## `Género alumnado`Masculino            -0.057063   0.054792  -1.041  0.29783    
## `Género alumnado`No binario            0.277515   0.398641   0.696  0.48643    
## `Edad alumando`                        0.020465   0.017005   1.203  0.22896    
## `Etapa educativa`Secundaria           -0.374895   0.093329  -4.017 6.17e-05 ***
## `Riesgo gestión pública educación`    -0.077288   0.019821  -3.899  0.00010 ***
## `Colaboración necesaria`               0.162783   0.022486   7.239 6.95e-13 ***
## `Clave derecho educación`             -0.031002   0.024857  -1.247  0.21251    
## `Principios democráticos`             -0.022083   0.019969  -1.106  0.26896    
## `Mejora proceso de aprendizaje`        0.067885   0.031396   2.162  0.03075 *  
## `Trabajo coperativo`                   0.035411   0.027450   1.290  0.19723    
## `Disfrutar uso`                        0.109829   0.027937   3.931 8.81e-05 ***
## `Intuitivas acompañamiento`            0.086362   0.026232   3.292  0.00102 ** 
## `Favorecen la comunicación`            0.070740   0.022118   3.198  0.00141 ** 
## `Reproducción roles género`           -0.023204   0.020970  -1.107  0.26865    
## `Utilización/comercialización`        -0.041898   0.026537  -1.579  0.11457    
## `Pagar por su uso`                     0.046184   0.019424   2.378  0.01754 *  
## Condicionar                           -0.059389   0.026434  -2.247  0.02479 *  
## `Creación perfiles`                   -0.021035   0.023310  -0.902  0.36698    
## `Fuente de distracción`               -0.008166   0.023944  -0.341  0.73312    
## `Reducción socialización`              0.058943   0.024731   2.383  0.01727 *  
## `Uso suficientement supervisado`      -0.131351   0.026089  -5.035 5.32e-07 ***
## `Mejorar experiencia de los usuarios` -0.113027   0.019530  -5.787 8.57e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1611 degrees of freedom
## Multiple R-squared:  0.4144, Adjusted R-squared:  0.4046 
## F-statistic: 42.22 on 27 and 1611 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm4 <- EdDit.lm3 [ , - 21]
lm.fit4<- lm(`Protección escuela`~ . , data = EdDit.lm4)
summary(lm.fit4)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm4)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9166 -0.7011  0.0322  0.7211  3.9817 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.221677   0.333195   9.669  < 2e-16 ***
## `Género Familia`Masculino             -0.147323   0.073410  -2.007  0.04493 *  
## `Género Familia`No binario            -0.266417   0.325919  -0.817  0.41380    
## `Edad Familia`                         0.003990   0.005873   0.679  0.49697    
## `Nivel de estudios`Preuniversitarios   0.316017   0.080039   3.948 8.21e-05 ***
## `Nivel de estudios`Universitarios      0.115862   0.075028   1.544  0.12273    
## `Género alumnado`Masculino            -0.056391   0.054742  -1.030  0.30310    
## `Género alumnado`No binario            0.277328   0.398531   0.696  0.48661    
## `Edad alumando`                        0.020417   0.017000   1.201  0.22992    
## `Etapa educativa`Secundaria           -0.375002   0.093303  -4.019 6.11e-05 ***
## `Riesgo gestión pública educación`    -0.077498   0.019806  -3.913 9.50e-05 ***
## `Colaboración necesaria`               0.162775   0.022479   7.241 6.87e-13 ***
## `Clave derecho educación`             -0.030804   0.024844  -1.240  0.21519    
## `Principios democráticos`             -0.022249   0.019958  -1.115  0.26509    
## `Mejora proceso de aprendizaje`        0.069028   0.031208   2.212  0.02711 *  
## `Trabajo coperativo`                   0.035752   0.027424   1.304  0.19254    
## `Disfrutar uso`                        0.109691   0.027926   3.928 8.93e-05 ***
## `Intuitivas acompañamiento`            0.086396   0.026224   3.294  0.00101 ** 
## `Favorecen la comunicación`            0.070582   0.022107   3.193  0.00144 ** 
## `Reproducción roles género`           -0.023407   0.020955  -1.117  0.26418    
## `Utilización/comercialización`        -0.041245   0.026461  -1.559  0.11926    
## `Pagar por su uso`                     0.045768   0.019381   2.361  0.01832 *  
## Condicionar                           -0.059950   0.026375  -2.273  0.02316 *  
## `Creación perfiles`                   -0.021370   0.023283  -0.918  0.35885    
## `Reducción socialización`              0.056126   0.023305   2.408  0.01614 *  
## `Uso suficientement supervisado`      -0.134405   0.024498  -5.486 4.76e-08 ***
## `Mejorar experiencia de los usuarios` -0.113032   0.019524  -5.789 8.48e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1612 degrees of freedom
## Multiple R-squared:  0.4144, Adjusted R-squared:  0.4049 
## F-statistic: 43.87 on 26 and 1612 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm5 <- EdDit.lm4[ , -2]
lm.fit5<- lm(`Protección escuela`~ . , data = EdDit.lm5)
summary(lm.fit5)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm5)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9218 -0.7079  0.0320  0.7159  3.9842 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.35997    0.26376  12.739  < 2e-16 ***
## `Género Familia`Masculino             -0.13912    0.07240  -1.922  0.05484 .  
## `Género Familia`No binario            -0.26822    0.32585  -0.823  0.41055    
## `Nivel de estudios`Preuniversitarios   0.31273    0.07988   3.915 9.42e-05 ***
## `Nivel de estudios`Universitarios      0.11583    0.07502   1.544  0.12276    
## `Género alumnado`Masculino            -0.05508    0.05470  -1.007  0.31410    
## `Género alumnado`No binario            0.27048    0.39834   0.679  0.49722    
## `Edad alumando`                        0.02336    0.01644   1.421  0.15551    
## `Etapa educativa`Secundaria           -0.37488    0.09329  -4.019 6.12e-05 ***
## `Riesgo gestión pública educación`    -0.07768    0.01980  -3.923 9.11e-05 ***
## `Colaboración necesaria`               0.16273    0.02248   7.240 6.90e-13 ***
## `Clave derecho educación`             -0.03036    0.02483  -1.223  0.22168    
## `Principios democráticos`             -0.02189    0.01995  -1.097  0.27263    
## `Mejora proceso de aprendizaje`        0.07021    0.03115   2.254  0.02435 *  
## `Trabajo coperativo`                   0.03654    0.02739   1.334  0.18245    
## `Disfrutar uso`                        0.10950    0.02792   3.922 9.15e-05 ***
## `Intuitivas acompañamiento`            0.08530    0.02617   3.260  0.00114 ** 
## `Favorecen la comunicación`            0.06945    0.02204   3.151  0.00166 ** 
## `Reproducción roles género`           -0.02316    0.02095  -1.106  0.26901    
## `Utilización/comercialización`        -0.04100    0.02645  -1.550  0.12141    
## `Pagar por su uso`                     0.04567    0.01938   2.357  0.01854 *  
## Condicionar                           -0.05978    0.02637  -2.267  0.02352 *  
## `Creación perfiles`                   -0.02064    0.02325  -0.888  0.37494    
## `Reducción socialización`              0.05559    0.02329   2.387  0.01710 *  
## `Uso suficientement supervisado`      -0.13400    0.02449  -5.472 5.14e-08 ***
## `Mejorar experiencia de los usuarios` -0.11242    0.01950  -5.765 9.77e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1613 degrees of freedom
## Multiple R-squared:  0.4142, Adjusted R-squared:  0.4051 
## F-statistic: 45.62 on 25 and 1613 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm6 <- EdDit.lm5[ , -3]
lm.fit6<- lm(`Protección escuela`~ . , data = EdDit.lm6)
summary(lm.fit6)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm6)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9394 -0.7200  0.0400  0.7217  4.0050 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.32550    0.26145  12.719  < 2e-16 ***
## `Género Familia`Masculino             -0.13995    0.07237  -1.934 0.053317 .  
## `Género Familia`No binario            -0.22180    0.31921  -0.695 0.487249    
## `Nivel de estudios`Preuniversitarios   0.31170    0.07986   3.903 9.88e-05 ***
## `Nivel de estudios`Universitarios      0.11679    0.07499   1.557 0.119584    
## `Edad alumando`                        0.02284    0.01643   1.390 0.164575    
## `Etapa educativa`Secundaria           -0.37351    0.09324  -4.006 6.46e-05 ***
## `Riesgo gestión pública educación`    -0.07861    0.01975  -3.979 7.22e-05 ***
## `Colaboración necesaria`               0.16266    0.02247   7.240 6.92e-13 ***
## `Clave derecho educación`             -0.02941    0.02482  -1.185 0.236152    
## `Principios democráticos`             -0.02043    0.01991  -1.026 0.304890    
## `Mejora proceso de aprendizaje`        0.07191    0.03109   2.313 0.020840 *  
## `Trabajo coperativo`                   0.03476    0.02735   1.271 0.204004    
## `Disfrutar uso`                        0.10820    0.02788   3.882 0.000108 ***
## `Intuitivas acompañamiento`            0.08635    0.02614   3.303 0.000977 ***
## `Favorecen la comunicación`            0.07022    0.02203   3.188 0.001462 ** 
## `Reproducción roles género`           -0.02216    0.02093  -1.059 0.289798    
## `Utilización/comercialización`        -0.04020    0.02644  -1.521 0.128578    
## `Pagar por su uso`                     0.04519    0.01936   2.334 0.019737 *  
## Condicionar                           -0.05974    0.02636  -2.266 0.023565 *  
## `Creación perfiles`                   -0.02034    0.02324  -0.875 0.381581    
## `Reducción socialización`              0.05692    0.02326   2.447 0.014497 *  
## `Uso suficientement supervisado`      -0.13588    0.02444  -5.560 3.15e-08 ***
## `Mejorar experiencia de los usuarios` -0.11155    0.01948  -5.725 1.23e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1615 degrees of freedom
## Multiple R-squared:  0.4136, Adjusted R-squared:  0.4053 
## F-statistic: 49.53 on 23 and 1615 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm7<- EdDit.lm6[ , -1]
lm.fit7<- lm(`Protección escuela`~ . , data = EdDit.lm7)
summary(lm.fit7)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm7)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9153 -0.7147  0.0392  0.7287  4.0341 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.29408    0.26088  12.627  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31118    0.07990   3.894 0.000102 ***
## `Nivel de estudios`Universitarios      0.11554    0.07504   1.540 0.123832    
## `Edad alumando`                        0.02220    0.01643   1.351 0.176804    
## `Etapa educativa`Secundaria           -0.37351    0.09319  -4.008 6.40e-05 ***
## `Riesgo gestión pública educación`    -0.08177    0.01970  -4.150 3.50e-05 ***
## `Colaboración necesaria`               0.16559    0.02243   7.382 2.49e-13 ***
## `Clave derecho educación`             -0.02878    0.02483  -1.159 0.246507    
## `Principios democráticos`             -0.02007    0.01992  -1.008 0.313705    
## `Mejora proceso de aprendizaje`        0.07280    0.03110   2.341 0.019362 *  
## `Trabajo coperativo`                   0.03011    0.02727   1.104 0.269809    
## `Disfrutar uso`                        0.10998    0.02787   3.947 8.27e-05 ***
## `Intuitivas acompañamiento`            0.08502    0.02610   3.258 0.001145 ** 
## `Favorecen la comunicación`            0.07288    0.02200   3.312 0.000946 ***
## `Reproducción roles género`           -0.02080    0.02092  -0.994 0.320292    
## `Utilización/comercialización`        -0.04246    0.02643  -1.606 0.108388    
## `Pagar por su uso`                     0.04729    0.01934   2.445 0.014592 *  
## Condicionar                           -0.06032    0.02638  -2.287 0.022341 *  
## `Creación perfiles`                   -0.02037    0.02326  -0.876 0.381177    
## `Reducción socialización`              0.05897    0.02324   2.537 0.011268 *  
## `Uso suficientement supervisado`      -0.13496    0.02444  -5.523 3.88e-08 ***
## `Mejorar experiencia de los usuarios` -0.11202    0.01949  -5.746 1.09e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1617 degrees of freedom
## Multiple R-squared:  0.4121, Adjusted R-squared:  0.4045 
## F-statistic: 53.98 on 21 and 1617 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm8<- EdDit.lm7[ , -17]
lm.fit8<- lm(`Protección escuela`~ . , data = EdDit.lm8)
summary(lm.fit8)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm8)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9132 -0.7208  0.0438  0.7228  4.0412 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.29379    0.26086  12.627  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31230    0.07989   3.909 9.64e-05 ***
## `Nivel de estudios`Universitarios      0.11514    0.07503   1.534 0.125114    
## `Edad alumando`                        0.02220    0.01643   1.351 0.176742    
## `Etapa educativa`Secundaria           -0.36967    0.09308  -3.972 7.45e-05 ***
## `Riesgo gestión pública educación`    -0.08180    0.01970  -4.152 3.47e-05 ***
## `Colaboración necesaria`               0.16628    0.02242   7.418 1.92e-13 ***
## `Clave derecho educación`             -0.02966    0.02481  -1.196 0.231921    
## `Principios democráticos`             -0.02010    0.01992  -1.009 0.313034    
## `Mejora proceso de aprendizaje`        0.07290    0.03110   2.344 0.019194 *  
## `Trabajo coperativo`                   0.03012    0.02727   1.104 0.269634    
## `Disfrutar uso`                        0.11117    0.02783   3.994 6.79e-05 ***
## `Intuitivas acompañamiento`            0.08469    0.02609   3.246 0.001195 ** 
## `Favorecen la comunicación`            0.07319    0.02200   3.327 0.000898 ***
## `Reproducción roles género`           -0.02408    0.02058  -1.170 0.242296    
## `Utilización/comercialización`        -0.04895    0.02537  -1.929 0.053890 .  
## `Pagar por su uso`                     0.04390    0.01895   2.317 0.020651 *  
## Condicionar                           -0.06780    0.02495  -2.717 0.006656 ** 
## `Reducción socialización`              0.05883    0.02324   2.532 0.011449 *  
## `Uso suficientement supervisado`      -0.13611    0.02440  -5.578 2.84e-08 ***
## `Mejorar experiencia de los usuarios` -0.11176    0.01949  -5.734 1.17e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1618 degrees of freedom
## Multiple R-squared:  0.4119, Adjusted R-squared:  0.4046 
## F-statistic: 56.65 on 20 and 1618 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm9<- EdDit.lm8[ , -7]
lm.fit9<- lm(`Protección escuela`~ . , data = EdDit.lm9)
summary(lm.fit9)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm9)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9022 -0.7284  0.0437  0.7306  4.0177 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.26860    0.25966  12.588  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31153    0.07989   3.900 0.000100 ***
## `Nivel de estudios`Universitarios      0.11646    0.07502   1.552 0.120775    
## `Edad alumando`                        0.02201    0.01643   1.340 0.180466    
## `Etapa educativa`Secundaria           -0.37049    0.09308  -3.981 7.18e-05 ***
## `Riesgo gestión pública educación`    -0.08753    0.01887  -4.640 3.77e-06 ***
## `Colaboración necesaria`               0.16827    0.02233   7.535 8.07e-14 ***
## `Clave derecho educación`             -0.03119    0.02476  -1.260 0.207980    
## `Mejora proceso de aprendizaje`        0.07437    0.03107   2.394 0.016779 *  
## `Trabajo coperativo`                   0.03063    0.02727   1.123 0.261538    
## `Disfrutar uso`                        0.11007    0.02781   3.958 7.90e-05 ***
## `Intuitivas acompañamiento`            0.08364    0.02607   3.208 0.001361 ** 
## `Favorecen la comunicación`            0.07310    0.02200   3.323 0.000911 ***
## `Reproducción roles género`           -0.02830    0.02015  -1.404 0.160506    
## `Utilización/comercialización`        -0.05049    0.02533  -1.994 0.046346 *  
## `Pagar por su uso`                     0.04363    0.01895   2.303 0.021413 *  
## Condicionar                           -0.06780    0.02495  -2.717 0.006655 ** 
## `Reducción socialización`              0.05803    0.02323   2.498 0.012577 *  
## `Uso suficientement supervisado`      -0.13550    0.02439  -5.555 3.24e-08 ***
## `Mejorar experiencia de los usuarios` -0.11170    0.01949  -5.731 1.19e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1619 degrees of freedom
## Multiple R-squared:  0.4115, Adjusted R-squared:  0.4046 
## F-statistic: 59.58 on 19 and 1619 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm10<- EdDit.lm9[ , -8]
lm.fit10<- lm(`Protección escuela`~ . , data = EdDit.lm10)
summary(lm.fit10)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm10)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8391 -0.7227  0.0428  0.7339  4.0013 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.27131    0.25967  12.598  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31396    0.07986   3.931 8.81e-05 ***
## `Nivel de estudios`Universitarios      0.11609    0.07503   1.547 0.121986    
## `Edad alumando`                        0.02367    0.01636   1.447 0.148170    
## `Etapa educativa`Secundaria           -0.36751    0.09305  -3.950 8.16e-05 ***
## `Riesgo gestión pública educación`    -0.08678    0.01886  -4.602 4.50e-06 ***
## `Colaboración necesaria`               0.17001    0.02228   7.631 3.94e-14 ***
## `Clave derecho educación`             -0.02696    0.02447  -1.102 0.270781    
## `Mejora proceso de aprendizaje`        0.08203    0.03031   2.706 0.006877 ** 
## `Disfrutar uso`                        0.11534    0.02742   4.207 2.73e-05 ***
## `Intuitivas acompañamiento`            0.08724    0.02587   3.372 0.000765 ***
## `Favorecen la comunicación`            0.07766    0.02162   3.592 0.000338 ***
## `Reproducción roles género`           -0.02789    0.02015  -1.384 0.166504    
## `Utilización/comercialización`        -0.05007    0.02532  -1.977 0.048191 *  
## `Pagar por su uso`                     0.04420    0.01894   2.334 0.019742 *  
## Condicionar                           -0.06822    0.02495  -2.734 0.006328 ** 
## `Reducción socialización`              0.05598    0.02316   2.417 0.015745 *  
## `Uso suficientement supervisado`      -0.13552    0.02439  -5.556 3.23e-08 ***
## `Mejorar experiencia de los usuarios` -0.11270    0.01947  -5.788 8.52e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1620 degrees of freedom
## Multiple R-squared:  0.411,  Adjusted R-squared:  0.4045 
## F-statistic: 62.81 on 18 and 1620 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm11<- EdDit.lm10[ , -6]
lm.fit11<- lm(`Protección escuela`~ . , data = EdDit.lm11)
summary(lm.fit11)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm11)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9111 -0.7352  0.0420  0.7514  4.0021 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.27815    0.25962  12.627  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31510    0.07986   3.946 8.30e-05 ***
## `Nivel de estudios`Universitarios      0.12132    0.07488   1.620 0.105392    
## `Edad alumando`                        0.02255    0.01633   1.381 0.167551    
## `Etapa educativa`Secundaria           -0.36671    0.09305  -3.941 8.46e-05 ***
## `Riesgo gestión pública educación`    -0.08754    0.01884  -4.646 3.66e-06 ***
## `Colaboración necesaria`               0.16494    0.02180   7.566 6.39e-14 ***
## `Mejora proceso de aprendizaje`        0.07297    0.02918   2.501 0.012485 *  
## `Disfrutar uso`                        0.11188    0.02724   4.108 4.19e-05 ***
## `Intuitivas acompañamiento`            0.08379    0.02569   3.262 0.001129 ** 
## `Favorecen la comunicación`            0.07511    0.02150   3.494 0.000489 ***
## `Reproducción roles género`           -0.03019    0.02005  -1.506 0.132264    
## `Utilización/comercialización`        -0.04887    0.02530  -1.931 0.053609 .  
## `Pagar por su uso`                     0.04429    0.01894   2.338 0.019499 *  
## Condicionar                           -0.06815    0.02495  -2.731 0.006386 ** 
## `Reducción socialización`              0.05740    0.02312   2.483 0.013140 *  
## `Uso suficientement supervisado`      -0.13604    0.02439  -5.577 2.86e-08 ***
## `Mejorar experiencia de los usuarios` -0.11191    0.01946  -5.751 1.06e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.091 on 1621 degrees of freedom
## Multiple R-squared:  0.4106, Adjusted R-squared:  0.4044 
## F-statistic: 66.42 on 17 and 1621 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm12<- EdDit.lm11[ , -2]
lm.fit12<- lm(`Protección escuela`~ . , data = EdDit.lm12)
summary(lm.fit12)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm12)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9635 -0.7264  0.0317  0.7386  4.0299 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.48394    0.21263  16.385  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31580    0.07988   3.953 8.04e-05 ***
## `Nivel de estudios`Universitarios      0.11968    0.07489   1.598 0.110226    
## `Etapa educativa`Secundaria           -0.26547    0.05730  -4.633 3.90e-06 ***
## `Riesgo gestión pública educación`    -0.08790    0.01885  -4.664 3.36e-06 ***
## `Colaboración necesaria`               0.16673    0.02177   7.660 3.18e-14 ***
## `Mejora proceso de aprendizaje`        0.07448    0.02916   2.554 0.010745 *  
## `Disfrutar uso`                        0.11155    0.02724   4.094 4.44e-05 ***
## `Intuitivas acompañamiento`            0.08365    0.02569   3.256 0.001155 ** 
## `Favorecen la comunicación`            0.07341    0.02147   3.419 0.000643 ***
## `Reproducción roles género`           -0.03036    0.02005  -1.514 0.130137    
## `Utilización/comercialización`        -0.05004    0.02530  -1.978 0.048081 *  
## `Pagar por su uso`                     0.04461    0.01895   2.355 0.018665 *  
## Condicionar                           -0.06771    0.02496  -2.713 0.006746 ** 
## `Reducción socialización`              0.05785    0.02313   2.502 0.012455 *  
## `Uso suficientement supervisado`      -0.13604    0.02440  -5.576 2.88e-08 ***
## `Mejorar experiencia de los usuarios` -0.11211    0.01946  -5.760 1.00e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.092 on 1622 degrees of freedom
## Multiple R-squared:  0.4099, Adjusted R-squared:  0.4041 
## F-statistic: 70.41 on 16 and 1622 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm13<- EdDit.lm12[ , -9]
lm.fit13<- lm(`Protección escuela`~ . , data = EdDit.lm13)
summary(lm.fit13)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm13)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9357 -0.7306  0.0263  0.7442  3.9668 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.44377    0.21105  16.317  < 2e-16 ***
## `Nivel de estudios`Preuniversitarios   0.31583    0.07991   3.952 8.08e-05 ***
## `Nivel de estudios`Universitarios      0.12254    0.07490   1.636 0.102019    
## `Etapa educativa`Secundaria           -0.26653    0.05732  -4.650 3.59e-06 ***
## `Riesgo gestión pública educación`    -0.09505    0.01825  -5.207 2.16e-07 ***
## `Colaboración necesaria`               0.16784    0.02176   7.712 2.14e-14 ***
## `Mejora proceso de aprendizaje`        0.07409    0.02917   2.540 0.011185 *  
## `Disfrutar uso`                        0.11325    0.02723   4.159 3.37e-05 ***
## `Intuitivas acompañamiento`            0.08313    0.02570   3.235 0.001243 ** 
## `Favorecen la comunicación`            0.07141    0.02144   3.331 0.000884 ***
## `Utilización/comercialización`        -0.04785    0.02526  -1.894 0.058416 .  
## `Pagar por su uso`                     0.04410    0.01895   2.327 0.020080 *  
## Condicionar                           -0.07346    0.02468  -2.977 0.002957 ** 
## `Reducción socialización`              0.05802    0.02313   2.508 0.012237 *  
## `Uso suficientement supervisado`      -0.13689    0.02440  -5.610 2.37e-08 ***
## `Mejorar experiencia de los usuarios` -0.11315    0.01946  -5.815 7.30e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.092 on 1623 degrees of freedom
## Multiple R-squared:  0.4091, Adjusted R-squared:  0.4036 
## F-statistic:  74.9 on 15 and 1623 DF,  p-value: < 2.2e-16

En el Modelo resultante sigue habiendo variables con un p-valor alto. Por este motivo creamos un nuevo dataframe en el que eliminamos la variable con el p-valor más alto.

EdDit.lm14 <- EdDit.lm13[ ,-c(1:2)]
lm.fit14<- lm(`Protección escuela`~ . , data = EdDit.lm14)
summary(lm.fit14)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = EdDit.lm14)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.0651 -0.7406  0.0300  0.7530  4.0494 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.39924    0.20604  16.498  < 2e-16 ***
## `Riesgo gestión pública educación`    -0.08967    0.01842  -4.868 1.23e-06 ***
## `Colaboración necesaria`               0.16742    0.02185   7.662 3.12e-14 ***
## `Mejora proceso de aprendizaje`        0.07128    0.02940   2.424 0.015449 *  
## `Disfrutar uso`                        0.13602    0.02725   4.991 6.65e-07 ***
## `Intuitivas acompañamiento`            0.08238    0.02590   3.181 0.001495 ** 
## `Favorecen la comunicación`            0.07678    0.02165   3.546 0.000402 ***
## `Utilización/comercialización`        -0.05731    0.02549  -2.249 0.024671 *  
## `Pagar por su uso`                     0.04769    0.01912   2.494 0.012726 *  
## Condicionar                           -0.07312    0.02483  -2.944 0.003284 ** 
## `Reducción socialización`              0.06785    0.02329   2.913 0.003628 ** 
## `Uso suficientement supervisado`      -0.14295    0.02465  -5.800 7.95e-09 ***
## `Mejorar experiencia de los usuarios` -0.10850    0.01966  -5.520 3.95e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.104 on 1626 degrees of freedom
## Multiple R-squared:  0.3949, Adjusted R-squared:  0.3905 
## F-statistic: 88.44 on 12 and 1626 DF,  p-value: < 2.2e-16

Este Modelo compuesto por el Intercepto y 12 diferentes variables explica un 39.05% de la varianza.

División de la base de datos

Para poder hacer posteriomente las predicciones con el modelo, dividimos la la base de datos en un conjunto de entrenamiento (80%) y en otro de validación (20%)

set.seed(123) 
training.samples.EdDit.lm14 <- EdDit.lm14$`Protección escuela` %>% createDataPartition(p = 0.8, list = FALSE)
train.data.EdDit.lm14 <- EdDit.lm14 [training.samples.EdDit.lm14, ] 
test.data.EdDit.lm14 <- EdDit.lm14 [-training.samples.EdDit.lm14, ]

A continuación realizamos un nuevo Modelo de Regresión Lineal con la base de datos de entrenamiento. Como podemos observar, sale una nueva variable con un p-valor alto, por lo que la eliminamos.

lm.pred <- lm(`Protección escuela`~ . , data = train.data.EdDit.lm14)
summary(lm.pred)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = train.data.EdDit.lm14)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1946 -0.7251  0.0343  0.7425  3.9631 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.53764    0.23079  15.328  < 2e-16 ***
## `Riesgo gestión pública educación`    -0.08220    0.02034  -4.041 5.63e-05 ***
## `Colaboración necesaria`               0.19329    0.02440   7.922 5.00e-15 ***
## `Mejora proceso de aprendizaje`        0.04357    0.03296   1.322  0.18650    
## `Disfrutar uso`                        0.13207    0.03110   4.247 2.32e-05 ***
## `Intuitivas acompañamiento`            0.08136    0.02866   2.839  0.00460 ** 
## `Favorecen la comunicación`            0.06771    0.02411   2.808  0.00506 ** 
## `Utilización/comercialización`        -0.06915    0.02826  -2.447  0.01455 *  
## `Pagar por su uso`                     0.05758    0.02193   2.626  0.00873 ** 
## Condicionar                           -0.08377    0.02717  -3.083  0.00209 ** 
## `Reducción socialización`              0.05962    0.02580   2.311  0.02100 *  
## `Uso suficientement supervisado`      -0.13746    0.02711  -5.071 4.53e-07 ***
## `Mejorar experiencia de los usuarios` -0.11569    0.02195  -5.271 1.58e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.104 on 1299 degrees of freedom
## Multiple R-squared:  0.3936, Adjusted R-squared:  0.388 
## F-statistic: 70.25 on 12 and 1299 DF,  p-value: < 2.2e-16
train.data.EdDit.lm14.2 <- train.data.EdDit.lm14 [ , -3]
test.data.EdDit.lm14.2 <- test.data.EdDit.lm14 [ , -3]

Modelo de regresión lineal

A cotinuación presentamos el modelo de regresión lineal.

lm.pred2 <- lm(`Protección escuela`~ . , data = train.data.EdDit.lm14.2)
summary(lm.pred2)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = train.data.EdDit.lm14.2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.3146 -0.7324  0.0258  0.7341  3.9551 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            3.57609    0.22901  15.615  < 2e-16 ***
## `Riesgo gestión pública educación`    -0.08315    0.02034  -4.089 4.59e-05 ***
## `Colaboración necesaria`               0.20170    0.02356   8.561  < 2e-16 ***
## `Disfrutar uso`                        0.14583    0.02931   4.975 7.41e-07 ***
## `Intuitivas acompañamiento`            0.09162    0.02760   3.320 0.000926 ***
## `Favorecen la comunicación`            0.07428    0.02360   3.147 0.001685 ** 
## `Utilización/comercialización`        -0.06756    0.02825  -2.392 0.016907 *  
## `Pagar por su uso`                     0.05863    0.02192   2.675 0.007564 ** 
## Condicionar                           -0.08564    0.02714  -3.155 0.001642 ** 
## `Reducción socialización`              0.05570    0.02564   2.172 0.029999 *  
## `Uso suficientement supervisado`      -0.13982    0.02706  -5.167 2.74e-07 ***
## `Mejorar experiencia de los usuarios` -0.11802    0.02188  -5.393 8.20e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.104 on 1300 degrees of freedom
## Multiple R-squared:  0.3927, Adjusted R-squared:  0.3876 
## F-statistic: 76.44 on 11 and 1300 DF,  p-value: < 2.2e-16
apa.reg.table(lm.pred2, filename= "Modelo de regresión lineal", table.number= 1)
## 
## 
## Table 1 
## 
## Regression results using Protección escuela as the criterion
##  
## 
##                              Predictor       b       b_95%_CI sr2  sr2_95%_CI
##                            (Intercept)  3.58**   [3.13, 4.03]                
##     `Riesgo gestión pública educación` -0.08** [-0.12, -0.04] .01  [.00, .02]
##               `Colaboración necesaria`  0.20**   [0.16, 0.25] .03  [.02, .05]
##                        `Disfrutar uso`  0.15**   [0.09, 0.20] .01  [.00, .02]
##            `Intuitivas acompañamiento`  0.09**   [0.04, 0.15] .01 [-.00, .01]
##            `Favorecen la comunicación`  0.07**   [0.03, 0.12] .00 [-.00, .01]
##         `Utilización/comercialización`  -0.07* [-0.12, -0.01] .00 [-.00, .01]
##                     `Pagar por su uso`  0.06**   [0.02, 0.10] .00 [-.00, .01]
##                            Condicionar -0.09** [-0.14, -0.03] .00 [-.00, .01]
##              `Reducción socialización`   0.06*   [0.01, 0.11] .00 [-.00, .01]
##       `Uso suficientement supervisado` -0.14** [-0.19, -0.09] .01  [.00, .02]
##  `Mejorar experiencia de los usuarios` -0.12** [-0.16, -0.08] .01  [.00, .02]
##                                                                              
##                                                                              
##                                                                              
##              Fit
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##      R2 = .393**
##  95% CI[.35,.42]
##                 
## 
## Note. A significant b-weight indicates the semi-partial correlation is also significant.
## b represents unstandardized regression weights. 
## sr2 represents the semi-partial correlation squared.
## Square brackets are used to enclose the lower and upper limits of a confidence interval.
## * indicates p < .05. ** indicates p < .01.
## 

Así pues, el modelo de regresión propuesto es:

Confianza en la escuela = 3.57609 -(“Riesgo gestión pública educación” x 0.08315) (“Colaboración necesaria” x 0.16742) + (“Disfrute del uso” x 0.14583) + (Intuitivas en el acompñamiento x 0.09162) + (“Favorecen la comunicación x 0.07428) - (”Utilización/comercialización” x 0.06756) + (“Pagar por su uso” x 0.05863) - (“Condicionar” x 0.08564) + (“Reducción de la socialización” x 0.05570) - (“Uso superficientemente supervisado x 0.13982) - (”Mejora la experiencia los usuarios x 0.11802)

Supestos de normalidad

Comproación de la no linealidad del modelo

Tal como podemos observar el vector que contiene los residuos es realmente bajo.

mean(lm.pred2$residuals)
## [1] 1.218537e-16

En el gráfico observamos que la línea de los residuos está muy cercana a 0, lo que nos indica que las variables del modelo no presentan un problema de linealidad.

plot(lm.pred2 ,1)

Comprobación de normalidad y presencial de outliers

La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.

sresiduales <- studres(lm.pred2)
shapiro.test(sresiduales)
## 
##  Shapiro-Wilk normality test
## 
## data:  sresiduales
## W = 0.99849, p-value = 0.3122

En la gráfica se observa como los puntos están bastante centrados respecto a la línea, lo que nos indica una normalidad en la distribución. De la misma forma observamos la existencia de tres outliers (495, 990 y 999).

plot(lm.pred2, 2)

En el histograma vemos también como la distribución de los residuos es muy homogénea y la mayoría están en el centro.

hist(sresiduales, freq=FALSE, 
     main="Distribucion de los residuos")
xfit<-seq(min(sresiduales),max(sresiduales),length=40) 
yfit<-dnorm(xfit) 
lines(xfit, yfit)

Comprobación de la homocedasticidad

Sin embargo, la prueba de Chi cuadrado nos muestra que hay problemas con la homocedasticidad del modelo propuesto ya que el p-valor es inferior a .05

ncvTest(lm.pred2)
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 34.07737, Df = 1, p = 5.2964e-09

En la gráfica se observa como la línea no es orizontal, lo que da fe de la homocedasticidad descrita.

plot(lm.pred2, 3)

Comprobación de la independencia y la no autocorrelación en el término de error

En la gráfica se observa a simpe vista que no hay ningún patrón marcado entre las diferentes variables, lo que muestra la independencia y la no autocorrelación en el término de error.

plot(lm.pred2$residuals)

La siguiente gráfica muestra que sí tiende hacia lo esperado (líneas entre los puntos marcados).

residuales <- resid(lm.pred2)
acf(residuales, lag.max = 40, main = "Autocorrelación en el termino de error")

Comprobación de la presencia de colinealidades

Al realizar los primeros gráficos ya observamos la presencia de múltiples colinealidades, por lo que no incluimos todos.

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Colaboración necesaria`, xlab = "Riesgo gestión pública educación", ylab ="Colaboración necesaria")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Intuitivas acompañamiento`, xlab = "Riesgo gestión pública educación", ylab ="Intuitivas acompañamiento")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Favorecen la comunicación`, xlab = "Riesgo gestión pública educación", ylab ="Favorecen la comunicación")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Utilización/comercialización`, xlab = "Riesgo gestión pública educación", ylab ="Utilización/comercialización")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Pagar por su uso`, xlab = "Riesgo gestión pública educación", ylab ="Pagar por su uso")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$Condicionar, xlab = "Riesgo gestión pública educación", ylab ="Condicionar")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Reducción socialización`, xlab = "Riesgo gestión pública educación", ylab ="Reducción socialización")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Uso suficientement supervisado`, xlab = "Riesgo gestión pública educación", ylab ="Uso suficientement supervisado")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Mejorar experiencia de los usuarios`, xlab = "Riesgo gestión pública educación", ylab ="Mejorar experiencia de los usuarios")

scatterplot(train.data.EdDit.lm14.2$`Riesgo gestión pública educación`, train.data.EdDit.lm14.2$`Protección escuela`, xlab = "Riesgo gestión pública educación", ylab ="Protección escuela")

Predicciones del modelo de regresión

Finalmente incluimos una predicción del Modelo de Regresión Lineal. Como podemos observar, el RMSE (Error cuadrado medio) es de 1.089363 y el R2 es de 0.3651666

lm.Pred <- predict(lm(`Protección escuela` ~ . , data = test.data.EdDit.lm14.2))
data.frame(RMSE = RMSE(lm.Pred, test.data.EdDit.lm14.2$`Protección escuela`))
caret::R2(lm.Pred, test.data.EdDit.lm14$`Protección escuela`)
## [1] 0.4170303

Conclusiones del Modelo de Regresión

Si bien el modelo de regresión lineal propuesto a través de la técnica Backward selection parecía adecuada, la comprobación de los supuestos de normalidad han mostrado que existen problemas con la homocedasticidad y con la presencia de colinealidades.

Modelo de Regresión por Componentes principales

Para realizar el el modelo de regresión con componentes principales, directamente eliminaremos las variables sociodemográficas

EdDit2 <- EdDit [ , -c(1:6)]

Elección del número de componentes

Ahora realizaremos el modelo de regresión con componentes principales para buscar la reducción de dimensiones para la regresión.

Para elejir el número de componentes principales, en primer lugar analizamos el error cuadrático medio de la raíz de prueba (prueba RMSE). En este caso vemos que si añadimos seis componentes el error desciende pero que, al añadir más aumenta. Por otro lado, al analizar la varianza, observamos que hasta la inclusión de cinco componentes se eleva considerablemente, pero después no tanto.

modelo_Componentes <- pcr (`Protección escuela`~ . , scale = TRUE , validation = "CV", data = EdDit2)
summary(modelo_Componentes)
## Data:    X dimension: 1639 20 
##  Y dimension: 1639 1
## Fit method: svdpc
## Number of components considered: 20
## 
## VALIDATION: RMSEP
## Cross-validated using 10 random segments.
##        (Intercept)  1 comps  2 comps  3 comps  4 comps  5 comps  6 comps
## CV           1.415    1.175    1.138    1.128     1.13    1.132    1.129
## adjCV        1.415    1.175    1.138    1.128     1.13    1.131    1.129
##        7 comps  8 comps  9 comps  10 comps  11 comps  12 comps  13 comps
## CV       1.130    1.130    1.127     1.127     1.126     1.128     1.119
## adjCV    1.129    1.129    1.127     1.126     1.125     1.128     1.117
##        14 comps  15 comps  16 comps  17 comps  18 comps  19 comps  20 comps
## CV        1.116     1.116     1.115     1.116     1.116     1.116     1.114
## adjCV     1.115     1.115     1.114     1.115     1.115     1.115     1.113
## 
## TRAINING: % variance explained
##                     1 comps  2 comps  3 comps  4 comps  5 comps  6 comps
## X                     30.57    45.95    53.67    60.03    65.15    69.04
## Protección escuela    31.06    35.34    36.55    36.57    36.59    37.03
##                     7 comps  8 comps  9 comps  10 comps  11 comps  12 comps
## X                     72.76    75.93    78.82     81.51     83.99     86.21
## Protección escuela    37.04    37.17    37.53     37.63     37.73     37.74
##                     13 comps  14 comps  15 comps  16 comps  17 comps  18 comps
## X                      88.29     90.32     92.22     94.04     95.73     97.27
## Protección escuela     39.00     39.11     39.11     39.36     39.37     39.47
##                     19 comps  20 comps
## X                      98.73    100.00
## Protección escuela     39.54     39.71

Esto lo podemos visibilizar también gráficamente con la siguiente instrucción

par(mfrow = c(1,3))
validationplot (modelo_Componentes, xlab = "Número de variables")
validationplot (modelo_Componentes, val.type = "MSEP", xlab = "Número de variables")

Para conocer qué variables son, usamos la siguiente instrucción

regfit.full.EdDit <- regsubsets(`Protección escuela` ~ ., data = EdDit2)
summary(regfit.full.EdDit)
## Subset selection object
## Call: regsubsets.formula(`Protección escuela` ~ ., data = EdDit2)
## 20 Variables  (and intercept)
##                                       Forced in Forced out
## `Riesgo gestión pública educación`        FALSE      FALSE
## `Colaboración necesaria`                  FALSE      FALSE
## `Clave derecho educación`                 FALSE      FALSE
## `Principios democráticos`                 FALSE      FALSE
## `Mejora proceso de aprendizaje`           FALSE      FALSE
## `Trabajo coperativo`                      FALSE      FALSE
## `Disfrutar uso`                           FALSE      FALSE
## `Intuitivas acompañamiento`               FALSE      FALSE
## `Favorecen la comunicación`               FALSE      FALSE
## `Reproducción roles género`               FALSE      FALSE
## `Utilización/comercialización`            FALSE      FALSE
## `Pagar por su uso`                        FALSE      FALSE
## `Vulneración privacidad`                  FALSE      FALSE
## Condicionar                               FALSE      FALSE
## `Creación perfiles`                       FALSE      FALSE
## `Fuente de distracción`                   FALSE      FALSE
## `Reducción socialización`                 FALSE      FALSE
## `Uso suficientement supervisado`          FALSE      FALSE
## `Creación perfiles usos comerciales`      FALSE      FALSE
## `Mejorar experiencia de los usuarios`     FALSE      FALSE
## 1 subsets of each size up to 8
## Selection Algorithm: exhaustive
##          `Riesgo gestión pública educación` `Colaboración necesaria`
## 1  ( 1 ) " "                                "*"                     
## 2  ( 1 ) " "                                "*"                     
## 3  ( 1 ) " "                                "*"                     
## 4  ( 1 ) " "                                "*"                     
## 5  ( 1 ) " "                                "*"                     
## 6  ( 1 ) "*"                                "*"                     
## 7  ( 1 ) "*"                                "*"                     
## 8  ( 1 ) "*"                                "*"                     
##          `Clave derecho educación` `Principios democráticos`
## 1  ( 1 ) " "                       " "                      
## 2  ( 1 ) " "                       " "                      
## 3  ( 1 ) " "                       " "                      
## 4  ( 1 ) " "                       " "                      
## 5  ( 1 ) " "                       " "                      
## 6  ( 1 ) " "                       " "                      
## 7  ( 1 ) " "                       " "                      
## 8  ( 1 ) " "                       " "                      
##          `Mejora proceso de aprendizaje` `Trabajo coperativo` `Disfrutar uso`
## 1  ( 1 ) " "                             " "                  " "            
## 2  ( 1 ) " "                             " "                  "*"            
## 3  ( 1 ) " "                             " "                  "*"            
## 4  ( 1 ) " "                             " "                  "*"            
## 5  ( 1 ) " "                             " "                  "*"            
## 6  ( 1 ) " "                             " "                  "*"            
## 7  ( 1 ) " "                             " "                  "*"            
## 8  ( 1 ) " "                             " "                  "*"            
##          `Intuitivas acompañamiento` `Favorecen la comunicación`
## 1  ( 1 ) " "                         " "                        
## 2  ( 1 ) " "                         " "                        
## 3  ( 1 ) " "                         " "                        
## 4  ( 1 ) " "                         " "                        
## 5  ( 1 ) " "                         "*"                        
## 6  ( 1 ) " "                         "*"                        
## 7  ( 1 ) "*"                         "*"                        
## 8  ( 1 ) "*"                         "*"                        
##          `Reproducción roles género` `Utilización/comercialización`
## 1  ( 1 ) " "                         " "                           
## 2  ( 1 ) " "                         " "                           
## 3  ( 1 ) " "                         " "                           
## 4  ( 1 ) " "                         " "                           
## 5  ( 1 ) " "                         " "                           
## 6  ( 1 ) " "                         " "                           
## 7  ( 1 ) " "                         " "                           
## 8  ( 1 ) " "                         " "                           
##          `Pagar por su uso` `Vulneración privacidad` Condicionar
## 1  ( 1 ) " "                " "                      " "        
## 2  ( 1 ) " "                " "                      " "        
## 3  ( 1 ) " "                " "                      " "        
## 4  ( 1 ) " "                " "                      " "        
## 5  ( 1 ) " "                " "                      " "        
## 6  ( 1 ) " "                " "                      " "        
## 7  ( 1 ) " "                " "                      " "        
## 8  ( 1 ) " "                " "                      "*"        
##          `Creación perfiles` `Fuente de distracción` `Reducción socialización`
## 1  ( 1 ) " "                 " "                     " "                      
## 2  ( 1 ) " "                 " "                     " "                      
## 3  ( 1 ) " "                 " "                     " "                      
## 4  ( 1 ) " "                 " "                     " "                      
## 5  ( 1 ) " "                 " "                     " "                      
## 6  ( 1 ) " "                 " "                     " "                      
## 7  ( 1 ) " "                 " "                     " "                      
## 8  ( 1 ) " "                 " "                     " "                      
##          `Uso suficientement supervisado` `Creación perfiles usos comerciales`
## 1  ( 1 ) " "                              " "                                 
## 2  ( 1 ) " "                              " "                                 
## 3  ( 1 ) "*"                              " "                                 
## 4  ( 1 ) "*"                              " "                                 
## 5  ( 1 ) "*"                              " "                                 
## 6  ( 1 ) "*"                              " "                                 
## 7  ( 1 ) "*"                              " "                                 
## 8  ( 1 ) "*"                              " "                                 
##          `Mejorar experiencia de los usuarios`
## 1  ( 1 ) " "                                  
## 2  ( 1 ) " "                                  
## 3  ( 1 ) " "                                  
## 4  ( 1 ) "*"                                  
## 5  ( 1 ) "*"                                  
## 6  ( 1 ) "*"                                  
## 7  ( 1 ) "*"                                  
## 8  ( 1 ) "*"

Así pues, las variables que intervendrían en la regresión lineal son Condicionar, Intuitivas acompañamiento, Riesgo Gestión pública de la educación, Favorecen la comunicación, Mejorar experiencia usuario, Uso superficientemente supervisado.

EdDit.PCA <- EdDit2 [ , -c(2,3,4,5,6,7,10,11,12,13,15,16,17,19)]

División de la base de datos

para poder hacer posteriomente las predicciones con el modelo, dividimos la la base de datos en un conjunto de entrenamiento (80%) y en otro de validación (20%)

set.seed(123) 
training.samples.EdDit.PCA <- EdDit.PCA$`Protección escuela` %>% createDataPartition(p = 0.8, list = FALSE)
train.data.EdDit.PCA <- EdDit.PCA [training.samples.EdDit.PCA, ] 
test.data.EdDit.PCA <- EdDit.PCA [-training.samples.EdDit.PCA, ]

Regresión lineal con los componentes principales

De esta forma, la regresión lineal usando la técnica de componentes principales sería la siguiente. Tal como podemos observar, explicaría un 32.35% de la varianza.

lm.fit.training.PCA <- lm(`Protección escuela` ~ Condicionar + `Intuitivas acompañamiento` + `Riesgo gestión pública educación` + `Favorecen la comunicación` + `Mejorar experiencia de los usuarios` + `Uso suficientement supervisado`, data = train.data.EdDit.PCA)
summary(lm.fit.training.PCA)
## 
## Call:
## lm(formula = `Protección escuela` ~ Condicionar + `Intuitivas acompañamiento` + 
##     `Riesgo gestión pública educación` + `Favorecen la comunicación` + 
##     `Mejorar experiencia de los usuarios` + `Uso suficientement supervisado`, 
##     data = train.data.EdDit.PCA)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1429 -0.7733  0.0532  0.8067  3.7397 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            4.77225    0.20134  23.702  < 2e-16 ***
## Condicionar                           -0.12267    0.02303  -5.328 1.17e-07 ***
## `Intuitivas acompañamiento`            0.19018    0.02643   7.195 1.05e-12 ***
## `Riesgo gestión pública educación`    -0.14585    0.02034  -7.169 1.26e-12 ***
## `Favorecen la comunicación`            0.14716    0.02366   6.219 6.73e-10 ***
## `Mejorar experiencia de los usuarios` -0.17572    0.02239  -7.848 8.77e-15 ***
## `Uso suficientement supervisado`      -0.08921    0.02439  -3.658 0.000265 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.161 on 1305 degrees of freedom
## Multiple R-squared:  0.3266, Adjusted R-squared:  0.3235 
## F-statistic: 105.5 on 6 and 1305 DF,  p-value: < 2.2e-16

Para poder exportar el resultado usamos, al igual que antes, la librería apatables

apa.reg.table(lm.fit.training.PCA, filename= "Modelo de regresión lineal con Componentes Principales", table.number = 2)
## 
## 
## Table 2 
## 
## Regression results using Protección escuela as the criterion
##  
## 
##                              Predictor       b       b_95%_CI sr2  sr2_95%_CI
##                            (Intercept)  4.77**   [4.38, 5.17]                
##                            Condicionar -0.12** [-0.17, -0.08] .01  [.00, .03]
##            `Intuitivas acompañamiento`  0.19**   [0.14, 0.24] .03  [.01, .04]
##     `Riesgo gestión pública educación` -0.15** [-0.19, -0.11] .03  [.01, .04]
##            `Favorecen la comunicación`  0.15**   [0.10, 0.19] .02  [.01, .03]
##  `Mejorar experiencia de los usuarios` -0.18** [-0.22, -0.13] .03  [.02, .05]
##       `Uso suficientement supervisado` -0.09** [-0.14, -0.04] .01 [-.00, .01]
##                                                                              
##                                                                              
##                                                                              
##              Fit
##                 
##                 
##                 
##                 
##                 
##                 
##                 
##      R2 = .327**
##  95% CI[.28,.36]
##                 
## 
## Note. A significant b-weight indicates the semi-partial correlation is also significant.
## b represents unstandardized regression weights. 
## sr2 represents the semi-partial correlation squared.
## Square brackets are used to enclose the lower and upper limits of a confidence interval.
## * indicates p < .05. ** indicates p < .01.
## 

Modelo de Regresión Lineal con los componentes principales.

Así pues, el modelo de regresión usando los componentes principales propuesto es:

Protección escuela = 4.77225 - (“Condicionar” x 0.12267) + (“Intuitivas acompañamiento” x 0.19018) - (“Riesgo gestión pública educación” x 0.14585) + (“Favorecen la comunicación” x 0.14716) - (“Mejorar experiencia de los usuarios” x 0.14716) - (“Uso suficientement supervisado”x 0.08921)

Supestos de normalidad

Comproación de la no linealidad del modelo

Tal como podemos observar el vector que contiene los residuos es realmente bajo.

mean(lm.fit.training.PCA$residuals)
## [1] 4.603364e-17

En el gráfico observamos que la línea de los residuos está muy cercana a 0, lo que nos indica que las variables del modelo no presentan un problema de linealidad.

plot(lm.fit.training.PCA ,1)

Comprobación de normalidad y presencial de outliers

La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.

sresiduales <- studres(lm.fit.training.PCA)
shapiro.test(sresiduales)
## 
##  Shapiro-Wilk normality test
## 
## data:  sresiduales
## W = 0.99719, p-value = 0.02028

En la gráfica se observa como los puntos están bastante centrados respecto a la línea, lo que nos indica una normalidad en la distribución. De la misma forma observamos la existencia de tres outliers (495, 990 y 999).

plot(lm.fit.training.PCA, 2)

En el histograma vemos también como la distribución de los residuos es muy homogénea y la mayoría están en el centro.

hist(sresiduales, freq=FALSE, 
     main="Distribucion de los residuos")
xfit<-seq(min(sresiduales),max(sresiduales),length=40) 
yfit<-dnorm(xfit) 
lines(xfit, yfit)

Comprobación de la homocedasticidad

Sin embargo, la prueba de Chi cuadrado nos vuelve a mostrar que hay problemas con la homocedasticidad del modelo propuesto ya que el p-valor es inferior a .05

ncvTest(lm.fit.training.PCA)
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 34.73532, Df = 1, p = 3.7772e-09

En la gráfica se observa como la línea no es orizontal, lo que da fe de la homocedasticidad descrita.

plot(lm.fit.training.PCA, 3)

Comprobación de la independencia y la no autocorrelación en el término de error

En la gráfica se observa a simpe vista que no hay ningún patrón marcado entre las diferentes variables, lo que muestra la independencia y la no autocorrelación en el término de error.

plot(lm.fit.training.PCA$residuals)

La siguiente gráfica muestra que sí tiende hacia lo esperado (líneas entre los puntos marcados) a pesar de existir dos medidas que salen de las líneas.

residuales <- resid(lm.fit.training.PCA)
acf(residuales, lag.max = 40, main = "Autocorrelación en el termino de error")

Comprobación de la presencia de colinealidades

Al realizar los primeros gráficos ya observamos la presencia de múltiples colinealidades, por lo que no incluimos todos.

scatterplot(train.data.EdDit.PCA$Condicionar, train.data.EdDit.PCA$`Intuitivas acompañamiento`, xlab = "Condicionar", ylab ="Intuitivas acompañamiento")

scatterplot(train.data.EdDit.PCA$Condicionar, train.data.EdDit.PCA$`Riesgo gestión pública educación`, xlab = "Condicionar", ylab ="Riesgo gestión pública educación")

scatterplot(train.data.EdDit.PCA$Condicionar, train.data.EdDit.PCA$`Favorecen la comunicación`, xlab = "Condicionar", ylab ="Favorecen la comunicación")

scatterplot(train.data.EdDit.PCA$Condicionar, train.data.EdDit.PCA$`Mejorar experiencia de los usuarios`, xlab = "Condicionar", ylab ="Mejorar experiencia de los usuarios")

scatterplot(train.data.EdDit.PCA$Condicionar, train.data.EdDit.PCA$`Intuitivas acompañamiento`, xlab = "Condicionar", ylab ="Uso suficientement supervisado")

Predicciones del Modelo de Regresión por Componentes Principales

Finalmente incluimos una predicción del Modelo de Regresión Lineal. Como podemos observar, el RMSE (Error cuadrado medio) es de 1.124849 y el R2 es de 0.3784305

lm.Pred.PCA <- predict(lm(`Protección escuela` ~ . , data = test.data.EdDit.PCA))
data.frame(RMSE = RMSE(lm.Pred.PCA, test.data.EdDit.PCA$`Protección escuela`))
caret::R2(lm.Pred.PCA, test.data.EdDit.PCA$`Protección escuela`)
## [1] 0.3784305

Conclusiones del Modelo de Regresión por Componentes Principales

Si bien el modelo de regresión lineal propuesto a través de la técnica de Componentes Principales parecía adecuada, la comprobación de los supuestos de normalidad han mostrado que existen problemas con la homocedasticidad y con la presencia de colinealidades.

Modelo de Regresión Ridge y Modelo de Regresión Lasso

Para las siguientes prácticas partiremos de una base de datos con las variables que nos han propocionado la reducción de los Compoentens Principales realizada

EdDit3 <- EdDit [ , -c(1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 21, 22, 23, 25)]

A continuación dividimos la base de datos en un conjunto de entrenamiento (80%) y en otro de validación (20%).

set.seed(123) 
training.samples.EdDit3 <- EdDit3$`Protección escuela` %>% createDataPartition(p = 0.8, list = FALSE)
train.data.EdDit3 <- EdDit3 [training.samples.EdDit3, ] 
test.data.EdDit3 <- EdDit3 [-training.samples.EdDit3, ]

Modelo de Regresión Ridge

Como paso previo generamos nuestras matrices x (variables independientes eliminando el intercepto) e y (variable dependiente)

x <- model.matrix(`Protección escuela` ~ ., data = train.data.EdDit3) [, -1]
y <- train.data.EdDit3$`Protección escuela`

A cotniuación ajustamos un Modelo de Regresión Ridge alfa = 0.

grid <- 10^seq(10, -2, length = 100)
ridge.mod <- glmnet(x, y, alpha = 0, lambda = grid)

Observamos que nos realizará 100 modelos con 7 variables.

dim(coef(ridge.mod))
## [1]   7 100

Modelo de Regresión Ridge de ejemplo

A modo de ejemplo, podemos observar el lamda de un modelo en concreto. En este caso el modelo 40.

plot(ridge.mod, "lambda", label = TRUE)
abline(v=log(ridge.mod$lambda[40]), col="blue",lwd= 4,lty =3)

A continuación, a modo de ejemplo, observamos el valor de cada varialbe para el lambda 40.

coef(ridge.mod)[,40]
##                           (Intercept)    `Riesgo gestión pública educación` 
##                          4.077754e+00                         -2.073665e-06 
##           `Intuitivas acompañamiento`           `Favorecen la comunicación` 
##                          2.958211e-06                          2.552926e-06 
##                           Condicionar      `Uso suficientement supervisado` 
##                         -2.028862e-06                         -1.826961e-06 
## `Mejorar experiencia de los usuarios` 
##                         -2.318391e-06

Concrección del mejor lambda

A continuación buscarmeos el modelo con el mejor lambda. Para ello usarmeos la validación cruzada y haremos la observación gráfica. El mejor lambda está entre las dos líneas verticales.

sal.cv <- cv.glmnet(x,y,alpha=0)
plot(sal.cv)

Para poder concretar cuál es el mejor, usamos la siguiente formulación. Esta nos muestra que el mejor lambda sería en 0.0905384.

mejor.lambda <- sal.cv$lambda.min
mejor.lambda
## [1] 0.0905384

En el caso del gráfico, sería el logaritmo. Es decir, el mejor lambda sería en -2.401981

log(mejor.lambda)
## [1] -2.401981

Prediccciones del Modelo de Regresión Ridge con el mejor lambda

Con esta formulación podemos observar el peso de las diferentes variables.

test.data.mejor.lambda <- model.matrix(`Protección escuela` ~.,test.data.EdDit3)[,-1]
coef(ridge.mod)[,which(ridge.mod$lambda==mejor.lambda)]
## 7 x 0 sparse Matrix of class "dgCMatrix"
##                                      
## (Intercept)                          
## `Riesgo gestión pública educación`   
## `Intuitivas acompañamiento`          
## `Favorecen la comunicación`          
## Condicionar                          
## `Uso suficientement supervisado`     
## `Mejorar experiencia de los usuarios`

Para poder realizar la formulación redondeamos el lamda a 1.

coef(ridge.mod) [ , 1]
##                           (Intercept)    `Riesgo gestión pública educación` 
##                          4.077744e+00                         -3.885722e-11 
##           `Intuitivas acompañamiento`           `Favorecen la comunicación` 
##                          5.543225e-11                          4.783791e-11 
##                           Condicionar      `Uso suficientement supervisado` 
##                         -3.801776e-11                         -3.423452e-11 
## `Mejorar experiencia de los usuarios` 
##                         -4.344303e-11

Finalmente, mostramos una predicción con el mejor lambda y el resultado del RMSE (Error cuadrado medio) y el R2 para poder comparar después los diferentes modelos.

ridge.pred <- predict(ridge.mod, s= mejor.lambda , newx = test.data.mejor.lambda)
data.frame(RMSE = RMSE(ridge.pred, test.data.EdDit3$`Protección escuela`))
caret::R2(ridge.pred, test.data.EdDit3$`Protección escuela`)
##           s1
## [1,] 0.36523

Modelo de Regresión Ridge

Así pues, el Modelo de Regresión Ridge propuesto es:

Protección escuela = 4.077744e+00 - (“Condicionar” x 3.801776e-11) + (“Intuitivas acompañamiento” x 5.543225e-11) - (“Riesgo gestión pública educación” x 3.885722e-11) + (“Favorecen la comunicación” x 4.783791e-11) - (“Mejorar experiencia de los usuarios” x 4.344303e-11) - (“Uso suficientement supervisado”x 3.423452e-11)

Modelo de Regresión Lasso

En primer lugar ajustamos un modelo de regresión Lasso ajustando el alfa = 1.

grid <- 10^seq(10, -2, length = 100)
lasso.mod <- glmnet(x, y, alpha = 1, lambda = grid)

Observamos que nos realizará 100 modelos con 7 variables.

dim(coef(lasso.mod))
## [1]   7 100

Modelo de Regresión Lasso de ejemplo

A modo de ejemplo, podemos observar el lamda de un modelo en concreto. En este caso el modelo 90.

lasso.mod$lambda[90]
## [1] 0.1629751

Podemos observar gráficamente el modelo lambda 90 con las diferentes variables.

plot(lasso.mod, "lambda", label = TRUE)
abline(v=log(lasso.mod$lambda[90]), col="blue",lwd= 4,lty =3)

A continuación, a modo de ejemplo, observamos el valor de cada variable para el lambda 90.

coef(lasso.mod)[,90]
##                           (Intercept)    `Riesgo gestión pública educación` 
##                            4.19640528                           -0.09418623 
##           `Intuitivas acompañamiento`           `Favorecen la comunicación` 
##                            0.15076210                            0.10763567 
##                           Condicionar      `Uso suficientement supervisado` 
##                           -0.07760318                           -0.02546833 
## `Mejorar experiencia de los usuarios` 
##                           -0.10594895

Concrección del mejor lambda

sal.cv <- cv.glmnet(x,y,alpha=1)
plot(sal.cv)

Para poder concretar cuál es el mejor lambda, usamos la siguiente formulación. En este caso, como podemos observar es en 0.003105892

mejor.lambda <- sal.cv$lambda.min
mejor.lambda
## [1] 0.003105892

En el caso del gráfico, sería el logaritmo. Es decir, el mejor lambda sería en -5.774454

log(mejor.lambda)
## [1] -5.774454

Prediccciones del Modelo de Regresión Lasso con el mejor lambda

Con esta formulación podemos observar el peso de las diferentes variables.

test.data1 <- model.matrix(`Protección escuela` ~.,test.data.EdDit3) [,-1]
coef(lasso.mod)[,which(lasso.mod$lambda==mejor.lambda)]
## 7 x 0 sparse Matrix of class "dgCMatrix"
##                                      
## (Intercept)                          
## `Riesgo gestión pública educación`   
## `Intuitivas acompañamiento`          
## `Favorecen la comunicación`          
## Condicionar                          
## `Uso suficientement supervisado`     
## `Mejorar experiencia de los usuarios`

Para poder realizar la formulación redondeamos el lamda a 1. Sin embargo, tal como podemos observar, la autopercepción de las diferentes variables no afectarían al modelo.

coef(lasso.mod) [,1]
##                           (Intercept)    `Riesgo gestión pública educación` 
##                              4.077744                              0.000000 
##           `Intuitivas acompañamiento`           `Favorecen la comunicación` 
##                              0.000000                              0.000000 
##                           Condicionar      `Uso suficientement supervisado` 
##                              0.000000                              0.000000 
## `Mejorar experiencia de los usuarios` 
##                              0.000000

Finalmente, mostramos una predicción con el mejor lambda y el resultado del RMSE (Error cuadrado medio) y el R2 para poder comparar después los diferentes modelos.

pred.lasso <- predict(lasso.mod, s =mejor.lambda, newx = test.data1)
data.frame(RMSE = RMSE(pred.lasso, test.data.EdDit3$`Protección escuela`))
caret::R2(pred.lasso, test.data.EdDit3$`Protección escuela`)
##             s1
## [1,] 0.3652557

Arboles de decisión

Partiremos de la base de datos EdDit2. Como todas las variables tienen la misma escala de medición, no es necesario normalizar los resultados

División de la base de datos

Para poder hacer posteriomente las predicciones con el modelo, dividimos la la base de datos en un conjunto de entrenamiento (80%) y en otro de validación (20%).

set.seed(123) 
training.samples.EdDit2 <- EdDit2$`Protección escuela` %>% createDataPartition(p = 0.8, list = FALSE)
train.data.EdDit2 <- EdDit2 [training.samples.EdDit2, ] 
test.data.EdDit2 <- EdDit2 [-training.samples.EdDit2, ]

Ajuste del arbol de decisión

A continuación realizamos el ajuste del arbol de regresión con el conjunto de entrenamiento. Tal como podemos observar, a pesar de haber incluido todas las variables predictoras, el modelo únicamente ha considerado 6 variables. A modode de resumen, podemos afirmar que para obtener una mayor confianza en la escuela es necesaria una mayor opinión sobre la necesidad de colaboración, de la consideración de que el alumnado disfruta con su uso y de que favorecen la comunicación entre la familia y dicha escuela.

tree.train <- rpart(formula = `Protección escuela` ~ . , data = train.data.EdDit2)
summary(tree.train)
## Call:
## rpart(formula = `Protección escuela` ~ ., data = train.data.EdDit2)
##   n= 1312 
## 
##           CP nsplit rel error    xerror       xstd
## 1 0.20171362      0 1.0000000 1.0005255 0.03409731
## 2 0.04785144      1 0.7982864 0.7992018 0.02949960
## 3 0.02802618      2 0.7504349 0.7713111 0.02895373
## 4 0.02065270      3 0.7224088 0.7586659 0.02899622
## 5 0.01754944      4 0.7017561 0.7580730 0.02907118
## 6 0.01442104      5 0.6842066 0.7435544 0.02833542
## 7 0.01000000      6 0.6697856 0.7301068 0.02813246
## 
## Variable importance
##           Colaboración necesaria                    Disfrutar uso 
##                               31                               12 
##    Mejora proceso de aprendizaje               Trabajo coperativo 
##                               11                                9 
##          Clave derecho educación Riesgo gestión pública educación 
##                                9                                8 
##   Uso suficientement supervisado        Favorecen la comunicación 
##                                5                                4 
##        Intuitivas acompañamiento     Utilización/comercialización 
##                                3                                2 
##           Vulneración privacidad          Reducción socialización 
##                                2                                1 
##            Fuente de distracción                      Condicionar 
##                                1                                1 
## 
## Node number 1: 1312 observations,    complexity param=0.2017136
##   mean=4.077744, MSE=1.989383 
##   left son=2 (307 obs) right son=3 (1005 obs)
##   Primary splits:
##       Colaboración necesaria        < 2.5 to the left,  improve=0.2017136, (0 missing)
##       Mejora proceso de aprendizaje < 2.5 to the left,  improve=0.1644451, (0 missing)
##       Trabajo coperativo            < 2.5 to the left,  improve=0.1355814, (0 missing)
##       Disfrutar uso                 < 3.5 to the left,  improve=0.1245210, (0 missing)
##       Intuitivas acompañamiento     < 2.5 to the left,  improve=0.1114243, (0 missing)
##   Surrogate splits:
##       Mejora proceso de aprendizaje    < 1.5 to the left,  agree=0.814, adj=0.205, (0 split)
##       Clave derecho educación          < 1.5 to the left,  agree=0.808, adj=0.179, (0 split)
##       Riesgo gestión pública educación < 5.5 to the right, agree=0.800, adj=0.147, (0 split)
##       Disfrutar uso                    < 2.5 to the left,  agree=0.793, adj=0.114, (0 split)
##       Trabajo coperativo               < 1.5 to the left,  agree=0.791, adj=0.107, (0 split)
## 
## Node number 2: 307 observations,    complexity param=0.02802618
##   mean=2.931596, MSE=2.070239 
##   left son=4 (201 obs) right son=5 (106 obs)
##   Primary splits:
##       Uso suficientement supervisado      < 4.5 to the right, improve=0.11509520, (0 missing)
##       Utilización/comercialización        < 4.5 to the right, improve=0.10549570, (0 missing)
##       Riesgo gestión pública educación    < 4.5 to the right, improve=0.08330203, (0 missing)
##       Mejorar experiencia de los usuarios < 5.5 to the right, improve=0.08055999, (0 missing)
##       Condicionar                         < 4.5 to the right, improve=0.07333531, (0 missing)
##   Surrogate splits:
##       Reducción socialización      < 4.5 to the right, agree=0.749, adj=0.274, (0 split)
##       Fuente de distracción        < 3.5 to the right, agree=0.743, adj=0.255, (0 split)
##       Condicionar                  < 3.5 to the right, agree=0.704, adj=0.142, (0 split)
##       Utilización/comercialización < 3.5 to the right, agree=0.697, adj=0.123, (0 split)
##       Vulneración privacidad       < 2.5 to the right, agree=0.697, adj=0.123, (0 split)
## 
## Node number 3: 1005 observations,    complexity param=0.04785144
##   mean=4.427861, MSE=1.440816 
##   left son=6 (590 obs) right son=7 (415 obs)
##   Primary splits:
##       Disfrutar uso                 < 4.5 to the left,  improve=0.08625270, (0 missing)
##       Intuitivas acompañamiento     < 4.5 to the left,  improve=0.08483602, (0 missing)
##       Favorecen la comunicación     < 4.5 to the left,  improve=0.08249682, (0 missing)
##       Mejora proceso de aprendizaje < 4.5 to the left,  improve=0.08027222, (0 missing)
##       Trabajo coperativo            < 4.5 to the left,  improve=0.07569335, (0 missing)
##   Surrogate splits:
##       Mejora proceso de aprendizaje < 4.5 to the left,  agree=0.752, adj=0.400, (0 split)
##       Intuitivas acompañamiento     < 4.5 to the left,  agree=0.734, adj=0.357, (0 split)
##       Clave derecho educación       < 4.5 to the left,  agree=0.729, adj=0.345, (0 split)
##       Trabajo coperativo            < 4.5 to the left,  agree=0.721, adj=0.325, (0 split)
##       Favorecen la comunicación     < 4.5 to the left,  agree=0.703, adj=0.282, (0 split)
## 
## Node number 4: 201 observations
##   mean=2.577114, MSE=1.637088 
## 
## Node number 5: 106 observations,    complexity param=0.0206527
##   mean=3.603774, MSE=2.201495 
##   left son=10 (67 obs) right son=11 (39 obs)
##   Primary splits:
##       Riesgo gestión pública educación < 3.5 to the right, improve=0.23099650, (0 missing)
##       Condicionar                      < 4.5 to the right, improve=0.10612360, (0 missing)
##       Principios democráticos          < 4.5 to the right, improve=0.10549340, (0 missing)
##       Utilización/comercialización     < 4.5 to the right, improve=0.09909576, (0 missing)
##       Vulneración privacidad           < 3.5 to the right, improve=0.08484950, (0 missing)
##   Surrogate splits:
##       Utilización/comercialización   < 4.5 to the right, agree=0.783, adj=0.410, (0 split)
##       Vulneración privacidad         < 3.5 to the right, agree=0.764, adj=0.359, (0 split)
##       Principios democráticos        < 1.5 to the right, agree=0.679, adj=0.128, (0 split)
##       Creación perfiles              < 2.5 to the right, agree=0.670, adj=0.103, (0 split)
##       Uso suficientement supervisado < 1.5 to the right, agree=0.670, adj=0.103, (0 split)
## 
## Node number 6: 590 observations,    complexity param=0.01754944
##   mean=4.132203, MSE=1.463878 
##   left son=12 (116 obs) right son=13 (474 obs)
##   Primary splits:
##       Trabajo coperativo               < 2.5 to the left,  improve=0.05303449, (0 missing)
##       Mejora proceso de aprendizaje    < 2.5 to the left,  improve=0.04397155, (0 missing)
##       Disfrutar uso                    < 2.5 to the left,  improve=0.04230627, (0 missing)
##       Intuitivas acompañamiento        < 2.5 to the left,  improve=0.04108825, (0 missing)
##       Riesgo gestión pública educación < 4.5 to the right, improve=0.04051168, (0 missing)
##   Surrogate splits:
##       Clave derecho educación       < 1.5 to the left,  agree=0.820, adj=0.086, (0 split)
##       Mejora proceso de aprendizaje < 1.5 to the left,  agree=0.817, adj=0.069, (0 split)
##       Disfrutar uso                 < 1.5 to the left,  agree=0.817, adj=0.069, (0 split)
##       Intuitivas acompañamiento     < 1.5 to the left,  agree=0.805, adj=0.009, (0 split)
## 
## Node number 7: 415 observations,    complexity param=0.01442104
##   mean=4.848193, MSE=1.107075 
##   left son=14 (261 obs) right son=15 (154 obs)
##   Primary splits:
##       Favorecen la comunicación           < 5.5 to the left,  improve=0.08192636, (0 missing)
##       Intuitivas acompañamiento           < 3.5 to the left,  improve=0.06088754, (0 missing)
##       Disfrutar uso                       < 5.5 to the left,  improve=0.06055020, (0 missing)
##       Riesgo gestión pública educación    < 1.5 to the right, improve=0.04737242, (0 missing)
##       Mejorar experiencia de los usuarios < 1.5 to the right, improve=0.04171972, (0 missing)
##   Surrogate splits:
##       Mejora proceso de aprendizaje < 5.5 to the left,  agree=0.786, adj=0.422, (0 split)
##       Trabajo coperativo            < 5.5 to the left,  agree=0.783, adj=0.416, (0 split)
##       Disfrutar uso                 < 5.5 to the left,  agree=0.764, adj=0.364, (0 split)
##       Intuitivas acompañamiento     < 5.5 to the left,  agree=0.764, adj=0.364, (0 split)
##       Clave derecho educación       < 5.5 to the left,  agree=0.737, adj=0.292, (0 split)
## 
## Node number 10: 67 observations
##   mean=3.059701, MSE=1.727779 
## 
## Node number 11: 39 observations
##   mean=4.538462, MSE=1.633136 
## 
## Node number 12: 116 observations
##   mean=3.568966, MSE=1.865933 
## 
## Node number 13: 474 observations
##   mean=4.270042, MSE=1.268849 
## 
## Node number 14: 261 observations
##   mean=4.616858, MSE=1.102245 
## 
## Node number 15: 154 observations
##   mean=5.24026, MSE=0.8708467
rpart.plot(tree.train)

Evaluación del rendimiento

Para revaluar el rendimiento, procederemos al remuestreo.

obs <- test.data.EdDit2$`Protección escuela`
pred <- predict(tree.train, newdata = test.data.EdDit2)
plot(jitter(pred), jitter(obs), xlab = "Predicción", ylab = "Observado")
abline(a = 0, b = 1)

A través del paquete caret, podemos hacerlo de la siguiente manera. Tal como podemos observar, la tasa de error (RMSE) es de 1.2281651 y el R2 es de 0.2639702

caret::postResample(pred, obs)
##      RMSE  Rsquared       MAE 
## 1.2281651 0.2639702 1.0059652

Poda del arbol

En primer lugar, para poder averiguar el valor optimo de cp usaremos la validación cruzada. Para ello, establecemos cp = 0 para construir el árbol completo, a la profundidad máxima (determinada por los valores de minsplit y minbucket, que se podrían seleccionar “a mano” dependiendo del número de observaciones. Posteriormente podemos emplear las funciones printcp() (o plotcp()) para obtener y/o representar los valores de cp para los árboles (óptimos) de menor tamaño junto con su error de validación cruzada.

tree.train.poda <- rpart(`Protección escuela` ~ ., data = train.data.EdDit2, cp = 0)
printcp(tree.train.poda)
## 
## Regression tree:
## rpart(formula = `Protección escuela` ~ ., data = train.data.EdDit2, 
##     cp = 0)
## 
## Variables actually used in tree construction:
##  [1] Clave derecho educación             Colaboración necesaria             
##  [3] Condicionar                         Creación perfiles                  
##  [5] Creación perfiles usos comerciales  Disfrutar uso                      
##  [7] Favorecen la comunicación           Fuente de distracción              
##  [9] Intuitivas acompañamiento           Mejora proceso de aprendizaje      
## [11] Mejorar experiencia de los usuarios Pagar por su uso                   
## [13] Principios democráticos             Reducción socialización            
## [15] Reproducción roles género           Riesgo gestión pública educación   
## [17] Trabajo coperativo                  Uso suficientement supervisado     
## [19] Utilización/comercialización        Vulneración privacidad             
## 
## Root node error: 2610.1/1312 = 1.9894
## 
## n= 1312 
## 
##            CP nsplit rel error  xerror     xstd
## 1  0.20171362      0   1.00000 1.00179 0.034150
## 2  0.04785144      1   0.79829 0.80162 0.029576
## 3  0.02802618      2   0.75043 0.77275 0.028733
## 4  0.02065270      3   0.72241 0.75359 0.028064
## 5  0.01754944      4   0.70176 0.74732 0.028142
## 6  0.01442104      5   0.68421 0.73786 0.028040
## 7  0.00960250      6   0.66979 0.72486 0.027808
## 8  0.00894041      7   0.66018 0.72265 0.027394
## 9  0.00782498      8   0.65124 0.72332 0.028077
## 10 0.00747445      9   0.64342 0.71928 0.027966
## 11 0.00722582     10   0.63594 0.71926 0.027865
## 12 0.00703405     11   0.62872 0.72058 0.028164
## 13 0.00643264     13   0.61465 0.72232 0.028333
## 14 0.00638376     14   0.60822 0.72602 0.028406
## 15 0.00635720     15   0.60183 0.72602 0.028406
## 16 0.00597043     16   0.59548 0.72590 0.028507
## 17 0.00521702     17   0.58951 0.71784 0.028377
## 18 0.00504344     18   0.58429 0.71937 0.028533
## 19 0.00490648     19   0.57924 0.72175 0.028552
## 20 0.00475851     20   0.57434 0.72089 0.028510
## 21 0.00448245     21   0.56958 0.72255 0.028889
## 22 0.00445243     22   0.56510 0.72612 0.029111
## 23 0.00441259     23   0.56064 0.72612 0.029111
## 24 0.00440616     24   0.55623 0.72612 0.029111
## 25 0.00415625     25   0.55183 0.72678 0.029179
## 26 0.00409058     26   0.54767 0.72916 0.029288
## 27 0.00391113     27   0.54358 0.73177 0.029410
## 28 0.00381469     28   0.53967 0.73927 0.029793
## 29 0.00380389     29   0.53585 0.73701 0.029576
## 30 0.00374777     30   0.53205 0.74175 0.029695
## 31 0.00367983     32   0.52455 0.73916 0.029663
## 32 0.00365506     33   0.52087 0.74058 0.029666
## 33 0.00329311     35   0.51356 0.72968 0.029348
## 34 0.00309059     36   0.51027 0.73445 0.029681
## 35 0.00300774     37   0.50718 0.74107 0.030066
## 36 0.00300262     38   0.50417 0.74247 0.030173
## 37 0.00296716     39   0.50117 0.74369 0.030187
## 38 0.00279318     40   0.49820 0.74835 0.030521
## 39 0.00267547     42   0.49262 0.74902 0.030511
## 40 0.00261961     43   0.48994 0.75044 0.030627
## 41 0.00257818     44   0.48732 0.75586 0.030761
## 42 0.00243258     45   0.48474 0.76322 0.030911
## 43 0.00241471     46   0.48231 0.76499 0.031013
## 44 0.00234821     47   0.47990 0.76526 0.031042
## 45 0.00230677     49   0.47520 0.76633 0.031067
## 46 0.00227690     50   0.47289 0.76735 0.031163
## 47 0.00224965     51   0.47062 0.76549 0.031129
## 48 0.00223797     52   0.46837 0.76927 0.031461
## 49 0.00214596     53   0.46613 0.76847 0.031395
## 50 0.00209307     54   0.46398 0.76756 0.031454
## 51 0.00193803     55   0.46189 0.77605 0.031672
## 52 0.00191995     56   0.45995 0.77887 0.031771
## 53 0.00189868     60   0.45194 0.77949 0.031777
## 54 0.00183903     61   0.45004 0.77897 0.031721
## 55 0.00183205     62   0.44820 0.78154 0.031809
## 56 0.00182668     65   0.44270 0.78094 0.031785
## 57 0.00178140     66   0.44088 0.78215 0.031821
## 58 0.00167828     67   0.43910 0.77996 0.031676
## 59 0.00166253     68   0.43742 0.77934 0.031565
## 60 0.00156898     71   0.43243 0.78030 0.031418
## 61 0.00155695     72   0.43086 0.78109 0.031402
## 62 0.00154740     73   0.42930 0.78213 0.031533
## 63 0.00135326     74   0.42776 0.78550 0.031601
## 64 0.00130775     77   0.42370 0.79172 0.031704
## 65 0.00124035     78   0.42239 0.79976 0.031705
## 66 0.00116619     79   0.42115 0.79946 0.031598
## 67 0.00114327     80   0.41998 0.80048 0.031593
## 68 0.00112385     81   0.41884 0.80047 0.031612
## 69 0.00109466     82   0.41772 0.80100 0.031615
## 70 0.00108563     83   0.41662 0.80095 0.031612
## 71 0.00105087     84   0.41554 0.80242 0.031727
## 72 0.00103385     85   0.41449 0.80246 0.031828
## 73 0.00098648     86   0.41345 0.80340 0.031815
## 74 0.00094303     88   0.41148 0.80128 0.031756
## 75 0.00090287     89   0.41054 0.80264 0.031742
## 76 0.00085981     91   0.40873 0.80408 0.031790
## 77 0.00085348     92   0.40787 0.80382 0.031791
## 78 0.00075323     93   0.40702 0.80509 0.031798
## 79 0.00072248     94   0.40626 0.80459 0.031819
## 80 0.00067051     95   0.40554 0.80380 0.031782
## 81 0.00065276     98   0.40353 0.80695 0.031860
## 82 0.00054948     99   0.40288 0.80788 0.031858
## 83 0.00050165    100   0.40233 0.80660 0.031711
## 84 0.00046678    101   0.40183 0.80594 0.031714
## 85 0.00039178    102   0.40136 0.80599 0.031748
## 86 0.00029840    104   0.40057 0.80605 0.031742
## 87 0.00000000    105   0.40028 0.80574 0.031748
plotcp(tree.train.poda)

La tabla con los valores de las podas (óptimas, dependiendo del parámetro de complejidad) está almacenada en la componente $cptable.

head(tree.train.poda$cptable, 10)
##             CP nsplit rel error    xerror       xstd
## 1  0.201713624      0 1.0000000 1.0017871 0.03415031
## 2  0.047851442      1 0.7982864 0.8016240 0.02957640
## 3  0.028026182      2 0.7504349 0.7727526 0.02873286
## 4  0.020652698      3 0.7224088 0.7535864 0.02806393
## 5  0.017549437      4 0.7017561 0.7473194 0.02814151
## 6  0.014421042      5 0.6842066 0.7378649 0.02804009
## 7  0.009602499      6 0.6697856 0.7248561 0.02780783
## 8  0.008940406      7 0.6601831 0.7226531 0.02739368
## 9  0.007824976      8 0.6512427 0.7233168 0.02807730
## 10 0.007474454      9 0.6434177 0.7192755 0.02796601

Finalmente, obtenemos el valor optimo de forma automática soguiendo el criterio de error estandar, teniendo en cuenta el valor optimo, el límite superior y la complejidad mínima por debajo de ese valor.

xerror <- tree.train.poda$cptable[,"xerror"]
imin.xerror <- which.min(xerror)
tree.train.poda$cptable[imin.xerror, ]
##           CP       nsplit    rel error       xerror         xstd 
##  0.005217018 17.000000000  0.589505287  0.717843438  0.028377262
upper.xerror <- xerror[imin.xerror] + tree.train.poda$cptable[imin.xerror, "xstd"]
icp <- min(which(xerror <= upper.xerror))
cp <- tree.train.poda$cptable[icp, "CP"]

Para obtener el modelo final podamos el árbol con el valor de complejidad ( cp ) obtenido 0.006357196 que en este caso coincide con el valor óptimo.

tree.train.poda <- prune(tree.train.poda, cp = cp)
rpart.plot(tree.train.poda) 

Para estudiar el modelo final y la importancia que tienen cada una de las vairables, de forma alternativa a la función summary(), podemos usar la que presentamos a continuación. Tal como podemos observar, la colaboración necesaria tiene un peso del 34.8%, el disfture en el uso un 12.2%, la consideración de la mejora en el proceso de aprendizaje, a pesar de no estar incluida en el arbol, un 10.4%, etc.

importance <- tree.train.poda$variable.importance
importance <- round(100*importance/sum(importance), 1)
importance[importance >= 1]
##           Colaboración necesaria                    Disfrutar uso 
##                             33.5                             12.0 
##    Mejora proceso de aprendizaje               Trabajo coperativo 
##                             10.3                              9.1 
##          Clave derecho educación Riesgo gestión pública educación 
##                              9.0                              8.3 
##   Uso suficientement supervisado        Intuitivas acompañamiento 
##                              5.0                              2.9 
##        Favorecen la comunicación     Utilización/comercialización 
##                              2.2                              2.0 
##           Vulneración privacidad          Reducción socialización 
##                              1.8                              1.3 
##            Fuente de distracción 
##                              1.2

Evaluación del rendimiento de la poda

Para revaluar el rendimiento, procederemos al remuestreo.

obs.poda <- test.data.EdDit2$`Protección escuela`
pred.poda <- predict(tree.train.poda, newdata = test.data.EdDit2)
plot(jitter(pred.poda), jitter(obs.poda), xlab = "Predicción", ylab = "Observado")
abline(a = 0, b = 1)

A través del paquete caret, podemos hacerlo de la siguiente manera. Tal como podemos observar, la tasa de error (RMSE) es de 1.239824 y el R2 es de 0.248016.

caret::postResample(pred.poda, obs.poda)
##      RMSE  Rsquared       MAE 
## 1.2384241 0.2504594 1.0088387

Conclusiones de los arboles de decisión

Como se ha podido observar hemos creado un arbol de decisión en el cual se reducían el número de variables. Sin embargo, la tasa de error del modelo era significativamente alta y RSquared basante bajo. Con la poda, pudimos reducir el número de nodos, pero la tasa de error aumentó y el RSquared disminuyó.

Conclusiones

Tal como hemos observado durante este trabajo, se han propuesto diferentes Modelos de Regresión. En la siguiente tabla se exponen los errores cuadráticos (RMSE) así como el R2.

Regresión RMSE R2
Lineal 1.089363 0.4170303
Componentes Principales 1.124849 0.3784305
Ridge 1.140498 0.36523
Lasso 1.140209 0.3652557
Arbol de decisión 1.2281651 0.2639702
Arbol de decisión (poda) 1.239824 0.248016

Así pues, el Modelo de Regresión que mejor podría predecir la confianza en la escuela por parte de las familias es el presentado en la Regresión Lineal, realizando la eliminación de variables que no influían en dicho modelo a través de la técnica de backward selection. Sin embargo, tal como presentamos en los supeustos de normalidad, dicho modelo nos ofrece problemas de homocedasticidad así como la presencia de colinealidades.

Ampliación del estudio

Siguiendo la metodología aplicada en el artículo How do teachers perceive the challenges of teaching in the digital society? From Technology Acceptance Models to the development of Digital Competence in Education en la revista Bordon (en prensa) y basandonos en la propuesta de Berge et al. (1999) hemos realizado una conversión de las variables a partir del anális factorial presentado en Calderón-Garrido et al. (2023). De esta forma, hemos reducido todas las variables a únicamente tres más la variable dependiente.

Zscore <- Zscore <- read_excel("Z score/Zscore.xlsx", 
    sheet = "ZSCORE")

La base de datos es la siguiente.

DT::datatable(head(Zscore))

A continuación dividimos la base de datos. Como podemos observar, todas las variables son significativas y el modelo explica un 28.92% de la varianza

set.seed(123) 
training.samples.z <- Zscore$`Protección escuela` %>% createDataPartition(p = 0.8, list = FALSE)
train.data.z <- Zscore [training.samples.EdDit.lm14, ] 
test.data.z <- Zscore [-training.samples.EdDit.lm14, ]

Modelo de Regresión Lineal

Realizamos la regresión lineal.

z.pred <- lm(`Protección escuela`~ . , data = train.data.z)
summary(z.pred)
## 
## Call:
## lm(formula = `Protección escuela` ~ ., data = train.data.z)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1704 -0.7700  0.0342  0.8472  3.7658 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            4.09258    0.03285 124.591  < 2e-16 ***
## `Opiniones negativas` -0.19364    0.02541  -7.621 4.82e-14 ***
## `Opiniones positivas`  0.16081    0.01002  16.047  < 2e-16 ***
## Preocupaciones        -0.07139    0.01418  -5.034 5.47e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.19 on 1308 degrees of freedom
## Multiple R-squared:  0.2909, Adjusted R-squared:  0.2892 
## F-statistic: 178.8 on 3 and 1308 DF,  p-value: < 2.2e-16

Supuestos de normalidad

Comproación de la no linealidad del modelo

Tal como podemos observar el vector que contiene los residuos es realmente bajo.

mean(z.pred$residuals)
## [1] -3.570992e-17

En el gráfico observamos que la línea de los residuos está muy cercana a 0, lo que nos indica que las variables del modelo no presentan un problema de linealidad.

plot(z.pred ,1)

Comprobación de normalidad y presencial de outliers

La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.

sresiduales <- studres(z.pred)
shapiro.test(sresiduales)
## 
##  Shapiro-Wilk normality test
## 
## data:  sresiduales
## W = 0.99513, p-value = 0.0003014

En la gráfica se observa como los puntos están bastante centrados respecto a la línea, lo que nos indica una normalidad en la distribución. De la misma forma observamos la existencia de tres outliers (707, 999 y 1279).

plot(z.pred ,2)

En el histograma vemos también como la distribución de los residuos es muy homogénea y la mayoría están en el centro.

hist(sresiduales, freq=FALSE, 
     main="Distribucion de los residuos")
xfit<-seq(min(sresiduales),max(sresiduales),length=40) 
yfit<-dnorm(xfit) 
lines(xfit, yfit)

Comprobación de la homocedasticidad

Sin embargo, la prueba de Chi cuadrado nos muestra que hay problemas con la homocedasticidad del modelo propuesto ya que el p-valor es inferior a .05

ncvTest(z.pred)
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 23.98084, Df = 1, p = 9.7299e-07

En la gráfica se observa como la línea no es orizontal, lo que da fe de la homocedasticidad descrita.

plot(z.pred, 3)

Comprobación de la independencia y la no autocorrelación en el término de error

En la gráfica se observa a simpe vista que no hay ningún patrón marcado entre las diferentes variables, lo que muestra la independencia y la no autocorrelación en el término de error.

plot(z.pred$residuals)

La siguiente gráfica muestra que sí tiende hacia lo esperado (líneas entre los puntos marcados).

residuales <- resid(z.pred)
acf(residuales, lag.max = 40, main = "Autocorrelación en el termino de error")

Comprobación de la presencia de colinealidades

En los gráficos se observa que no hay presencia de colinealidades

scatterplot(Zscore$`Opiniones negativas`, Zscore$`Opiniones positivas`, xlab = "Opiniones negativas", ylab ="Opiniones positivas")

scatterplot(Zscore$`Opiniones negativas`, Zscore$Preocupaciones, xlab = "Opiniones negativas", ylab ="Preocupaciones")

scatterplot(Zscore$`Opiniones positivas`, Zscore$Preocupaciones, xlab = "Opiniones positivas", ylab ="Preocupaciones")

Predicción del Modelo de Regresión Lineal

Finalmente incluimos una predicción del Modelo de Regresión Lineal. Como podemos observar, el RMSE (Error cuadrado medio) es de 1.142045 y el R2 es de 0.3592811

z.Pred <- predict(lm(`Protección escuela` ~ . , data = test.data.z))
data.frame(RMSE = RMSE(z.Pred, test.data.z$`Protección escuela`))
caret::R2(z.Pred, test.data.z$`Protección escuela`)
## [1] 0.3592811

Concusiones de la ampliación

Tal como hemos podido observar, al reducir las dimensiones usando el Z score, hemos evitado el problema de colinealidad que se nos presentaba anteriormente, pero sigue presentado problemas de homocedasticidad. Por otro lado, el R2 de la predicción ha sido inferior y el error cuadrático superior.