hist(feliz3$residuals, breaks = 80)
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
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)
::install_github("vdeminstitute/vdemdata")
devtoolslibrary(vdemdata)
<- vdemdata::vdem
vdem <- vdemdata::codebook
vcode
<- vdem|>filter(year == 2018)
v18
var_info("v2xdl_delib")
<- lm(v2xdl_delib ~ v2smpardom + v2smgovfilcap + v2smorgelitact + v2smcamp + v2x_gencs, data = v18)
ddem
summary(ddem)
plot(ddem)