Diagnóstico de modelos

supuestos

Después de implementar una regresión e interpretarla, debemos asegurarnos de que esta cumple los supuestos básicos para que podamos confiar en que los resultados y nuestra interpretación son adecuados… o debemos realizar algún cambio.

El cumplimiento de estos supuestos lo debemos observar en los residuos y no tanto en los datos originales.

Podemos chequear los supuestos mediante tests y mediante observación gráfica de nuestros datos. Para la observación simplemente podemos pedir a R que nos muestre los gráficos de nuestra regresión con la función plot().

los residuos se distribuyen normalmente

Esto lo podemos observar de dos maneras. Observando simplemente la “forma” de los residuos en un histograma

hist(feliz3$residuals, breaks = 80)

o en un scatterplot

plot(model$residuals)

Otra forma es obervar el gráfico Q-Q que se obtiene de “graficando” el modelo.

plot(model, which = 2)

también el gráfico de R nos muestra esta distribución plot(feliz3, which = 1)

la idea es que el histograma muestre una distribución normal y que el scatterplot no muestre algún patrón, o que la línea roja en el gráfico de residuos vs predichos sea horizontal

la varianza de los residuos es homogenea

esto también lo podemos ver en el scatterplot, pero uno de los resultados que nos muestra plot() es el gráfico “scale-location”: plot(feliz3, which = 3)

Lo que esperamos es que la línea roja sea horizontal y que no haya patrones en los residuos.

las variables independientes no están asociadas

Esperamos que las variables independientes no estén asociadas. Para ello podemos hacer un test de correlación que se puede realizar con la función rcorr() del paquete Hmisc

install.packages("Hmisc")
library(Hmisc)

rcorr(as.matrix(df))

Debemos notar que esta función usa todas las variables de un data.frame como elementos para realizar el test. Si queremos seleccionar solo algunas variables debemos indicar dentro del comando qué variables queremos evaluar.

rcorr(as.matrix(data.frame(e3207$P26, e3207$P27, e3207$P32, e3207$P38)))

ejercicio en clase: democracia deliberativa

¿Cuáles son los determinantes del nivel de democracia deliberativa?

Para estudiarlo podemos usar la base de datos de V-Dem.

install.packages("tidyverse")
install.packages("devtools")


library(tidyverse)
devtools::install_github("vdeminstitute/vdemdata")
library(vdemdata)

vdem <- vdemdata::vdem
vcode <- vdemdata::codebook

v18 <- vdem|>filter(year == 2018)


var_info("v2xdl_delib")

ddem <- lm(v2xdl_delib ~ v2smpardom + v2smgovfilcap + v2smorgelitact + v2smcamp + v2x_gencs, data = v18)

summary(ddem)
plot(ddem)