Empezamos cagando la base de datos en R studio:
datos_acoso <- read_csv("C:/Users/Admin/Desktop/datos.acoso.csv")
acoso<-data.frame(datos_acoso[,-1])
attach(acoso)
Presentamos el modelo de regresión lineal probabilístico dado por: \[\begin{align*} womenDangerIndex=b_0+b_1\,intentionalHomicide+b_2\, streetSafety+b_3\, nonPartnerViolence+\\ \beta_4\,intimatePartenerViolence + \epsilon, \end{align*}\] de donde su ecuación de predicción es dada mediante: \[\begin{align*} \hat{womensDangerIndex}=\beta_0+\beta_1\, \hat{intentionalHomicide}+ \beta_2 \,\hat{streetSafety}+\beta_3\,\hat{nonPartnerViolence}+\\\beta_4\, \hat{intimatePartnerViolence} \end{align*}\]
con \(\beta_0=\hat{b_0},\, \beta{1}=\hat{b_1},\, \beta_{2}=\hat{b_{2}},\, \beta_{3}=\hat{b_3}\in \mathbb{R}.\)
Observamos la relación entre variables:
womensDangerIndex streetSafety intentionalHomicide
womensDangerIndex 1.0000000 0.76792796 0.67370371
streetSafety 0.7679280 1.00000000 0.55920107
intentionalHomicide 0.6737037 0.55920107 1.00000000
nonPartnerViolence 0.1229200 -0.01700577 0.31833936
intimatePartnerViolence 0.4919721 0.20556002 0.08095571
nonPartnerViolence intimatePartnerViolence
womensDangerIndex 0.12292001 0.49197214
streetSafety -0.01700577 0.20556002
intentionalHomicide 0.31833936 0.08095571
nonPartnerViolence 1.00000000 0.02533859
intimatePartnerViolence 0.02533859 1.00000000
Por lo tanto observamos lo siguiente:
Ahora bien, graficamos la relación de las variables del modelo.
### Ajuste del Modelo Ajustamos el modelo de regresión lineal donde
obtenemos:
modelo<-lm(womensDangerIndex~intentionalHomicide+streetSafety+nonPartnerViolence+
intimatePartnerViolence,data = acoso)
summary(modelo)
Call:
lm(formula = womensDangerIndex ~ intentionalHomicide + streetSafety +
nonPartnerViolence + intimatePartnerViolence, data = acoso)
Residuals:
Min 1Q Median 3Q Max
-82.18 -44.87 -12.99 50.28 96.93
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 118.6991 31.8418 3.728 0.000538 ***
intentionalHomicide 2.4655 0.5792 4.257 0.000104 ***
streetSafety 2.7537 0.4779 5.762 7.04e-07 ***
nonPartnerViolence 0.0188 0.3640 0.052 0.959043
intimatePartnerViolence 2.0683 0.3882 5.327 3.07e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 56.76 on 45 degrees of freedom
Multiple R-squared: 0.8019, Adjusted R-squared: 0.7843
F-statistic: 45.54 on 4 and 45 DF, p-value: 2.879e-15
Observamos que las variables son significativas, excepto ‘nonPartnerViolence’, en consecuencia la eliminamos del modelo, obteniendo;
mod.n<-lm(womensDangerIndex~intentionalHomicide+streetSafety+intimatePartnerViolence,
data = acoso)
summary(mod.n)
Call:
lm(formula = womensDangerIndex ~ intentionalHomicide + streetSafety +
intimatePartnerViolence, data = acoso)
Residuals:
Min 1Q Median 3Q Max
-82.78 -44.70 -13.29 50.35 96.71
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 119.5445 27.0136 4.425 5.87e-05 ***
intentionalHomicide 2.4774 0.5258 4.712 2.29e-05 ***
streetSafety 2.7474 0.4574 6.007 2.82e-07 ***
intimatePartnerViolence 2.0693 0.3835 5.395 2.31e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 56.14 on 46 degrees of freedom
Multiple R-squared: 0.8019, Adjusted R-squared: 0.789
F-statistic: 62.07 on 3 and 46 DF, p-value: 3.335e-16
Por otro lado, como \(r^2= 0.8019\) entonces el modelo de predicción es bueno. Así tenemos: \[\begin{equation} y=119.5445+2.4774\,\hat{intentionalHomicide}+2.7474\,\hat{streetSafety}+2.0693\,\hat{intimatePartneViolence}, \end{equation}\] siendo \(y:= \hat{womensDangerIndex}\).
Es evidente que el modelo es lineal con respecto a los parámetros.
Jarque-Bera Normality Test
data: as.vector(mod.n$residuals)
JB = 3.7582, p-value = 0.1527
alternative hypothesis: greater
Graficamos los residuos contra los valores ajustados,
usamos los contrastes para asegurar la existencia de homocedasticidad en
cada variable, en efecto.
Goldfeld-Quandt test
data: mod.n
GQ = 1.3023, df1 = 21, df2 = 21, p-value = 0.2752
alternative hypothesis: variance increases from segment 1 to 2
Goldfeld-Quandt test
data: mod.n
GQ = 1.0436, df1 = 21, df2 = 21, p-value = 0.4615
alternative hypothesis: variance increases from segment 1 to 2
Goldfeld-Quandt test
data: mod.n
GQ = 0.45145, df1 = 21, df2 = 21, p-value = 0.9623
alternative hypothesis: variance increases from segment 1 to 2
Goldfeld-Quandt test
data: mod.n
GQ = 1.5479, df1 = 21, df2 = 21, p-value = 0.1622
alternative hypothesis: variance increases from segment 1 to 2
Como \(p-valor>0.05\) para cada contraste de cada variable, entonces afirmamos que el modelo es homocedástico.
Puesto que es una data de corte transversal no se analiza la autocorrelación, pues, se la hace en general para datos de series temporales.
car::vif(mod.n)
intentionalHomicide streetSafety intimatePartnerViolence
1.457540 1.511871 1.045955
como el factor de inflación de las variables no es mayor que 10, entonces el modelo no posee multicolinealidad.
resettest(mod.n)
RESET test
data: mod.n
RESET = 0.33954, df1 = 2, df2 = 44, p-value = 0.7139
raintest(mod.n)
Rainbow test
data: mod.n
Rain = 1.1254, df1 = 25, df2 = 21, p-value = 0.3949
notamos que el \(p-valor>0.05\) para los dos contrastes, entonces el modelo está bien especificado.
ds<-efp(mod.n,data = acoso,type = "OLS-CUSUM")
olms<-efp(mod.n,data = acoso,type = "OLS-MOSUM")
Graficamos,
concluimos que los parámetros si son estables. Y en consecuencia el
modelo “mod.n” está bien definido.
Usando las hipótesis del problema, definimos:
pre<-data.frame(intentionalHomicide=c(150,170,200),streetSafety=c(200,60,100),
intimatePartnerViolence=c(60,40,100))
predict(object = mod.n,newdata = pre)
1 2 3
1164.8011 788.3211 1096.6972
Analicemos los 3 escenarios, esto es: