14  Regresión lineal múltiple II

#getwd() 
#setwd("")
library(rio)
data = import("./data/s14/ACOSO_2019.sav")

NOTA: argumentar con datos

Ejemplo 1: Determinates del acoso callejero.

¿QUÉ DETERMINA LOS EVENTOS DE ACOSO CALLEJERO?

ACOSO CALLEJEROR -> # de eventos de acisi callejero que sufrio una persona.

VD -> # de eventos de acoso callejero ->

VI -> edad (numérica) (EDAD) Sexo (Dicotómica) (SEXO) Nivel socioeconómico (NSEGRUP)

names(data) # lectura de la base de datos
 [1] "SERIE"         "NVONRO"        "NSEGRUP"       "NSE"          
 [5] "SEXO"          "GEDAD"         "EDAD"          "NIVEDU"       
 [9] "P10A"          "P10B"          "P10C"          "P11A"         
[13] "P11B"          "P11C"          "P12A"          "P12B"         
[17] "P12C"          "P12D"          "P12E"          "P12F"         
[21] "P12G"          "P12H"          "P13A"          "P13B"         
[25] "P13C"          "P13D"          "P13E"          "P13F"         
[29] "P13G"          "P13H"          "indiceAC"      "indiceAC_dico"
class(data$EDAD)
[1] "numeric"
class(data$SEXO)
[1] "numeric"
class(data$NSEGRUP)
[1] "numeric"
str(data$EDAD)
 num [1:680] 52 48 62 37 34 60 26 18 38 39 ...
 - attr(*, "format.spss")= chr "F8.2"
str(data$SEXO)
 num [1:680] 2 1 2 2 1 1 2 1 1 2 ...
 - attr(*, "format.spss")= chr "F8.2"
str(data$NSEGRUP)
 num [1:680] 3 2 3 2 2 1 2 1 1 1 ...
 - attr(*, "format.spss")= chr "F8.2"
table(data$EDAD)

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 
20 20 19 15 19 10 13 19 11  8 19 24 27  7 14 12  8 14 15 10 18 11 16 12 17 18 
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 
17 21 11 11 14  3 12  8 10 11 10  8  7  4  5  6 14  7  9  6 10  8  8  5  3  4 
70 71 72 73 74 75 76 77 78 79 80 82 83 84 85 89 90 
 9  3  5  1  5  7  3  3  3  2  2  2  2  2  1  1  1 
table(data$SEXO)

  1   2 
326 354 
table(data$NSEGRUP)

  1   2   3 
163 330 187 
+ SEXO (Está como numérica)
data$SEXO<-as.factor(data$SEXO) # NECESITAMOS CONVERTIRLO A FACTOR de numérica
levels(data$SEXO)<-c("Hombre","Mujer")

# OTRO CÓDIGO PARA CORRER SI NO FUNCIONA el anterior: 
# data$SEXO=factor(data$SEXO, levels = levels(data$SEXO), 
#                  labels = c("Hombre","Mujer"))

table(data$SEXO)

Hombre  Mujer 
   326    354 
+ NIVEL SOCIECONÓMICO (NSEGRUP) (hacer esto en una variable categorica ordinal independiente)

es una variable ordinal, pero la vamos a definir como una variable factor con tres niveles

data$NSEGRUP = as.factor(data$NSEGRUP)
data$NSEGRUP = factor(data$NSEGRUP, levels = levels(data$NSEGRUP), 
                      labels = c("AB", "C", "DE"))
table(data$NSEGRUP)

 AB   C  DE 
163 330 187 
####RECORDAR:
1 A/B 2 C 3 D/D

CONVERTIR A UNA VARIABLE EN DUMMY (1 Y 0) / DICOTOMIZACIÓN: EN CASOS DONDE LA VARIABLE CATEGORICA TENGA MÁS DE 2 CATEGORIAS ES CONVENIENTE CONVERTIRLA EN TANTO EL NUMERO DE CATEOGRIAS TENGA COMO VARIABLES DICOTOMICAS QUE PODAMOS GENERAR ->

14.1 AHORA SON 3 VARIABLES DICOTÓMICAS:

NSE_A/B   NSE_C   NSE_D/E

SÍ 1 1 1 NO 0 0 0 —————————— Es más sencillo interpretarlo así -> como dicotomica (tambien cuando es numerica)

NOTA: Cuando tenemos variables independientes categoricas de más de dos grupos, (si está en numérica) LA VOLVEMOS A FACTOR y LUEGO LA CONVERTIMOS EN VARIABLES DUMMY.

Por ejemplo:

Diría usted que… ¿es más riesgoso para un hombre, para una mujer o es igual de riesgoso para ambos?

(POLITÓMICA) P11A: ——– 1 Hombre 2 Mujer 3 Ambos ——–

DICOTOMIZACIÓN:

14.2 AHORA SON 3 VARIABLES DICOTÓMICAS:

P11A_Hombre   P11A_Mujer   P11A_Ambos

SÍ 1 1 1 NO 0 0 0 ——————————

NOTA –> DEPENDE UTILIZAR LA DICOTOMIZACIÓN

POR EJEMPLO: ORDINAL DE 4 CATEGORIAS ¿Qué tan seguro(a) o inseguro(a) se siente usted caminando en la calle…

14.3 P10A

1 Muy seguro(a) 2 Seguro(a) 3 Inseguro(a) 4 Muy inseguro(a) ——–

DICOTOMIZACIÓN:

14.4 AHORA SON 4 VARIABLES DICOTÓMICAS:

P10A_Muy seguro(a)   P10A_seguro(a)    P10A_Inseguro(a)     P10A_Muy inseguro(a) 

SÍ 1 1 1 1 NO 0 0 0 0 ——————————————————————————————

SI LO HACEMOS ASÍ PODEMOS DISTINGUIR Y COMPARAR MEJOR LAS VARIABLES. Si nos interesa disintguir entre -> P10A_Inseguro(a) y P10A_Muy inseguro(a) ver la base de datos si hay mucha diferencia entre las variables y así usar esta forma o la siguiente:

PERO… SI SOLO ME INTERESA SEGURIDAD E INSEGURIDAD -> TAMBIÉN PODEMOS CONVERTIRLOS EN 2 GRUPOS DE VARIABLES DICOTOMICAS:

14.5 ENTONCES:

| P10A_Muy seguro(a)/P10A_seguro(a) | P10A_Inseguro(a)/P10A_Muy inseguro(a) | SÍ | 1 | 1 | NO | 0 | 0 |
———————————————————————————-

###ESTO SE LLAMA TRATAMIENTO DE LA BASE.


Continuando…

Dicotomizaremos NSEGRUP:

library(fastDummies)
data=dummy_cols(data, select_columns = c("SEXO", "NSEGRUP"))
names(data)
 [1] "SERIE"         "NVONRO"        "NSEGRUP"       "NSE"          
 [5] "SEXO"          "GEDAD"         "EDAD"          "NIVEDU"       
 [9] "P10A"          "P10B"          "P10C"          "P11A"         
[13] "P11B"          "P11C"          "P12A"          "P12B"         
[17] "P12C"          "P12D"          "P12E"          "P12F"         
[21] "P12G"          "P12H"          "P13A"          "P13B"         
[25] "P13C"          "P13D"          "P13E"          "P13F"         
[29] "P13G"          "P13H"          "indiceAC"      "indiceAC_dico"
[33] "SEXO_Hombre"   "SEXO_Mujer"    "NSEGRUP_AB"    "NSEGRUP_C"    
[37] "NSEGRUP_DE"   

CREAMOS LA VARIABLE DEPENDIENTE (ÍNDICE DE ACOSO):

ACOSO <- data$P12A+data$P12B+data$P12C+data$P12D+data$P12E+data$P12F+data$P12G+data$P12H

data$ACOSO <- data$P12A+data$P12B+data$P12C+data$P12D+data$P12E+data$P12F+data$P12G+data$P12H #Para crear como variable independiente (VariablesSeleccionadas)

summary(ACOSO)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  0.000   0.000   0.000   1.465   3.000   8.000       1 
modelo1<-lm(ACOSO ~ EDAD + SEXO + NSEGRUP, data = data)

summary(modelo1)

Call:
lm(formula = ACOSO ~ EDAD + SEXO + NSEGRUP, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3776 -1.2631 -0.4456  0.8324  8.1582 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.529154   0.237491  10.649   <2e-16 ***
EDAD        -0.040254   0.004143  -9.715   <2e-16 ***
SEXOMujer    1.653558   0.138687  11.923   <2e-16 ***
NSEGRUPC    -0.352581   0.172819  -2.040   0.0417 *  
NSEGRUPDE   -0.264426   0.193368  -1.367   0.1719    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.801 on 674 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2633,    Adjusted R-squared:  0.2589 
F-statistic: 60.22 on 4 and 674 DF,  p-value: < 2.2e-16

IDENTIFICAMOS: NSEGRUPC -0.352581 NSEGRUPDE -0.264426

¿cómo interpreto de cómo influye C, D o E?

SEXOMujer 1.653558 -> CUANDO UNA Persona es mujer, en comparacion de ser hombre, aumenta el numero de eventos de acaso callejero en 1.653558 eventos (casi dos eventos).

R está tomando como referencia al valor menor (Hombre), por ello, NO aparece en la tabla 1: Hombre 2: Mujer

En el caso de NSEGRUP se toma como referencia a NSEGRUP_A 1: A

por eso compara “C” con “A” y “DE” con “A”

ENTONCES, SI QUEREMOS TOMAR COMO REFERENCIA A LA MUJER -> especificamos:

REFERENCIA CON LA MUJER Y CON NIVEL SOCIOECONOMICO NSEGRUP_C + NSEGRUP_AB (O SEA, EL VALOR DE REFERENCIA ES EL QUE NO SE COLOCA EN EL CODIGO)
modelo2 <- lm(ACOSO ~ EDAD + SEXO_Hombre + NSEGRUP_C + NSEGRUP_AB, data = data)

summary(modelo2)

Call:
lm(formula = ACOSO ~ EDAD + SEXO_Hombre + NSEGRUP_C + NSEGRUP_AB, 
    data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3776 -1.2631 -0.4456  0.8324  8.1582 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.918286   0.228369  17.158   <2e-16 ***
EDAD        -0.040254   0.004143  -9.715   <2e-16 ***
SEXO_Hombre -1.653558   0.138687 -11.923   <2e-16 ***
NSEGRUP_C   -0.088155   0.165477  -0.533    0.594    
NSEGRUP_AB   0.264426   0.193368   1.367    0.172    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.801 on 674 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2633,    Adjusted R-squared:  0.2589 
F-statistic: 60.22 on 4 and 674 DF,  p-value: < 2.2e-16

LA DIFERENCIA ENTRE EL MODELO 1 Y modelo2 es la interpretacion:

SEXO_Hombre -1.653558
NSEGRUP_C -0.088155
NSEGRUP_AB 0.264426

  • CUANDO UNA Persona es hombre, en comparación de ser mujer, disminuye el numero de eventos de acaso callejero en 1.653558 eventos (casi dos eventos).

LA DOS NO SON SIGNIFICATIVAS (P-value mayor a 0.05), pero vemos el sentido:

  • Cuando una persona es hombre, en comparación de ser mujer, y es parte del grupo socioeconomico C, disminuye el numero de eventos de acaso callejero en 0.088155 eventos.

  • Cuando una persona es hombre, en comparación de ser mujer, y es parte del grupo socioeconomico A/B, aumenta el numero de eventos de acaso callejero en 0.264426 eventos.


  • ¿Qué sucede si aumento la variable caminar en la noche (seguridad)¿ -> P10B
table(data$P10B)

  1   2   3   4 
  4  28 289 359 

1 = muy seguro 4 = muy inseguro ——————————————————————————- NO HACER -> si lo considramos como numerica, cuando interpretamos sería dificil

modelo3 <- lm(ACOSO ~ P10B, data = data)

summary(modelo3)

Call:
lm(formula = ACOSO ~ P10B, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-1.594 -1.594 -1.349  1.406  6.651 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)   0.6133     0.4666   1.314   0.1891  
P10B          0.2453     0.1323   1.854   0.0642 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.089 on 677 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.005051,  Adjusted R-squared:  0.003582 
F-statistic: 3.437 on 1 and 677 DF,  p-value: 0.06419

¿CÓMO SE INTERPRETARÍA? + POR CADA NIVEL QUE UNA PERSONA AUMENTA SU SENSACIÓN DE INSEGURIDAD, EL NUMERO DE EVENTOS DE ACASO AUMENTA EN 0.2453
——————————————-

ENTONCES, MEJOR DICOTOMIZAR:

en este caso,dicotimizar agrupando

1 -> Formateamos

str(data$P10B)
 num [1:680] 4 3 3 4 4 4 1 3 2 4 ...
 - attr(*, "format.spss")= chr "F8.2"
data$P10B = as.numeric(data$P10B)
  • Recodificando
library(car)
data$seguridad = recode(data$P10B, "c(1,2) = 'Seguro'; c(3,4) = 'Inseguro'")
modelo4 <- lm(ACOSO ~ seguridad, data = data)

summary(modelo4)

Call:
lm(formula = ACOSO ~ seguridad, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-1.504 -1.504 -1.504  1.496  6.496 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)      1.50386    0.08205   18.33   <2e-16 ***
seguridadSeguro -0.81636    0.37794   -2.16   0.0311 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.087 on 677 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.006845,  Adjusted R-squared:  0.005378 
F-statistic: 4.666 on 1 and 677 DF,  p-value: 0.03112

seguridadSeguro -0.81636

INTERPRETACIÓN:

cuando una persona se siente segura, en comparación de una persona que se siente insegura, disminuye el numero de eventos de acoso callejero en 0.81636.

Más fácil de interpretar

La recomendación es que las variables independientes sean numerica o dicotomicas. si no son dictomicas, debemos convertirlas.


  • Ahora agregamos EDAD y SEXO:
modelo5 <- lm(ACOSO ~ seguridad + EDAD + SEXO, data = data)
summary(modelo5)

Call:
lm(formula = ACOSO ~ seguridad + EDAD + SEXO, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1415 -1.2696 -0.4685  0.8080  8.0048 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      2.305609   0.201179  11.461   <2e-16 ***
seguridadSeguro -0.567257   0.326975  -1.735   0.0832 .  
EDAD            -0.039834   0.004135  -9.634   <2e-16 ***
SEXOMujer        1.632584   0.138712  11.770   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.802 on 675 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.262, Adjusted R-squared:  0.2587 
F-statistic: 79.87 on 3 and 675 DF,  p-value: < 2.2e-16
  • el modelo sí es valido (p-value: < 2.2e-16)

  • explica el 26% de la variabilidad de los datos

  • si cada variable independiente influye:

seguridadSeguro 0.0832 .
EDAD <2e-16 *** SEXOMujer <2e-16

Ahora seguridad ya no es tan relevante. las otras dos sí.

RECORDAR: hay una relacion espurea y al incorporar otras variables, esa relacion desaparece -> como en este caso: en el modelo4, hay una relacion entre seguridad y numero de eventos. Pero al incorporar las nuevas variables en el nuevo modelo 5, dicha relación desaparece.

  • Por cada año que una persona aumenta su edad, el numero de eventos de acosos callejero disminuye en 0.039834 eventos.

  • VIENDO LOS COEFICIENTES ESTANDARIZADOS

#lm.beta(modelo5)

#Conlusión: (las variables que impactan más son EDAD y luego SEXO)

#INTERPRETACIÓN: + Entonces, la violencia no ocurre por igual entre hombres y mujeres. eN EFECTO, CUANDO HABLAMOS de acoso callejero, hay evidencia que corrobora que la muejres registra mayor numero de eventos de acoso callejero. Aun solamente por la condicion de ser mujer se incrementa en al menos (1.632584) 2 eventos de acoso callejero más que sus pares hombres. En lo que refiere a edad, son las muejeres más jovenes las que reciben mayor cantidad de eventos de acoso callejero. En suma, Mientras mas jóvenes y sean mujeres, son más propensas a sufrir MAYOR NUMERo de eventos de acoso callejero.

  • Tambien se ha indagado si el nivel sociecnomico es un factor, pero se ha encontrado de que no hay evidencia suficiente de que ocurra dependiendo el nivel sociecomonico. Es decor, estos acosos callejeros ocurre sin importar el numero de eventos de caso callejero.

  • Aun se ha evidenciado en el modelo4 una relacion espurea entre el sensación de seguridad de caminar en la calle y el numero de eventos de acoso callejeros. pero está relacion deja de exisitir cuando se agragan las variables EDAD y SEXO.


14.6 ¿Qué hacer en estas situaciones en las que tenemos varias variables y no sabemos cual influye más en otra?

  • ¿Cuál de estas variables puede ayudarnos a explicar mejor la variable dependiente?

  • En general se suele decir, que impacta más las variables sociodemograficas (edad, sexo, Nivel sociecnomica…). Pero también pueden impactar otras variables.

  • RECORDAR -> SI PARTIMOS DESDE CERO -> CUANDO NO SE NOS DA NINGUNA VARIABLE INDEPENDIENTE, TENEMOS QUE BUSCARLAS.

  • ENTONCES,

  1. Realizar el analisis bivariado
  2. ensayar cuales serian las variables independientes. …

HAY MÉTODOS PARA SELECCIONAR QUÉ VARIABLES INDEPENDIENTES SON MEJORES. ADEMÁS NO DEBEN ESTAR RELACIONADAS ENTRE SI. FORWARD (IR CONSTRUYENDO) COLOCANDO VARIABLES POR VARIABLE BACKWARD (COLOCAS TODAS LAS VARAIBLES Y LUEGO VAN ELIMINANDO LAS QUE NO SON SIGNFICATIVAS)

14.7 1. UTILIZANDO EL MÉTODO

  • Filtrando y creando nueva base:
VariablesSeleccionadas = c("ACOSO", "SEXO_Mujer", "NIVEDU", "NSEGRUP", 
                           "NSEGRUP_AB", "NSEGRUP_DE", "seguridad", "EDAD")

subdata = data[VariablesSeleccionadas]
  • INSTALAR y definimos el modelo
library(MASS)

#ModeloCompleto -> Con todas las variables
full.model <- lm(ACOSO ~ ., data = subdata)
summary(full.model)

Call:
lm(formula = ACOSO ~ ., data = subdata)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1780 -1.2673 -0.4725  0.8406  8.0352 

Coefficients: (2 not defined because of singularities)
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)      2.00002    0.48747   4.103 4.58e-05 ***
SEXO_Mujer       1.65965    0.13964  11.886  < 2e-16 ***
NIVEDU           0.06269    0.04683   1.339   0.1811    
NSEGRUPC        -0.22737    0.19813  -1.148   0.2516    
NSEGRUPDE       -0.06188    0.24797  -0.250   0.8030    
NSEGRUP_AB            NA         NA      NA       NA    
NSEGRUP_DE            NA         NA      NA       NA    
seguridadSeguro -0.57372    0.32631  -1.758   0.0792 .  
EDAD            -0.03874    0.00429  -9.030  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.798 on 672 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2687,    Adjusted R-squared:  0.2621 
F-statistic: 41.14 on 6 and 672 DF,  p-value: < 2.2e-16

14.8 2. MODELO HACIA ADELANTE (Forward) + summary

model.hacia.delante <- stepAIC(full.model, direction = "forward", 
                      trace = TRUE)
Start:  AIC=803.31
ACOSO ~ SEXO_Mujer + NIVEDU + NSEGRUP + NSEGRUP_AB + NSEGRUP_DE + 
    seguridad + EDAD
summary(model.hacia.delante)

Call:
lm(formula = ACOSO ~ SEXO_Mujer + NIVEDU + NSEGRUP + NSEGRUP_AB + 
    NSEGRUP_DE + seguridad + EDAD, data = subdata)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1780 -1.2673 -0.4725  0.8406  8.0352 

Coefficients: (2 not defined because of singularities)
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)      2.00002    0.48747   4.103 4.58e-05 ***
SEXO_Mujer       1.65965    0.13964  11.886  < 2e-16 ***
NIVEDU           0.06269    0.04683   1.339   0.1811    
NSEGRUPC        -0.22737    0.19813  -1.148   0.2516    
NSEGRUPDE       -0.06188    0.24797  -0.250   0.8030    
NSEGRUP_AB            NA         NA      NA       NA    
NSEGRUP_DE            NA         NA      NA       NA    
seguridadSeguro -0.57372    0.32631  -1.758   0.0792 .  
EDAD            -0.03874    0.00429  -9.030  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.798 on 672 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2687,    Adjusted R-squared:  0.2621 
F-statistic: 41.14 on 6 and 672 DF,  p-value: < 2.2e-16

14.9 3. HACIA ATRÁS (Backward)+ summary

model.hacia.atras <- stepAIC(full.model, direction = "backward", 
                      trace = TRUE)
Start:  AIC=803.31
ACOSO ~ SEXO_Mujer + NIVEDU + NSEGRUP + NSEGRUP_AB + NSEGRUP_DE + 
    seguridad + EDAD


Step:  AIC=803.31
ACOSO ~ SEXO_Mujer + NIVEDU + NSEGRUP + NSEGRUP_AB + seguridad + 
    EDAD


Step:  AIC=803.31
ACOSO ~ SEXO_Mujer + NIVEDU + NSEGRUP + seguridad + EDAD

             Df Sum of Sq    RSS    AIC
- NSEGRUP     2      6.39 2177.7 801.30
- NIVEDU      1      5.79 2177.1 803.12
<none>                    2171.3 803.31
- seguridad   1      9.99 2181.3 804.43
- EDAD        1    263.48 2434.8 879.08
- SEXO_Mujer  1    456.45 2627.8 930.87

Step:  AIC=801.3
ACOSO ~ SEXO_Mujer + NIVEDU + seguridad + EDAD

             Df Sum of Sq    RSS    AIC
<none>                    2177.7 801.30
- seguridad   1      9.79 2187.5 802.35
- NIVEDU      1     13.45 2191.1 803.49
- EDAD        1    263.76 2441.4 876.93
- SEXO_Mujer  1    462.11 2639.8 929.97
summary(model.hacia.atras)

Call:
lm(formula = ACOSO ~ SEXO_Mujer + NIVEDU + seguridad + EDAD, 
    data = subdata)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0796 -1.2638 -0.4384  0.8233  7.9170 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      1.772577   0.329427   5.381 1.02e-07 ***
SEXO_Mujer       1.667982   0.139472  11.959  < 2e-16 ***
NIVEDU           0.074118   0.036323   2.041   0.0417 *  
seguridadSeguro -0.567958   0.326212  -1.741   0.0821 .  
EDAD            -0.038075   0.004214  -9.035  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.797 on 674 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.2665,    Adjusted R-squared:  0.2622 
F-statistic: 61.22 on 4 and 674 DF,  p-value: < 2.2e-16
  • ¿CUAL SERIA EL MEJOR MODELO EN BASE A LAS VARIABLES INDEPENDIENTES?

El mejor modelo que explica: - CON ESTE CÓDIGO NO NECESITAMOS CREAR UNA SUBDATA

library(leaps)
modelo = regsubsets(
  ACOSO ~ SEXO + EDAD + seguridad + NIVEDU + NSEGRUP_AB + NSEGRUP_DE,
  data = data, nbest = 1, nvmax = 10) 
summary(modelo)
Subset selection object
Call: regsubsets.formula(ACOSO ~ SEXO + EDAD + seguridad + NIVEDU + 
    NSEGRUP_AB + NSEGRUP_DE, data = data, nbest = 1, nvmax = 10)
6 Variables  (and intercept)
                Forced in Forced out
SEXOMujer           FALSE      FALSE
EDAD                FALSE      FALSE
seguridadSeguro     FALSE      FALSE
NIVEDU              FALSE      FALSE
NSEGRUP_AB          FALSE      FALSE
NSEGRUP_DE          FALSE      FALSE
1 subsets of each size up to 6
Selection Algorithm: exhaustive
         SEXOMujer EDAD seguridadSeguro NIVEDU NSEGRUP_AB NSEGRUP_DE
1  ( 1 ) "*"       " "  " "             " "    " "        " "       
2  ( 1 ) "*"       "*"  " "             " "    " "        " "       
3  ( 1 ) "*"       "*"  " "             "*"    " "        " "       
4  ( 1 ) "*"       "*"  "*"             "*"    " "        " "       
5  ( 1 ) "*"       "*"  "*"             "*"    "*"        " "       
6  ( 1 ) "*"       "*"  "*"             "*"    "*"        "*"       
  • fijarnos en el asterisco:
  • Por ejemplo, la variable SEXO es significativo en todos los modelos

Código para el gráfico

#plot(x, labels=obj$xnames, main=NULL, 
     #scale=c("bic", "Cp", "adjr2", "r2"),
     #col=gray(seq(0, 0.9, length = 10)),...)