长尾数据如何进行回归分析? 举报 理由 举报 取消 用爬虫爬下来了quora上面,climate change主题下一半的问题和回答,以及回答的相关信息,现在想研究回答点赞数受哪些因素(如回答观看量、作者粉丝数、回答发布时间、回答文本长度、图片数量、以及文本特征)的影响,希望建立多元回归模型。然而,因变量和自变量都不是正态分布的,而是长尾分布(看起来是),由于我没有学过计量,想请教各位大大,这个模型应该怎么建,或者就是求合作吧。数据是很棒的,应该能发不错的文章。 2018年1月12日 4 条回复 1562 次浏览 分析,回归,工具,数据,模型,统计
回复 ( 4 )
线性回归里,自变量因变量单独看如何分布是不重要的,关键是误差项是什么分布。如果这都是类似的分布,说不定残差图反而接近正态分布。
比如以下R程序所展示的
我觉得可以先用观察法入手,采用切片法观察自变量和因变量的关系:
1. 等分自变量的区间为份,每个小区间对因变量求平均值,即第个小区间的因变量的平均值为,标准差;自变量的左端点为
2. 对和做回归,一般可以采用线性回归,当然视图形也可以采用二次回归,假设;对和做回归,一般可以采用线性回归,当然视图形也可以采用二次回归,假设。
3.1 如果每个小区间的因变量都服从正态分布,那么你容易得到,这种情况下你应该采用高斯回归(计算时使用极大似然估计估计参数,传统的最小二乘回归不合适了)
3.2 如果你发现,是较小的误差项的话,那么非常幸运的是,你可以采用泊松回归(计算时仍使用极大似然估计估计参数)
3.3 如果你发现,是较小的误差项的话,那么非常幸运的是,你可以采用负二项回归(计算时仍使用极大似然估计估计参数),负二项回归的尾巴比泊松分布更长
4. 如果以上三种情况都不符合或者强行拟合的效果特别不好,那么就应该再使用其他更加复杂的模型了,这就需要具体问题具体分析,不过总的来说方法还是和上面一样,只不过需要更换分布的种类,譬如我曾经在研究中就用过zeta分布,虽然效果好一些,但是计算时也更复杂,一般情况不推荐。
个人是比较推荐泊松回归和负二项回归,因为这两个在很多情况下都适用,尤其是计数数据;而且R等软件内有现成的函数可以调用,省去了自己写程序的麻烦。
其实在多数情况下,连误差项的分布都不是最重要的,因为ols总能给出在最小均方误意义下对条件期望函数的最优拟合。
最重要的是因果推断,即那些自变量实际取值为x1的样本个体,如果取值为x2,因变量会发生怎么样的变化。此时会涉及样本选择、遗漏变量等内生性问题(据我所知这种问题非常容易出现在网络抓取的数据中)。
希望这个答案对师兄有帮助哈哈@江汉臣
——————————
然后手欠验证了下:
x <- rexp(1000, 1)
e <- rexp(1000, 1)
y <- x + e
X <- cbind(x, 1)
beta <- solve(t(X) %*% X, t(X) %*% y)
print(beta)
得到参数估计结果:
截距项为0.9909967,
x的系数是1.0042641。
e.hat <- y – X %*% beta
真实残差分布
估计残差分布
——————-
所以只要误差项和自变量独立,就不用担心其分布如何。计量里最难的问题还是内生性,也就是误差项和自变量相关的问题。
做多元分析的时候,自变量和因变量的分布不需要考虑。如果你对回归分析的原理不了解,我建议你直接用已有的回归方法,直接把数据带去模型,运行结果。最简单的就是用多元线性回归去拟合自变量和因变量的关系。如果你的自变量维数过高,我建议先做变量选择,可以用向前或者向后选择自变量方法。如果线性回归拟合情况不理想,可以试试添加交叉项或者幂函数项,以及其他非线性的函数。你也可以试试神经网络。