长尾数据如何进行回归分析?

理由
举报 取消

用爬虫爬下来了quora上面,climate change主题下一半的问题和回答,以及回答的相关信息,现在想研究回答点赞数受哪些因素(如回答观看量、作者粉丝数、回答发布时间、回答文本长度、图片数量、以及文本特征)的影响,希望建立多元回归模型。然而,因变量和自变量都不是正态分布的,而是长尾分布(看起来是),由于我没有学过计量,想请教各位大大,这个模型应该怎么建,或者就是求合作吧。数据是很棒的,应该能发不错的文章。

2018年1月12日 4 条回复 1562 次浏览

发起人:江踏歌 初入职场

id取自闻郎江上踏歌声浅色床单https://

回复 ( 4 )

  1. yiyuezhuo
    理由
    举报 取消

    线性回归里,自变量因变量单独看如何分布是不重要的,关键是误差项\epsilon = Y - X\beta是什么分布。如果这X,Y都是类似的分布,说不定残差图反而接近正态分布。

    比如以下R程序所展示的

    > x <- rexp(100)
    > y <- rexp(100)
    > z <- 3*x + 10*y + rnorm(100)
    > hist(x)
    
  2. 势求遇运
    理由
    举报 取消

    我觉得可以先用观察法入手,采用切片法观察自变量x和因变量y的关系:

    1. 等分自变量的区间为n份,每个小区间对因变量求平均值,即第i个小区间的因变量的平均值为\bar{y}_i,标准差\sigma_i;自变量的左端点为x_i

    2. 对\bar{y}_ix_i做回归,一般可以采用线性回归,当然视图形也可以采用二次回归,假设\bar{y}_i = f(x_i);对\sigma_ix_i做回归,一般可以采用线性回归,当然视图形也可以采用二次回归,假设\sigma_i = g(x_i)

    3.1 如果每个小区间的因变量都服从正态分布,那么你容易得到y_i ~ \sim N( \bar{y}_i = f(x_i); \sigma_i = g(x_i) ),这种情况下你应该采用高斯回归(计算时使用极大似然估计估计参数,传统的最小二乘回归不合适了)

    3.2 如果你发现\sigma_i^2 = \bar{y}_i + \epsilon\epsilon是较小的误差项的话,那么非常幸运的是y_i ~ \sim Pois( \bar{y}_i = f(x_i) ),你可以采用泊松回归(计算时仍使用极大似然估计估计参数)

    3.3 如果你发现\sigma_i^2 = \bar{y}_i + \bar{y}_i^2 + \epsilon\epsilon是较小的误差项的话,那么非常幸运的是y_i ~ \sim NB( \bar{y}_i = f(x_i); \sigma_i = g(x_i) ),你可以采用负二项回归(计算时仍使用极大似然估计估计参数),负二项回归的尾巴比泊松分布更长

    4. 如果以上三种情况都不符合或者强行拟合的效果特别不好,那么就应该再使用其他更加复杂的模型了,这就需要具体问题具体分析,不过总的来说方法还是和上面一样,只不过需要更换分布的种类,譬如我曾经在研究中就用过zeta分布,虽然效果好一些,但是计算时也更复杂,一般情况不推荐。

    个人是比较推荐泊松回归和负二项回归,因为这两个在很多情况下都适用,尤其是计数数据;而且R等软件内有现成的函数可以调用,省去了自己写程序的麻烦。

  3. 朱恩伟
    理由
    举报 取消

    其实在多数情况下,连误差项的分布都不是最重要的,因为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

    真实残差分布

    估计残差分布

    ——————-

    所以只要误差项和自变量独立,就不用担心其分布如何。计量里最难的问题还是内生性,也就是误差项和自变量相关的问题。

  4. 匿名用户
    理由
    举报 取消

    做多元分析的时候,自变量和因变量的分布不需要考虑。如果你对回归分析的原理不了解,我建议你直接用已有的回归方法,直接把数据带去模型,运行结果。最简单的就是用多元线性回归去拟合自变量和因变量的关系。如果你的自变量维数过高,我建议先做变量选择,可以用向前或者向后选择自变量方法。如果线性回归拟合情况不理想,可以试试添加交叉项或者幂函数项,以及其他非线性的函数。你也可以试试神经网络。

我来回答

Captcha 点击图片更换验证码