Estoy tratando de ajustar una regresión para explicar el número de homicidios en cada distrito de una ciudad. Aunque sé que mis datos siguen una distribución de Poisson, intenté ajustar un OLS así:
$log(y+1) = \alpha + \beta X + \epsilon $
Luego, también intenté (¡por supuesto!) una regresión de Poisson. El problema es que obtuve mejores resultados en la regresión OLS: el pseudo-$R^2$ es más alto (0.71 vs 0.57) y también el RMSE (3.8 vs 8.88. Estandarizado para tener la misma unidad).
¿Por qué? ¿Es normal? ¿Qué está mal en usar el OLS sin importar cuál sea la distribución de los datos?
edición Siguiendo las sugerencias de kjetil b halvorsen y otros, ajusté los datos a través de dos modelos: OLS y GLM de Binomial Negativo (NB). Comencé con todas las características que tengo, luego eliminé de forma recursiva una por una las características que no eran significativas. OLS es
$\sqrt{\frac{crime}{area}} = \alpha + \beta X + \epsilon $
con pesos = $area$.
summary(w <- lm(sqrt(num/area) ~ RNR_nres_non_daily + RNR_nres_daily + hType_mix_std + area_filtr + num_community_places+ num_intersect + pop_rat_num + employed + emp_rat_pop + nden_daily + nden_non_daily+ bld_rat_area + bor_rat_area + mdist_highways+ mdist_parks, data=p, weights=area))
error2 <- p$num - (predict(w, newdata=p[,-1:-2], type="response")**2)*p$area
rmse(error2)
[1] 80.64783
El NB predice el número de crímenes, con el área del distrito como desplazamiento.
summary(m3 <- glm.nb(num ~ LUM5_single + RNR_nres + mdist_daily + mdist_non_daily+ hType_mix_std + ratio_daily_nondaily_area + area_filtr + num_community_places + employed + nden_daily + nden_non_daily+ bld_rat_area + bor_rat_area + mdist_smallparks + mdist_highways+ mdist_parks + offset(log(area)), data=p, maxit = 1000))
error <- p$num - predict(m3, newdata=p[,-1:-2], type="response")
rmse(error)
[1] 121.8714
Residuos de OLS:
Residuos de NB
Entonces, el RMSE es más bajo en el OLS, pero parece que los residuos no son tan normales....
0 votos
¿Puedes publicar más detalles? ¿Cuál es la naturaleza de los datos? es decir, ¿qué está contando la variable de respuesta? ¿cuáles son las variables explicativas?
0 votos
@kjetilbhalvorsen la variable dependiente es el número de homicidios por distrito (112 distritos). Las variables independientes son las características estructurales de la ciudad (intersecciones de calles, puntos de interés, etc.)
0 votos
¿Cómo estás calculando el pseudo $R^2$ para cada modelo?
0 votos
@probabilityislogic R-cuadrado de OLS: 0.71, pseudo-$R^2$ de McFadden para la distribución de Poisson es 0.57. RMSE de OLS: 3.8, RMSE Poisson: 8.88
0 votos
¿Ayuda stats.stackexchange.com/questions/159575/… aquí?
2 votos
Si estuviera ajustando este modelo usando una regresión de Poisson, incluiría log(tamañodistrito) como un factor de compensación para tener en cuenta que los distritos no son todos del mismo tamaño. A menos que lo sean.
0 votos
"la variable dependiente es el número de homicidios por distrito (112 distritos)." - ¿normalizas por las poblaciones de los distritos?
0 votos
"Si estuviera ajustando este modelo utilizando una regresión de Poisson, incluiría log(tamañodistrito) como un offset para tener en cuenta que los distritos no son todos del mismo tamaño. A menos que lo sean" - esto es (más o menos) lo mismo que cambiar tu respuesta a homicidios/población. También podrías utilizar el tamaño del distrito como un peso (o ambos como peso y offset). Usarlo como peso puede sobre representar valores atípicos, por lo que es posible que desees usar la raíz cuadrada o la raíz cúbica del tamaño del distrito en su lugar.
0 votos
@Eric, el tamaño de la población y el tamaño del distrito son parte de las características, que no son significativos para el modelo.
1 votos
¿Cuál es tu razonamiento detrás de pensar que comparar el $R^2$ de OLS con el $pseudo-R^2$ de una estimación de ML (y el $RMSE$), te da una indicación de cuán bueno es cierto modelo? OLS, por su construcción, maximiza el $R^2$. ¿Está la regresión de Poisson construida de forma que maximice el $pseudo-R^2$? No lo creo, y no creo que esta comparación sea útil.
1 votos
Otra cosa para agregar - el $R^2$ de ols está diciendo el % de varianza explicado en $z=\log(y+1)$ mientras que el pseudo $R^2$ de poisson está tratando de dar una indicación del % de la varianza de $y$ que está explicado. Esto también podría explicar la diferencia
0 votos
Hay un par de problemas aquí que creo que podrían marcar la diferencia y será útil tener un histograma de los datos. El uso de log(y+1) puede cambiar las distribuciones según el rango de tus datos. En segundo lugar, supongo que estás eligiendo el mejor conjunto de características basado en OLS y ajustando con los modelos poisson/NB después. ¿Cuál es el RMSE con los mejores modelos poisson/NB para los dos?
0 votos
También relevante: stats.stackexchange.com/questions/142338/…