library(readxl)
caso <- read_excel("C:/Users/PACHO/Downloads/caso.xlsx")
Para iniciar el análisis de los datos, comenzamos por obtener el diagrama de dispersión respecto al desempleo vs. la cantidad de homicidios.
attach(caso)
plot(desempleo, homicidios)
Cuando calculamos su coeficiente de correlación tenemos que:
cor(desempleo, homicidios)
## [1] 0.9608183
Un valor aceptable para una regresión lineal sencilla, por lo que podemos proceder a realizar la respectiva regresión, dándonos como resultado:
behavior = lm(homicidios~desempleo)
summary(behavior)
##
## Call:
## lm(formula = homicidios ~ desempleo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19.335 -11.928 -4.618 6.006 62.193
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -628.936 35.846 -17.55 <2e-16 ***
## desempleo 63.751 2.983 21.37 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 18.06 on 38 degrees of freedom
## Multiple R-squared: 0.9232, Adjusted R-squared: 0.9212
## F-statistic: 456.6 on 1 and 38 DF, p-value: < 2.2e-16
Al ver los datos obtenidos del estudio tenemos una predicción de que el comportamiento de los datos presenta una pendiente de 63.751, esto dándonos a entender que por cada 1% que aumenta el desempleo, la cantidad de homicidios aumentara en 64 casos por cada 100000 habitantes. Como podemos observar, el error que se presenta en esta pendiente es aproximadamente 3, un error equivalente al 4.6% de la pendiente, que aunque pequeño relevante al momento de trabajar en grandes porcentajes.
Si revisamos el coeficiente R2, tenemos que es inferior a 0.93, lo que nos indica que la regresión no tendrá una predicción muy precisa. Considerando esto es necesario ver como es el comportamiento de los datos respecto a la predicción realizada:
par(mfrow=c(2,2))
plot(behavior)
Como podemos apreciar en las distintas gráficas, el ajuste solo presenta una alta correlación en un pequeño tramo de datos, ubicado al centro de los datos. Si observamos los tramos más alejados al centro de los datos, veremos que la relación con dichos datos se vuelve cada vez mayor. Si observamos nuevamente los datos, podemos apreciar que su comportamiento se asemeja más al comportamiento de una función logarítmica, por lo que podremos procesar los datos, haciendo uso del logaritmo natural, para lineal, izar y generar una predicción más adecuada.
exponentialBehavior = lm(log(homicidios)~desempleo)
summary(exponentialBehavior)
##
## Call:
## lm(formula = log(homicidios) ~ desempleo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.08538 -0.02273 0.00001 0.02223 0.09549
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.027556 0.075235 -13.66 3.08e-16 ***
## desempleo 0.486124 0.006262 77.64 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03791 on 38 degrees of freedom
## Multiple R-squared: 0.9937, Adjusted R-squared: 0.9936
## F-statistic: 6027 on 1 and 38 DF, p-value: < 2.2e-16
Como podemos apreciar, en esta ocasión el coeficiente es de valor 0.9937, un valor muy cercano a 1, lo que nos indica que esta predicción es mucho más exacta, rozando el hecho de casi ser perfecta. Por lo que si observamos el comportamiento de los datos vs. la predicción adecuada tendremos:
par(mfrow=c(2,2))
plot(exponentialBehavior)
A diferencia de la anterior regresión, esta presenta una mayor cohesión con los datos, siendo casi perfectamente alineados con los mismos. Si deseamos usar los datos actuales para realizar una predicción, debemos tener en cuenta que debemos hacer uso de la exponencial para convertir los resultados a las medidas deseadas.
Deseamos saber la predicción en el caso de que el nivel de desempleo sea de 11%, por lo que utilizamos los datos obtenidos por medio de la regresión exponencial tomando las consideraciones necesarias:
exp(predict(exponentialBehavior, newdata = list(desempleo=11)))
## 1
## 75.17389
Como podemos ver, se espera que la cantidad de homicidios sea de 75 casos por cada 100000 habitantes.