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.
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.
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.
Estudiamos la base de datos.
## [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"
## 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 ...
Para poder trabajar más fácilmente, usamos la función attach()
Realizamos un estudio de las variables sociodemográficas.
| 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()| 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()| Primaria | Secundaria | |
|---|---|---|
| Femenino | 871 | 468 |
| Masculino | 172 | 116 |
| No binario | 10 | 2 |
| Postuniversitarios | Preuniversitarios | Universitarios | |
|---|---|---|---|
| Femenino | 242 | 472 | 625 |
| Masculino | 56 | 92 | 140 |
| No binario | 2 | 4 | 6 |
| 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()Realizamos una regresión lineal con todos las variables.
##
## 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
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.
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.
##
## 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
A cotinuación presentamos el modelo de regresión lineal.
##
## 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
##
##
## 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)
Tal como podemos observar el vector que contiene los residuos es realmente bajo.
## [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.
La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.
##
## 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).
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)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
## 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.
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.
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")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")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`))## [1] 0.4170303
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.
Para realizar el el modelo de regresión con componentes principales, directamente eliminaremos las variables sociodemográficas
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
## 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.
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%)
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.
##
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)
Tal como podemos observar el vector que contiene los residuos es realmente bajo.
## [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.
La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.
##
## 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).
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)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
## 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.
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.
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")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")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`))## [1] 0.3784305
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.
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
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, ]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.
Observamos que nos realizará 100 modelos con 7 variables.
## [1] 7 100
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.
## (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
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.
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.
## [1] 0.0905384
En el caso del gráfico, sería el logaritmo. Es decir, el mejor lambda sería en -2.401981
## [1] -2.401981
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.
## (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`))## s1
## [1,] 0.36523
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)
En primer lugar ajustamos un modelo de regresión Lasso ajustando el alfa = 1.
Observamos que nos realizará 100 modelos con 7 variables.
## [1] 7 100
A modo de ejemplo, podemos observar el lamda de un modelo en concreto. En este caso el modelo 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.
## (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
Para poder concretar cuál es el mejor lambda, usamos la siguiente formulación. En este caso, como podemos observar es en 0.003105892
## [1] 0.003105892
En el caso del gráfico, sería el logaritmo. Es decir, el mejor lambda sería en -5.774454
## [1] -5.774454
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.
## (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`))## s1
## [1,] 0.3652557
Partiremos de la base de datos EdDit2. Como todas las variables tienen la misma escala de medición, no es necesario normalizar los resultados
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%).
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
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
## RMSE Rsquared MAE
## 1.2281651 0.2639702 1.0059652
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
La tabla con los valores de las podas (óptimas, dependiendo del parámetro de complejidad) está almacenada en la componente $cptable.
## 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.
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
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.
## RMSE Rsquared MAE
## 1.2384241 0.2504594 1.0088387
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ó.
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.
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.
La base de datos es la siguiente.
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, ]Realizamos la regresión lineal.
##
## 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
Tal como podemos observar el vector que contiene los residuos es realmente bajo.
## [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.
La prueba Sahpiro-Wik nos indica que no existen diferencias significativas en la distribución.
##
## 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).
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)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
## 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.
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.
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")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")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`))## [1] 0.3592811
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.