我试图拟合回归来解释城市每个地区的凶杀案数量。虽然我知道我的数据遵循泊松分布,但我试图拟合这样的 OLS:
然后,我还尝试了(当然!)泊松回归。问题是我在 OLS 回归中有更好的结果:伪更高(0.71 对 0.57)和 RMSE 也更高(3.8 对 8.88。标准化为具有相同的单位)。
为什么?正常吗?无论数据分布如何,使用 OLS 有什么问题?
编辑 按照 kjetil b halvorsen 和其他人的建议,我通过两个模型拟合数据:OLS 和负二项式 GLM (NB)。我从我拥有的所有功能开始,然后我递归地删除了不重要的功能。OLS 是
权重=.
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
NB 预测犯罪数量,以该地区的面积为偏移量。
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
OLS 残差:
NB残差
因此,OLS 中的 RMSE 较低,但残差似乎不是那么正常......