如果残差是正态分布的,而y不是,该怎么办?


110

我有一个奇怪的问题。假设您有一个较小的样本,您要使用简单线性模型分析的因变量高度偏左。因此,您假设ü不是正态分布的,因为这将导致呈正态分布ÿ。但是,当您计算QQ正态图时,有证据表明残差呈正态分布。因此,任何人都可以假设误差项是正态分布的,尽管ÿ不是。那么,当误差项看起来是正态分布而ÿ不是时,它是什么意思呢?

Answers:


142

即使响应变量不是正态分布,回归问题中的残差也可以正态分布是合理的。考虑一个单变量回归问题,其中。因此回归模型是合适的,并进一步假设β = 1的真实值。在这种情况下,当真正回归模型的残差是正常的,分布ÿ取决于分布X,随着条件均值ÿ是的函数X。如果数据集的x值很多yN(βx,σ2)β=1ÿXÿXX接近零,且的值越高,则逐渐减少,则y的分布将向左倾斜。如果x的值对称分布,则y将对称分布,依此类推。对于回归问题,我们仅假设响应是正常的,条件是x的值。XÿXÿX


9
(+1)我认为重复的次数不够多!另请参见此处讨论的相同问题
Wolfgang

1
我了解您的回答,听起来很正确。至少您获得了很多赞成票:)但是我一点都不高兴。所以,在你的榜样,你所做的假设是ÿ ñ 1 X σ 2。但是当我估计回归时,我估计是E y | x 。因此,x应该在我估计均值时给出。由此可知,x是一个值,在实现之前我并不关心它的分布方式。所以ÿ Ñ v 一个β=1个ÿñ1个Xσ2Ëÿ|XX是分布 ÿ。我不明白 x在哪里影响 yÿñv一种üËσ2ÿXÿ
MarkDollar 2011年

3
我也很(愉快地)对投票数感到惊讶; o)为了获得用于拟合回归模型的数据,您已经从某个联合分布抽取了一个样本,您希望从该样本中进行估计E y | x 。但是,由于yx的(嘈杂)函数,因此对于该特定样本,y样本的分布必须取决于x样本的分布。您可能对x的“真实”分布不感兴趣,但是y的样本分布取决于x的样本。p(y,x)E(y|x)yxyxX
Dikran Marsupial 2011年

2
考虑一个将温度()估计为纬度(x)的函数的示例。样本中y值的分布将取决于我们选择在哪里选出气象站。如果将它们全部放置在极点或赤道上,则将具有双峰分布。如果将它们放在规则的等面积网格上,即使两个样品的气候物理条件相同,我们也会得到y值的单峰分布。当然,这会影响您拟合的回归模型,这种情况的研究称为“协变量平移”。HTHÿXÿÿ
Dikran有袋动物2011年

我也怀疑是基于隐式假设的,即所使用的数据是来自作战联合分布p y x 的iid样本。E(y|x)p(y,x
2011年

100

@DikranMarsupial当然是正确的,但是我想到也许可以很好地说明他的观点,尤其是因为这种担忧似乎经常出现。具体而言,回归模型的残差应正态分布,以使p值正确。但是,即使残差是正态分布的,也不能保证将是(这并不重要...);它取决于X的分布。 ÿX

让我们举一个简单的例子(我正在做)。假设我们正在测试一种用于治疗单纯性收缩期高血压的药物(即最高血压值太高)。让我们进一步规定,收缩压bp通常分布在我们的患者人群中,平均值为160,标准差为3,对于患者每天服用的每毫克药物,收缩压bp下降1mmHg。换句话说,真值是160,和β 1为-1,而真正的数据生成功能是: P 小号Ŷ 小号 = 160 - 1 × 每日药物剂量+ εβ0β1个 在我们的研究中虚构,300名患者随机分配到每天服用这个新药为0mg(安慰剂),20毫克,40毫克或。(请注意, X不是正态分布的。)然后,在足够的时间使药物生效后,我们的数据可能如下所示:

Psÿs=160-1个×每日药物剂量+ε哪里 εñ09
X

在此处输入图片说明

(我抖动了剂量,以使点不会重叠得太多,以致于难以区分。)现在,让我们检查一下的分布(即,边际/原始分布)和残差: ÿ

在此处输入图片说明

ÿÿ

ÿXp<.05β1个

set.seed(123456789)                       # this make the simulation repeatable

b0 = 160;   b1 = -1;   b1_null = 0        # these are the true beta values
x  = rep(c(0, 20, 40), each=100)          # the (non-normal) drug dosages patients get

estimated.b1s  = vector(length=10000)     # these will store the simulation's results
estimated.b1ns = vector(length=10000)
null.p.values  = vector(length=10000)

for(i in 1:10000){
  residuals = rnorm(300, mean=0, sd=3)
  y.works = b0 + b1*x      + residuals
  y.null  = b0 + b1_null*x + residuals    # everything is identical except b1

  model.works = lm(y.works~x)
  model.null  = lm(y.null~x)
  estimated.b1s[i]  = coef(model.works)[2]
  estimated.b1ns[i] = coef(model.null)[2]
  null.p.values[i]  = summary(model.null)$coefficients[2,4]
}
mean(estimated.b1s)       # the sampling distributions are centered on the true values
[1] -1.000084                  
mean(estimated.b1ns)
[1] -8.43504e-05               
mean(null.p.values<.05)   # when the null is true, p<.05 5% of the time
[1] 0.0532                   

在此处输入图片说明

这些结果表明一切正常。

X ÿX


1
因此,假设残差为正态分布仅是为了使p值正确?如果残差不正常,为什么p值可能会出错?
鳄梨

3
@loganecolss,作为一个新问题可能会更好。无论如何,是的,它必须与p值是否正确有关。如果您的残差足够非正态且您的N很低,则采样分布将与理论上的假设有所不同。由于p值是该抽样分布超出您的测试统计量的数量,因此p值将是错误的。
gung

0

XÿX


2
响应的边际分布一点也不“毫无意义”。它是响应的边际分布(通常应该暗示模型,而不是带有正常误差的纯回归)。您正确地强调了条件分布对于我们讨论问题的模型很重要,但这对现有的出色答案没有帮助。
Nick Cox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.