J'essaie de faire une régression pour expliquer le nombre d'homicides dans chaque quartier d'une ville. Bien que je sache que mes données suivent une distribution de Poisson, j'ai essayé d'adapter un OLS comme celui-ci:
Ensuite, j'ai aussi essayé (bien sûr!) Une régression de Poisson. Le problème est que j'ai de meilleurs résultats dans la régression OLS: le pseudo- est plus élevé (0,71 vs 0,57) et le RMSE également (3,8 vs 8,88. Standardisé pour avoir la même unité).
Pourquoi? Est-ce normal? Quel est le problème lors de l'utilisation de l'OLS, quelle que soit la distribution des données?
modifier Suite aux suggestions de kjetil b halvorsen et d'autres, j'ai ajusté les données à travers deux modèles: OLS et Negative Binomial GLM (NB). J'ai commencé par toutes les fonctionnalités dont je dispose, puis j'ai récursivement supprimé une à une les fonctionnalités qui n'étaient pas significatives. OLS est
avec poids = .
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
Le N.-B. prédit le nombre de délits, la zone du district étant compensée.
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
Résidus OLS:
NB résiduels
Donc le RMSE est plus bas dans l'OLS mais il semble que les résidus ne soient pas si normaux ....
la source
Réponses:
Je soupçonne qu'une partie du problème peut résider dans votre choix de mesure de performance. Si vous mesurez les performances du test à l'aide de RMSE, la formation du modèle pour minimiser le MSE correspond au critère de test, donnant un indice sur ce qui est considéré comme important. Vous pouvez constater que si vous mesurez les performances du test en utilisant la log-vraisemblance négative de l'ensemble de test en utilisant une probabilité de Poisson que le modèle de Poisson fonctionne mieux (comme on pourrait s'y attendre). Cela peut être un problème mineur par rapport aux autres problèmes soulevés, mais cela pourrait être une vérification d'utilité utile.
la source
Tout d'abord, avec de telles données, je m'attendrais à une surdispersion (si vous ne savez pas ce que c'est, voir /stats//search?q=what+is+overdispersion%3F ).
Un autre problème est la transformation que vous avez utilisée avec la régression linéaire. La transformation de stabilisation de variance habituelle utilisée avec les données de comptage est la racine carrée, pas le logarithme.
Quant à votre analyse supplémentaire dans le post, notez que les rmse ne peuvent pas être comparés directement entre les deux modèles, car des réponses différentes sont utilisées! Pour effectuer une comparaison directe, vous devrez retransformer les valeurs prévues à l'échelle d'origine. Ensuite, vous pouvez calculer vous-même le rmse et voir. Mais notez que les prédictions obtenues après rétro-transformation peuvent être biaisées, en raison de non-linéarités. Un certain ajustement des prédictions rétrotransformées pourrait donc les rendre plus utiles. Dans certains cas, cela pourrait être calculé théoriquement, ou vous pourriez simplement utiliser un bootstrap.
la source
la source
Il est vrai que vos données ne sont pas distribuées normalement (ce qui, je présume, explique pourquoi vous avez également effectué une régression de Poisson), mais vos données ne sont probablement pas non plus une distribution de Poisson. La distribution de Poisson suppose que la moyenne et la variance sont les mêmes, ce qui n'est probablement pas le cas (comme mentionné dans d'autres réponses - vous pouvez capturer cet écart et l'intégrer dans le modèle). Étant donné que vos données ne sont pas vraiment adaptées à l'un ou l'autre modèle, il est logique que OLS soit plus performant.
Une autre chose à noter est que les estimations des moindres carrés ordinaires sont robustes à la non-normalité, ce qui peut expliquer pourquoi vous obtenez un modèle raisonnable. Le théorème de Gauss-Markov nous dit que les estimations des coefficients OLS sont les meilleurs estimateurs linéaires sans biais (en termes d'erreur quadratique moyenne) (BLEUS) dans les hypothèses suivantes,
Il n'y a aucune hypothèse de normalité ici, donc vos données peuvent très bien être raisonnables pour ce modèle! Cela étant dit, j'examinerais un modèle de Poisson avec un paramètre de sur-dispersion intégré et vous devriez obtenir de meilleurs résultats.
la source