还就那个线性回归分析

本来真没打算连载这个,结果这课居然把课程笔记算成百分制里面的 10 分(,那就写罢。

有参考 Vica Yang 的统辅笔记JhZhang 的课堂笔记V1ncent19 的统辅笔记,如有引用均会在文中注明,在此向前辈表示感谢。

Lecture 1

主要是在吹水,开玩笑以及活跃气氛。正经的内容大概就一个古老的回归现象,我还没有听得很懂,麻了。

Galton's Experiment

以下全是胡说八道,不能保证完全对。

介绍正态分布的时候会有一个很经典的小球过钉板的演示实验,最后落在底部的球似乎呈现出一个正态分布。但实际上球和钉子的每次碰撞都是一个 Bernoulli 过程,过了 n 层钉板就是 n 次 Bernoulli 过程加和,可以近似为正态分布。实际上只要 n 够大,由中心极限定理任何分布的加和都可以被近似为正态分布。

但我觉得实际上小球的情况并不是独立的,毕竟过程中会有相互的碰撞,真的没问题吗(

回归现象的起源是 Galton 对于父代和子代的身高做了一个统计,发现身高远离均值的父母的后代往往身高会比他们更接近平均水平,也就是某一身高水平的父母的孩子的身高中位数作为因变量,父母身高作为自变量时,拟合出的直线的斜率小于 1

假设不发生回归现象,则和钉板现象一样,后代的性状会逐渐分散,这被认为是一个种群稳定性状的方式。听起来很玄学,似乎也有一个稍微合理的生物学解释了,但我们希望从统计学的角度分析这件事,背后是存在数学规律的。

Galton.png

上图是课程中反复出现的一张图,对此做了很多解释。最上面的正态分布是父代的身高情况(实际上是父母身高的加权和),通过一个“倾斜槽”之后的第二个正态分布展示了子代的身高情况,比父代更加靠近中心。下方也有一个类似于钉板的装置,n 层钉板指的就是 n 代繁衍的过程,或者也可以指代一代繁衍中的其他影响身高的非基因因素,它们被视作独立同分布的,因此加和由中心极限定理可以被近似为正态分布。

图中还呈现出了父代中的一个小组“过钉板”后的结果,是一个小的正态分布。实际上子代的数据就是由一个一个小的正态分布叠加起来的,而正态分布可以线性相加,所以最后呈现出的还是正态分布。

好玄学,我也不知道我在说什么,甚至不是很确定自己理解对了没有。

Anyway,还是 think mathematically,记 Xi 为第 i 代的种群身高变化量,{Xi} 是独立同分布的。则记父代种群的随机变量为 F=Σi=1nXi,子代种群的随机变量为 S=Σi=1nXi,考虑二者的相关系数:

ρ(F,S)=cov(F,S)Var(F)Var(S)=Var(F)+Cov(F,Xn)Var(F)Var(S)=1+cov(F,Xn)Var(F)<1,因此 ρ(F,Xn)<0 也即二者呈负相关。

一些术语

  • 一般来说,我们把 X 作为 predictor/input/explanatory variable,把 Y 作为 response/output/dependent variable。

  • YX 被称为 simple regression,一元总归是简单的。

    YX1,X2,...,Xp 称为 multiple/multivariate regression,实际上这两者是不一样的。

    如果每个回归式中有超过一个 X 就称为 multiple regression,如果有多个 Y 就称为 multivariate regression,并且每个式子里只能有一个不同的 dependent variable。

    还有叫做 multivariate multiple regression 的回归方法,也就是用多个 X 来预测多个 Y 的情况,每个 Y 出现在不同的式子里。

  • 一般来说 Y 是连续型随机变量,X 可以是连续型、离散型或者分类型随机变量。有一些名词,不抄了,简单列一下:

    regression.png

Lecture 2

Simple Linear Regression

数据的组织和表示

Simple linear regression 的数据一般是二元数据对 (Xi,Yi),每一对数据称为一个 case。数据集记作 (X1,Y1),...,(Xn,Yn),其中 Xi 是 i-th observed explanatory variable,Yi 是 i-th observed response variable。

模型的表示

Yi=β0+β1Xi+εiεi 被称为 random error term,其中 β0,β1 是参数。为了简化模型便于操作,需要对 random error term 做一些假设:

  • 均值为 E(εi)=0,方差为 Var(εi)=σ2,注意 σ 是一个未知常数,也视作参数;
  • 不同的 εiεj 是不相关的。注意此处不需要不独立。

对于更强的模型,例如 simple linear regression model with normal error,我们直接要求 ε1,...,εni.i.d.N(0,σ2)(因为正态分布的不相关性和独立性等价)。这是一个很广泛的假设,但有时正态假设是明显有问题的,需要修正。

事实上,在 linear regression model 中,XiYi 的地位是不对等的。Xi 被视为不带随机性的常数,而 Yi 因为 εi 的存在是一个随机变量,有 E(Yi)=β0+β1XiVar(Yi)=Var(εi)=σ2。因此,回归线可以视作 (Xi,E(Yi)) 连成的直线,而数据点 (Xi,Yi) 分布在回归线附近。

特别地,在正态假设下, 有 YiN(β0+β1Xi,σ2)i=1,2,...,n

参数的意义和求算

斜率 β1 的意义为 Xi 增加 1 单位时 Yi 的变化量;截距 β0 的意义分两种情况解释,当 Xi 取值范围中有 0 时即为 Xi=0 时的平均响应 E(Yi),否则截距没有意义。

Least Sum of Square 方法

求算最佳参数实际上就是求使得 sum of squared diff 最小的 β0^,β1^,从而得到 Yi 的估计值 =+Xi。于是有 β0^,β1^=argminβ0,β1Σ(Yiβ0β1Xi)2=argminβ0,β1Σi=1nei2。求导即可简单地得出:

b1=β1^=Σi(XiX¯)(YiY¯)Σi(XiX¯)2

b0=β0^=Y¯b1X¯

记残差为 ei=YiYi^=Yiβ0^β1^Xi=β0+β1Xi+εiβ0^β1^Xiεi ,也即 ei 为某一组 observed data Y1,Y2,...,Yn 之下得到的残差,但绝非 εi 本身。残差是观测到的确定值,而 εi 是随机变量。

事实上求导的过程蕴含以下结论:

Σi=1nei=0

Σi=1nXiei=0

以上二式可以看做对 ei 的线性约束,{ei} 的自由度是 n2,互相之间不是独立的,这也是和 {εi} 的差别之一。由此还可以得到一些其他性质,例如回归线必过 (X¯,Y¯),不在此一一列举。

以上即为参数 β0,β1 的估计方法。下面再考虑参数 σ 的估计,使用残差 e1,...,en 来考虑。

σ2^=Σi=1nei2n2。这是因为 e1,e2,...,en 的自由度为 dfE=n2,由此考虑 sum of square SSE=Σi=1n(YiYi^)2=Σi=1nei2,定义 mean of squared errors MSE=SSEdfE=Σi=1nei2n2σ2^

MLE 方法

也可以用推断课上的 MLE 方法。实际上,我们想找到一个 β0,β1 的最佳估计,还可以使用 MLE 方法进行估计。

在正态假设下,我们可以将 n 组数据视作 n 个互相独立的随机变量,取使得其likelihood function 最大的一组 β0,β1,σ2 作为估计量。likelihood function 即为 f(y1,y2,...,yn)=f1(y1)...fn(yn),得到的 estimator 中 β0^,β1^ 与 least sum of square 中得出的估计量相同,但 σ2^=Σi=1nei2n。注意这是一个有偏的估计量,而 least sum of square 得到的估计量是无偏的。

推断复习

咕了。什么嘛,我推断学得还是可以的嘛(x

Lecture 3

线性回归中的推断

回顾一下,无论是 OLS 方法还是 MLE 方法,我们得到的参数估计 b0,b1 都是相同的:

b1=β1^=Σi(XiX¯)(YiY¯)Σi(XiX¯)2

b0=β0^=Y¯b1X¯

通过简单的计算可以知道:

E(b1)=β1,Var(b1)=σ2SXX,s2(b1)=s2SXX

其中 SXX=Σi=1n(XiX¯)2, s2=σ^2=Σi=1nei2n2

而且有 Cov(b1,Y¯)=0

参数推断

  • β1 进行推断:null hypothesis 为 H0:β1=0,这样设置是因为关心两个变量之间是否存在线性关系。

    在假设 H0 下可以考虑 test statistic 为 T=b10s(b1)tn2,这是因为 H0 假设下 b10N(0,σSxx),我们一般用 σ 的无偏估计 σ^=Σi=1nei2n2 来处理。

    level of significance 为 α,于是当 observed data t0 满足 |t0|>tn2,1α/2 时 reject H0

    如果没有拒绝 H0,通常的可能有以下三种:

    • 发生了 Type II Error,没有成功拒绝掉 H0 而事实相反;
    • XY 之间确实没有什么线性关系;
    • XY 之间有关系,但是非线性。(这句话原来的 typo 是“有线性关系,但是非线性”,绷不住了,中午被 Photon 指出来了,非常感谢他)
  • β1 做 confidence interval:由于在 β1 代表斜率的情况下,有 b1β1s(b1)H0tn2

    于是 P(|b1β1|s(b1)<tn2,1α/2)=1αβ1 的 100%(1α) confidence interval 是

    (b1tn2,1α/2s(b1),b1+tn2,1α/2s(b1))

  • 类似地可以对 β0 做推断,有 b0β0s(b0)tn2,因此如果 null hypothesis 为 H0:β0=0,rejection region 即为满足条件 >tn2,1/2 的数据。对于偏移的 null hypothesis H0:β0=c,也只要相应地移动 rejection region 即可。

    100%(1α) confidence interval 为 (b0tn2,1α/2s(b0),b0+tn2,1α/2s(b0))

    实际上我们一般对 β0 的推断不感兴趣,因为这个参数未必有意义,依赖于 X 的取值范围。

  • 以上都是对单个参数进行推断,实际上我们也可以进行 joint inference:

    同时推断两个参数 (β0,β1),这时候得到的就是 confidence region,使得 P((β0,β1)SR2)=100(1α)%。实际上因为 (b0,b1)TN((β0,β1)T,σ2Σ2×2),所以最小的 confidence region 是一个椭圆。

    实际上我们也可以考虑做一个矩形的 confidence region,也即对两个参数分别作 confidence interval,confidence coefficient 分别为 1α1α2。因此 confidence region 为:

    (b1tn2,1α/4s(b1),b1+tn2,1α/4s(b1))×(b0tn2,1α/4s(b0),b0+tn2,1α/4s(b0))

参数推断的角度来说 β1 的推断远比 β0 重要,它表征线性关系,而且从预测的角度来说,β1 的推断如果不够精细,会导致远离 X¯ 处的 Xh 对应的估计量误差很大。

Power Function

一个 significance test 的 power 指的是 reject H0H1 是正确的的概率,也就是 1P(Type II Error)。实际上一个推断是好的的情况下需要既不 over-powered 也不 under powered,这和 Type I Error 与 Type II Error 此消彼长的性质有关。

Power function 一般是一个关于参数的函数。以推断 β1 的过程为例,计算这一推断的 power function。

  • 我们在线性回归参数推断里会用到一种非中心化 t-分布。普通的 t-分布是关于 x=0 对称的,非中心化 t-分布有一定的偏差。注意并不是整体在坐标轴方向上的移动,其形状也发生了变化。表达式为 t(df,δ)=N(0,1)+δχdf/df

  • β1 进行推断:null hypothesis 为 H0:β1=0,这样设置是因为关心两个变量之间是否存在线性关系。

    在假设 H0 下可以考虑 test statistic 为 T=b10s(b1)tn2,然而在 H1 下,

    T=b1s(b1)=b1β1+β1s(b1)=b1β1s(b1)+β1/σ(b1)s(b1)/σ(b1)=N(0,1)+δχdf/dft(n2,β1/σ(b1))

    于是 Power(β1)=P(RejectH0|H1holds)=P(|T|>tn2,1α/2|β10)=P(T<tn2,α/2)+1P(T<tn2,1α/2),其中在 β10 的条件下,Tt(n2,β1/σ(b1))

BLUE

Go Blue !

简单来说,OLS Estimators 是 the best linear unbiased estimator,简称 OLS estimators 是 BLUE。best 的意思是方差最小,这是不难证明的。

BLUE 是非常好的性质,也希望我以后能 go blue(逃

Lecture 4

Prediction & ANOVA,感谢 zzy 救我的生统概论(

Estimation & Prediction

平均响应的推断

有了线性回归模型之后当然是要用来做预测,通过已有数据拟合出一个线性模型,再用来估计未知点的值。对于需要估计的点 Xh,一般来说估计值都是考虑平均响应 (mean response) μh=E(Yh)=β0+β1Xh,把 μh^=b0+b1Xh 作为 μh 的估计。这是一个 estimator,既然如此就要考虑它的性质,也要先考虑平均响应的置信区间。

  • E(μh^)=E(b0)+E(b1)Xh=β0+β1Xh=μh ,是 unbiased estimator

  • Var(μh^)=Var(Y¯+b1(XhX¯))=σ2[1n+(XhX¯)2Σ(XiX¯)2] ,是 minimum variance

  • μh^=Y¯+(XhX¯)b1,由于 Y¯b1 都有正态假设,因此 μh^ 也服从正态分布,μh^N(μh,Var(μh^))

  • Var(μh^) 的估计量是 s2(μh^)=s2[1n+(XhX¯)2Σ(XiX¯)2],于是有 μh^μhs(μh^)tn2

    因此,μh100%(1α) confidence interval 是 (μh^tn2,1α/2s(μh^),μh^+tn2,1α/2s(μh^))。confidence interval 的长度为 2tn2,1/2s()=2tn2,1/2s,其中 s=[Σi=1nei2n2]。因此置信区间的长度是近似于随 XhX¯ 递增而递增的。也就是说,Xh 距离 X¯ 越远,置信区间的长度越大,准确性越难保证。

    综上,我们成功找到了这个对于 μh 的估计的置信区间。

预测值的推断

上述估计的是预测值的平均响应,对于新观测点的值需要改成:Yh(new)=β0+β1Xh+ε 且有 E(ε)=0,Var(ε)=σ2。注意这里 ε 是随机变量,β0,β1 是未知值的参数,Xh 是已知的常数。

对它做估计 Y^h(new)=μh^=b0+b1Xh 仍然是和平均响应相同,考虑这个估计的性质。

  • E(Y^h(new))=E(b0+b1Xh)=β0+β1Xh

  • 从简单的情形开始,如果 β0,β1,σ 都是已知的参数,则在正态假设下 Yh(new)E(Yh)σN(0,1)(非正态假设情况下服从未知分布),Yh(new) 的 confidence interval 是 (E(Yh)z1α/2σ,E(Yh)+z1α/2σ)

  • 一般情况下,设 dh=Yh(new)Y^h(new)=Yh(new)μh^,于是有 E(dh)=0

    计算可知方差 Var(dh)=Var(Yh(new)μ^h)=Var(Yh(new))+Var(μh^)=σ2[1+1n+(XhX¯)2Σ(XiX¯)2]

    standard error 为 s2(dh)=s2[1+1n+(XhX¯)2Σ(XiX¯)2]

    于是有 dhE(dh)s(dh)=dhs(dh)=Yh(new)μ^hs(dh)tn2Yh(new) 的置信区间是 (μ^hs(dh)tn2,1α/2,μ^h+s(dh)tn2,1α/2),这个区间一般叫做 prediction interval,长度是 2tn2,1α/2s(dh),其中 s2(dh)=s2+s2(μ^h2),因此预测区间比平均响应的置信区间略宽

预测值的平均的推断

考虑在新值 Xh 处的 m 个观测值的平均值,为 ${Y_h} = m {i=1} ^m Y{h(new) i} = _0 +1 X_h+ 1m {i=1}^m _i $,预测值的平均仍然是 Yh^=b0+b1Xh。有 εiN(0,σ2) 为正态假设。于是 Var(Y¯hYh^)=σ2[1m+1n+(XhX¯)2Σ(XiX¯)2]Var(dh)

它的宽度小于 prediction interval,但也大于平均响应的 confidence interval。

Confidence Band for Entire Regression Line

怎么翻译都没那味,就写原文吧。

希望找到一个 confidence band:{(x,y):L(x)<y<U(x),xR},对于任意点 xP[l(x)<β0+β1x<u(x)]=1α。对于固定的点 x100%(1α) 置信区间为 (μx^tn2,1α/2s(μx^),μx^+tn2,1α/2s(μx^))

所以只要取 W=max{(μ^xμx)/s(μ^x)},即有置信区间为 (μ^xWs(μx^),μ^x+Ws(μx^)),其中 W=2F1α,2,n2。实际上 W>tn2,1α/2,也就是说 confidence band 处处比 confidence interval 更宽,level of confidence α 也更小。

Summary

一个显示 confidence interval of mean response,prediction interval 和 confidence band 宽度关系的图:

bands.png

Analysis of Variance (ANOVA)

Variance Estimator

先上点概念:

  • Total Sum of Squares: SST=Σ(YiY¯)2dfSST=n1

    Sample Variance: Sn2=SSTn1,是非常熟悉的统计量。

  • Variation due to Error: SSE=Σ(YiY^i)2=Σei2, dfSSE=n2

    Mean Square Error: MSE=SSEdf=Σi=1nei2n2,可以作为 σ2=Var(ε) 的一个估计。

    E(MSE)=σ2

  • Variation due to Regression: SSR=Σ(Y^iY¯)2=b12Σ(XiX¯)2, dfSSR=1

    Mean Squares of Regression: MSR=SSRdf=SSR

    E(MSR)=E(SSR)=E(b12)((XiX)2)=2+12(XiX)2;

可以计算得到 SST=SSE+SSR,自由度方面也是 dfSST=dfSSE+dfSSR

事实上在 Lecture 2 中我们考虑过是选取 sample variance 还是选取 MSE 作为 σ^2,这里的定义给出了更清晰的答案:SSE 更加注重原值和模型之间的联系,把 Yi^ 作为 Yi 的估计值,在 sample variance 中是把 Y¯ 作为 Yi 的估计值,前者更好地体现了 ε 的场景。

F-检验

我们希望通过以上统计量检验 X,Y 之间是否存在线性关系。考虑假设 H0:β1=0;H1:β10

在正态假设和 H0 成立条件下,取 test statistic 为 F=MSRMSE=SSR/dfRSSE/dfE=χdfR/dfRχdfE/dfEFdfR,dfE=F1,n2。考虑拒绝 H0 的情况,我们要求 F0>F1α,dfR,dfE=F1α,1,n2,满足此条件的 (X,Y) 构成 rejection region。或者从 P-value 的角度来看,满足不等式 P(F>F0|F1,n2)<α 的全体 (X,Y) 落在 rejection region 中。

考虑检验的 power function。在 H1:β10 条件下,Power(β1) = P(F>F1α,1,n2|noncentralF)

General Linear Test

另一种检验上述假设的方式。考虑假设 H0:β1=0;H1:β10,我们来比较两种不同的模型:

full model: Yi=β0+β1Xi+εi,reduced model: Yi=β0+εi,在 H0 假设成立时两个模型是等价的。考虑方差统计量:

  • SSE(F)=SSE for full model with dfEF,在 simple linear regression 下 dfEF=n2SSE(F)=SSE
  • SSE(R)=SSE for reduced model with dfER,在 simple linear regression 下 dfER=n1SSE(R)=SST

H0 假设下,F=F(dfERdfEF),dfEF。实际上,在 simple linear regression 下和 F-检验是一致的。但是 general linear test 是一个更广泛的方法,可以用于任何形式的线性检验。

Pearson Correlation r

r=Σ(XiX¯)(YiY¯)Σ(XiX¯)2Σ(YiY¯)2 被称为相关系数,反映了一组数据 (X,Y) 之间的线性关系程度。

R2=SSRSST 被称为决定系数,事实上在 simple linear regression 下有 r2=R2,因为 r=b1σXσY

2dimtest.png

Lecture 5

回顾一下简单线性回归的模型假设:Yi=β1Xi+β0+εi

  • ε1,ε2,...,εn 相互独立
  • εi 服从正态分布
  • E(εi)=0Var(εi)=σ2

可以总结成 LINE: linearity, independence, normality, equal variance

Diagnostics of X

诊断的方式粗暴一点来说就是肉眼诊断,用一些可视化工具(主要是画图)和其他方式来检验模型的假设是否符合。如果违反了模型假设,结果很有可能不可靠。此时需要用一些弥补的方式来处理。

Why diagnose——Distribution and Confounding

诊断过程需要关注的是 X 而非 Y,因为 Y 之间是独立异分布的。YiN(β0+β1Xi,σ2)

X 完全是常数,所谓的 X 的分布指的仅仅是 X1,X2,...,Xn 在数轴上的排布,不是概率分布。但 Xi 的分布会影响到模型的效果,直观上举个例子来说,Xi 的位置至少会影响到 Var(b1)=1Σi(XiX¯)2σ2 也就是 b1 的分散程度,这是会影响到推断显著性的因素,所以即使是常数也还是要对 X 进行一些诊断。

我们一般希望 X 是类似于正态的分布,这样的数据比较有代表性。可以使用 qq-plot 进行检查。

除此之外诊断 X 的另一意义在于 X 本身可能也是和其他因素有混杂的。举个例子来说,如果高温既会导致冰激凌销量增加又会导致鲨鱼攻击人的次数增加,很可能会发现冰激凌销量和鲨鱼攻击行为次数之间有线性的关系,事实上这就是一个没有选对合适的 explanatory variable X 却得到了看似合理的模型的例子,但这样的结论是有问题的,X 本身和气温这一因素混杂。

此时如果分别对冰激凌销量-气温和鲨鱼攻击行为-气温作一个 sequence plot,会发现二者都分别和气温有关系,那就有必要把气温作为一个 explanatory variable 加入模型的考虑,这是一种针对 confounding 的诊断方法。

四参数

有一些可以关心的量(甚至不能说是统计量,毕竟 X 也不是随机变量),除了 range 之外实际上就是一阶到四阶矩:

  • sample mean 展现了 X 的主要位置
  • standard deviation 展现了数据的分散程度
  • 偏度 skewness g1=m3m232=1nΣi=1n(xix¯)3(1nΣi=1n(xix¯)2)32 展现了数据的对称性
  • 峰度 kurtosis g2=m4m223=1nΣi=1n(xix¯)4(1nΣi=1n(xix¯)2)23 展现了数据相对于正态分布的尾迹
  • range 展现了 X 的分布范围

其中值得关注的是偏度和峰度两个统计量,因为之前没有提过。想起来一个乐子,Pearson 在《Lady Tasting Tea》里曾经认为一个分布只要有一阶到四阶矩的参数就可以完全确定,但实际上 Poisson 分布的四个参数都是 λ,是不行的。

  • 关于偏度:

    • g1<0 时称为 negatively skewed,左尾比较长,所以也会称为 skewed left
    • g1>0 时称为 positively skewed,右尾比较长,所以也会称为 skewed right

    由图可见偏度是能够体现数据的对称程度的。实际上对称程度是相对正态分布而言的。

    一般来说对于一个左偏的分布,会有 mean < median < mode(众数),如果右偏则会是 mode < median < mean。当然 mean 和 median 的顺序不一定准确,以及对于完全对称的分布会有三者相等。

    注意如果分布有多个峰值,此时 skewness 不一定还适用。

  • 关于峰度:

    • g2>0 时称为 leptokurtic,尖峰态下双尾较长。
    • g2<0 时称为 platykurtic,低峰态下双尾较短。

    注意峰度的所谓尖峰态低峰态和尾部数据性质也都是相对正态分布而言的。正态分布的峰度就是 3,因此峰度的公式里有一个减去 3 的操作,作为和正态分布的比对。

    有的时候会把不减去 3 的称为 kurtosis,减去 3 则称为 excess kurtosis,使用的时候要注意。

    实际上峰度带来的度量信息包括峰和尾两部分,单独出现尖峰的条件不能作为判断 g2 正负性的依据,只是表征了 X¯ 附近的情况,和尾部情况综合起来看才可以;峰度的正负性和方差的大小无关。

    尾部的情况可以通过 Q-Q plot 查看:

    kurtosis.png

诊断 assumptions

最常用的 assumption 诊断方法是使用残差图进行诊断,一元线性回归中我们可以直接使用 eiX 图,也可以使用 eiY^ 图进行诊断,二者本质上只相差横轴的尺度和位置。在多元线性回归中就直接使用 eiY^ 图进行诊断。

除此之外也有很多理论检验的方法,虽然听起来更 concrete,但其实实际应用中还是肉眼检查最有效。

模型诊断可能发现的一些问题:

  • YX 之间没有线性关系但是硬拟合了一个
  • σ2 不能视作常数,也即异方差
  • εi 不服从正态分布
  • εi 之间彼此不独立
  • 模型可以拟合,但数据中有 outlier

以下给出一些发现问题的方法:

非线性关系

简而言之,YX 之间可能并不是一个线性关系,但是我们采用了线性模型进行拟合。

找出问题的手段是使用 eiXi 图诊断 YX 的线性关系是否过拟合。具体来说,给 eiXi 再做一个拟合图线 scatter.smooth,观察和 h=0 是否偏离较大。虽然通过 YX 也可以看出来,但是 eiX 图更加明显。

即使线性关系是显著的(R 中得到 R2 较大、斜率 β1 显著),也不说明线性模型是最好的拟合模型。

异方差问题

  • 实际上的残差并不符合方差相等的假设,则称为异方差问题。即使发生这样的情况也未必会影响到 β1,β0 的估计值,因为计算过程和这一假设实际上是无关的。但是,异方差问题会导致 b0,b1 不再是使得方差最小的估计,失去了 BLUE 性质,但仍然是无偏的估计。问题会反映在关于 β1,β0 的推断中,导致推断或者置信区间不是效率最高的。

    举个例子,比如说 Yi=30+100Xi+10Xiεi,实际上是有 εiN(0,10Xiσ2),方差并不相同。

    画图检查最典型的异方差情况是画出 eiX 图后发现 X 越大,ei 越分散,呈现出一个扇形的分布形态。

  • 模型的诊断也可以使用一些理论方法,异方差检验中常用的几种检验如下所示:

    • Bartlett 方法,本质上是 likelihood ratio test,但非常依赖残差的正态假设。也即,如果检验结果是拒绝原假设,未必是真的发生了异方差现象,也可能是因为残差不服从正态分布造成了干扰。

    • Levene & modified Levene (B.F.) 方法,非常常见。

    • 对于可能影响方差导致异方差的因素 Z,将 ei2 相对于 Z 再做一次线性回归,得到的 SSR 记为 SSR

      此时 LM=SSR/2(SSE/n)2χ12 再进行检验。

正态性假设

εi 并不服从正态分布,这可以通过 QQ-plot 观察是否有 ε(i)=μ+σZi,或者直接画 histogram 检查是否有正态的形状。

qq-plot.png

理论方法之中 Shapiro-Wilk 方法是最佳的,有最大的 power,但是对于样本量是敏感的。也就是说,如果检验结果是 εi 不服从正态分布,也可能是因为样本量太大导致了错误判断。

注意正态性检验是完全可以把 {εi} 作为一组数据放在一起观察整体的分布的,但是对 {Yi} 不可以这样做,它们彼此之间服从的是不同的条件分布。

相关性

εi 之间可能并不独立,有可能都受到 ti 的影响,等等。如果有类似可能考虑的因素可以对其做 sequence plot。

理论方法中最常用的是 Durbin-Watson 方法。

Outlier

模型的数据里有 outlier,不同性质的 outlier 对回归线的影响不尽相同,具体的在 Lecture 6 中再细说。简单来说就是,outlier 的 Xi 越接近 X¯,对于回归线的斜率影响越小,但如果距离 X¯ 比较远,则会产生比较强的杠杆效应。

即使模型中存在 outlier,参数的估计也可以是比较准确的。做 eiX 图可以查看是否存在 outlier,也可以使用 YiXi 的图来观察是否有距离回归线很远的点,这是最明显的一类 outlier。然后可以尝试剔除这样的点再重新做回归,检查各系数。

关于 R2

如果在某一线性模型中得到 R2=0.69,能否说明这一线性模型是显著的?

  • 事实上可以。R2=0.69 已经是相对大的数值了,说明模型对于方差的解释能力是相对好的;另一方面考虑 r=R2>0.8,相关系数其实是比较大的,可以认为这一模型是合适的。
  • 但是,这并不能说明线性模型是这一问题下最好的模型。R2 想要多大就可以多大,例如给模型加入新的多项式型变量,总能更多地解释一些方差,不能单纯地追求 R2 的大小。
  • 另外,如果在不同的模型比较中对 {Yi} 做了变换,比如进行了标准化或者 Box-Cox transform,此时是不能和原始的模型再进行 R2 的比较的,只能检查单个 R2 的值能否接受。这是因为 SST 已经随着 {Yi} 的变化而变化了,模型的方差解释能力 SSRSST 无法比较。

Lecture 6

Built-in Diagnostic Plots in R

R 内置的四个诊断图是 eiY^,Q-Q plot,|Standardized Residuals|Y^,Cook's distance 图。前两个都比较简单,一个是万能的残差图,另一个是残差的正态性检验,主要说一下后两个图。

Scale-Location Plot

|Standardized Residuals|Y^ 作图体现了 residuals 随拟合值的分布情况,主要用来检验异方差。实际上在上一讲里面是直接用 eiX 来检验异方差的,这里用了标准化的残差开方,有一些考虑:

  • 关注 magnitude 所以需要一个正值,选择了先取绝对值

  • 取绝对值之后的数据往往人为造成了右偏,开方可以缓解一些

  • standardize 之后绝大多数 ei 都收入了 [2,2] 这一范围内(正态分布的主要区间),更清晰,有可比性

  • 虽然理论上的 εi 是独立分布的,但是残差之间是有约束关系的,Var(ei)=(1hii)σ2,也就是说 ei 的变动范围本身就和其在 x 轴上的位置(也即 Xi 的大小)相关。较大的 Xi 会对应 ei 的更大方差,导致可能会看起来像异方差。

    标准化并开方能够一定程度缓解这样的问题。

如果此图上的残差点分布看起来比较随机,拟合线也相对平行于 x 轴,基本可以认为是异方差。

Cook's Distance

图中被标出数字的点/靠近右上角和右下角/红线之外的点需要重视一下,是 high leverage point 或者 outlier,可以进一步检验。

Residuals & Leverage

Leverage

定义每一点的杠杆值为 hii=Y^iYi[0,1],表征了某一个 Xi 对应的 Yi 变动一个单位时,会导致回归线上的响应值变动的大小,也就是说,这一点的变化对于整个回归模型的影响。

事实上,Xi 对应的点的 leverage 是 hii=1n+(XiX¯)2Σj(XiX¯)2hii 越大会导致 Var(ei)=(1hii)σ2 越小,因此 ei 的变动范围变小,Y^i 能够变动的范围也较小,会导致回归线受较大的影响;从 leverage 的表达式可以看出来,|XiX¯| 越大会导致杠杆值越大,也就是说远离中心的点对回归线造成的影响较大。

我们对 extreme values 做一些分类:

  • Outlier: 离群值是对于其 Y 值而言的,Yi 的实际取值远离通常该有的范围,则这一点会被认为是 outlier。

  • High Leverage Point: 高杠杆值点是对于其 Xi 的取值而言的,由上述分析可以得到 hii 较大的主要条件。

  • Influential Point: 强影响力点指的是移除此点后,回归线会发生较大的变化的点。

    如果一个点既是 outlier 又是 high leverage point,那它一定是 influential point,直觉上来看是因为它的 XY 都具有一定的特征,会对回归线造成较大的影响。

如果 hii>2p/n 一般就称为高杠杆值点。

Studentized Residual

一个 influential point 造成回归线的巨大改变无法在残差图上体现出来,因此我们希望有一种手段能够体现出它和其他正常点的巨大差异。一个自然的想法是先移除它再做回归线,然后在这一模型上体现残差,即为 studentized residual。

这么说还是太抽象了,放个图好了:

studentized-residual.png

具体来说,studentized residual 和 standardized residual 有一些差别:

  • standardized residual: eis(ei),由于 Var(ei)=(1hii)σ2,则 s2(ei)=(1hii)MSE,代入即可。

  • deleted residual: di=YiY^i(i),其中 Y^i(i)Xi 在去除这一点的模型中所对应的响应。

  • studentized residual: dis(di),同理有 s2(di)=(1hii)MSEiMSEi 是去除第 i 点的模型对应的 MSE。

    事实上 ei=dis(di)=eiMSE(1hii) 是 internal studentized residual,当 |ei|>2 时认为是一个 outlier。

    studentized deleted residual 如下所示:

    studentized-deleted-residual.png

Cook's Distance

考虑 Di=Σj(Y^jY^j(i))2ps2=ei2pMSEhii(1hii)2,其中 Y^j(i) 指的是 Xj 在去除第 i 点的模型中对应的平均响应值。第 i 点的 Cook's distance Di 表征的是第 i 点的值对全体预测值(也就是回归线)的影响力。Di 越大越说明这是个 high influential point,一般吧 threshold 作为 0.5 或者 4n

Lack of fit test

怀疑某个模型并不符合线性,且其某一 Xi 点处有多个对应的 Y,也即这一点处存在 replicates 或者说 repeated observation 的时候,可以进行失拟检验。具体来说,可以进一步细分 SSE 为 sum of pure error 和 sum of lack of fit error,前者由数据的随机性导致,后者由线性模型的失拟性造成。

事实上也是 general linear test 的一种,这里的 full model 就是 cell mean model Yij=μi+εij,reduced model 是线性模型 Yij=β0+β1Xi+εij。也就是说,实际上的 H0:μi=β0+β1Xi,拒绝 H0 时说明 reduced model 失拟。

对 SSE 进行进一步的拆分,将其改变为 SSE=SSPE+SSLF,具体表达式和自由度如下所示:

Σi=1cΣj=1ni(YijY^ij)2=Σi=1cΣj=1ni(YijY¯i.)2+Σi=1cΣj=1ni(Y¯i.Y^ij)2

SSE=SSPE+SSLF

(n2)=(nc)+(c2)

因此,对应地有 E(MSPE)=σ2,E(MSLF)=σ2+Σini(μi(β0+β1Xi))2c2,test statistic 是 F=MSLFMSPEH0F(nc,c2)

这也就说明了为什么失拟检验只有在存在 replicates 的时候才能做,因为这时才会有 n>c,使得模型不至于退化。

Remedy Methods

补救非线性

通过 eiX 观察到模型并不是完全线性的时候,如果不想再改变 assumptions,可以转而选择非线性的模型。

R 中可以调用函数 nls

补救异方差

可以使用 weighted analysis,具体参见 Lecture 12 的内容。

补救非正态

如果残差体现出非正态分布的性质,可以对 Y 做变换继续使用线性模型,也可以使用其他的模型来允许残差不同分布。在 R 中可以调用函数 glm

Transformation

有以下任一需求的时候都可以考虑对 Yi 做变换:

  • 稳定方差:观察到 εi 似乎是异方差的
  • 提高正态性
  • 简化模型,提高解释性

最普遍的方法是 Box-Cox Transformation,取 Y=(Yλ1)/λ,首要任务是找到最合适的 λ 做变换。事实上所谓的“最合适”包含两层意义,其一是希望模型拟合程度较高,其二是希望 λ 使得 Y 的形式尽量简洁明了,解释性强,也就是取所谓的 convenient lambda。例如取 λ=0 时有 Y=logY,取 λ 为整数时即为多项式回归,等等。

另外不同的 λ 值会对数据的右偏有不同程度的改善,右尾压缩最明显的是开根和取对数;也可以取负值来压缩左尾。

在实际使用中往往是直接对 λ 取一个 sequence,找到近似取到 maximum likelihood 或者使得 SSE 最小的 λ 的一个置信区间,再在其中寻找合适的 convenient lambda。

一些典型的数据分布和变换方法:

prototype-box-cox-trans.png

Miscellaneous Topics

一些杂谈,关于 simple linear regression 的最后内容。

Regression Through the Origin

非常坏回归,爱来自自由度(

强迫过原点回归的时候斜率的估计是 β^1=ΣXiYiΣXi2,这会导致一些很严重的后果:

  • 残差的和 Σei0,这导致 (YiY¯)2=(YiY^i)2+(Y^iY¯)2+2(YiY^i)(Y^iY¯) 的交互项无法消去,于是也不能再对 SST 做分解成为 SSE 和 SSR 之和。
  • SSE 此时的自由度是 n1,SST 的自由度也不再是 SSE 和 SSR 的自由度之和。

Inverse Predictions

YX 做回归得到 y=b0+b1x 和对 XY 做回归得到 x=a0+a1y 中,实际上在绝大多数情况下都有 a1b11。也就是说,两种回归的结果不能简单地用线性求反函数得到,这听起来有点反直觉但确实是合理的,做 YX 回归的目标是取得关于 Y 的最小残差平方和,做 XY 回归的目标是取得关于 X 的最小残差平方和,目标不一致得到的结果自然不同。

用理论来解释的话,取相关系数 r=(XiX¯)(YiY¯)(XiX¯)2(YiY¯)2,记 SY=(YiY¯)2,SX=(XiX¯)2,于是有:

b1=rSYSX,a1=rSXSY,因此 b1a1=r2。两条回归线之间的夹角是 tanθ=1r2r(SXSY+SYSX)

如果对于某个响应值 Yi 需要反向预测输入变量 Xi,应该选择 X^h=Yhb0b1 而不是反过来做 X 关于 Y 的回归。

Limitations of R2

使用 R2 作为判断依据的时候要注意以下问题:

  • R2 不能作为拟合程度的度量。R2=b12(XiX¯)2(YiY¯)2 的形式显示了,实际上如果把 X 的取值变得足够分散,R2 的取值想要多大就能有多大。

    不同的散点分布情况可以得到几乎相同的 R2,一定要画图检查线性模型是不是最合理的。

    same-r-square-but-different-models.png

  • 不能对于不同的模型比较 R2,归根结底 R2 反映的是模型对于 SST 的解释能力,SST 一旦改变就不能交叉对比。因此上述 transformation 中对于系数 λ 的比选标准是 maximum likelihood。

  • R2 不能显示 XY 之间的因果关系,因为 YXXY 这两种回归得到的 R2 是相等的。

Lecture 7

从一元线性回归过渡到多元回归的部分,介绍回归方程的矩阵表达。

矩阵表达

n 个回归方程的形式改成:

[Y1Y2...Yn]=[1X1,1X2,1...Xp1,11X1,2X2,2...Xp1,2...............1X1,nX2,n...Xp1,n][β0β1...βp1]+[ε1ε2...εn]

Y=Xβ+ε

假设 εNn(0,σ2In×n),则有 YNn(Xβ,σ2In×n),以下考虑参数矩阵 β 的估计:

b=β^=(XTX)1XTYNp(β,(XTX)1σ2)

和 simple linear regression 相同,b 也有 BLUE 的性质。

因此有 Y 的平均响应为 Y^=Xβ^=X(XTX)1XTY,其中记 H=X(XTX)1XT,这就是著名的 hat matrix,围绕它有很多性质,后面再说;由于残差 e=YY^=(IX(XTX)1XT)Y,因此 simple linear regression 中对于 e 的限制在此处相应地修改为 eTY^=YT(IX(XTX)1XT)(X(XTX)1XT)Y=0

相应地,σ 的估计量可以改成 s2=eTenp=YT(IH)Ynp,这就是 MSE,是 σ2 的无偏估计;又因为 Var(b)=(XTX)1σ2,因此有 V^ar(b)=(XTX)1σ^2=s2(XTX)1Var(b) 的估计。

ANOVA 中的方差和自由度拆分在这里仍然适用:

SST=(YY¯1n)T(YY¯1n),df=n1

SSM=(Y^Y¯1n)T(Y^Y¯1n),df=p1

SSE=(YY^)T(YY^),df=np

Ftest 的检验统计量是 F=MSMMSEH0Fp1,np,其中假设是 H0:β1=β2=...=βp1=0;决定系数 R2=SSMSST 仍然保持不变,显示了线性模型解释方差的能力;adjusted R2 定义为 1MSEMST=1n1npSSESST,相对于 R2 的优势在于,R2 在有任意的变量进入模型时都会增大,但如果新变量的显著性不足会导致 adjusted R2 下降,是一个更有力的参数。

Hat Matrix

Hat Matrix 有丰富的性质,在这里列举一些和统计关联比较大的。

Cov(e)=Cov((IH)Y)=(IH)Tσ2(IH)=σ2(IH)

Cov(ei,ej)=σ2hij

Var(ei)=σ2(1hii)

其中 hij 是矩阵 IH 的分量。

事实上,第 i 点的杠杆值就是 hii。可以通过 H=H2 这一性质简单地证明出 hii1,这也和杠杆值的定义是符合的。

Multiple Linear Regression

  • 关于多元回归的系数 β1,β2,...,βp1(也称为偏回归系数),我们仍然可以按照 SLR 时的方式解释它们:βi 是在 X1,X2,...,Xi1,Xi+1,...,Xp1 不变时,Xi 变化一个单位导致 E(Y) 的变化量。

    实际上这就引出了多元回归的一个巨大隐患:并不是所有的变量都完全不相关,一旦 X1,X2 之间有相关性存在,改变 X1 的时候很难保证 X2 不变,多元回归的系数解释性因此变差。

    虽然理论上确实可能存在完全不相关的变量,但是对应的数据也很难不相关。

  • Var(ei)=σ2(1hii),因此在线性回归中,位于中间(靠近 X¯)的 X 拟合能力较弱(杠杆值低,对回归线的影响较弱)但是预测能力较好(Var(ei) 较小,Y^ 能够变动的范围小)。相反地,位于两端的 X 拟合能力较强但是预测能力较弱。

    事实上我们是不能轻易预测已有数据范围之外的 x 的响应的,理由如上所述,此时的预测能力很弱。

Lecture 8

Explanatory Data Analysis——Transformation

Why look at Y

一般来说 Y 的分布我们是不用太在意的,毕竟不是同分布,但其实考虑到做变换的话还是要稍微看一下它的分布。

如果分布是高度有偏的,做变换把长尾的部分往中央收一收可以得到的效果有:

  • 减小 SST,修正模型的显著性;

  • 把拖尾方向可能的 outlier 向内收,有可能可以变成正常的数据来使用;另一侧原来数据比较集中,做变换如果可以将分布拉长的话便于观察其中的一些特征;

    实际上 outlier 并不能随意的扔掉,做变换的想法是能够保留就尽量保留。有些时候很多现象就隐藏在出现了 outlier 这件事情上面,比如臭氧层空洞没有被尽早发现就是因为相关的数据被当成 outlier 扔掉了。

  • 方差对于 skewed data 和 outlier 都比较敏感;

  • 对于 skewed data,均值并不是中心位置很好的显示。

但通常来说做变换之前都需要三思:

  • 做变换后可解释性会有问题,比如 Box-Cox Transformation 中奇怪的 λ 取值会导致可解释性变差,实验数据有的时候需要保留单位,做变换之后会失去意义;
  • 会导致 H0 改变;
  • 不一定能够改进正态性,做变换未必有好的效果;
  • 做了变换得到结果之后,变回原始数据很可能破坏无偏性;
  • 破坏了残差的分布。

有一些平替方案:GLM, resampling methods, non-parametric methods

另外我们一般不会对 X 做变换,除非做变换之后和 Y 有非常明确的关系,另一个原因是做变换可能会导致共线性。

Why log Transformation

对 right-skewed data 做 log transformation 的好处是显著多于其他类型的变换的:

  • logY1logY2=log(1+Y1Y2Y2)Y1Y2Y2,可以把绝对误差变为相对误差来讨论;
  • logY 可以让数据的分布更对称,出于计算的考虑
  • 如果 Y 全部都是正数,但 Y=Xβ+εN(Xβ,σ2I),一个多元正态分布的数据全部是正数的概率非常小,假设不合理。

但是最大的问题就是可解释性。对于参数 β 的解释是在 X 增长一个单位时 Y 的平均响应的对应变化,在这里我们选择的是报告平均响应变化的百分比,也即 e(X+1)beXbeXb=eb×100%,作为一个补救措施。

MLR vs SLR

相比于 simple linear regression,MLR 的变量增多了之后需要考虑的问题也增加了,复杂度也变大了。

变量选择

破事很多:

  • 单独一个 Xi 在模型里不显著也不能直接扔掉,它可能是 suppressor variable,会让别的变量显著
  • 多个变量的模型显著不能推出单个变量显著
  • 单变量模型中,变量显著性 t 检验和模型显著性 F 检验的 p-value 相等,因为 F1,n=tn2
  • 其余变量是否需要进入模型,可以先考虑残差对于其余各个变量的回归显著性,先测试最显著的变量进入模型

有的时候我们认为模型里变量越多越好,有的时候越少越好,这取决于做回归的目的:

  • 回归模型是为了预测:变量越多或者说 adjusted R2 越大,解释的方差越多,预测水平越好
  • 回归模型是为了解释:变量越少,explanatory variable 和 response 之间的关系越明确,解释性越好

总之,会随着模型中进入的变量而改变的参数有:

  • 回归系数(β^i
  • standard error
  • 模型显著性

诡异的现象

有的时候会遇到 Significance & low R2 同时出现的情况,也就是某个变量看起来是显著的,但是 R2 很低,解释方差的能力并不好。这是正常的现象。

  • 回到 R2 的定义和 F 检验的本质可以发现,R2=SSRSST,F=MSRMSE=R21R2npp1,如果 n 非常大,即使 R2 很小也和 F 很大之间并不矛盾。

  • R2 的分母 SST 实际上表征了数据的分散程度,数据非常分散的时候是可能导致 R2 减小的。但是数据分散和存在线性并不矛盾,图中的两个线性关系当然都显著,但是 R2 有巨大的差距。

    central-tendency-and-variability.png

Inference

  • 多重线性回归的推断里面也有一个著名定理:YNn(Xβ,σ2I),于是有 bNp(β,σ2(XTX)1),以及:

    • eTeσ2=SSEσ2χnp2
    • bSSE 相互独立

    由此得到很多推断方法。

  • 关于 bk 的推断和 CI,主要关注 bkN(βk,σ2((XTX)1)k,k),希望检验 H0:βk=0;H1:βk0

    检验统计量是 t=bks(bk)=bkMSE((XTX)1)k,kH0tnp,由此可以检查单个变量的显著性。注意此处所谓的显著性,指的是第 k 个变量最后一个进入模型时的显著性,无论它在 R table 里排列在哪里。和 general linear test 的结果一致。如果这一检验体现出来变量 Xk 不显著,绝大多数情况下是可以不保留的。

    100(1α)% 置信区间是 (bk±t1α/2,nps(bk)),注意 s(bk) 的含义在上述已经提到。

  • 关于 E(Yh) 的推断和 CI,考虑 μh=E(Yh)=Xhβ

    其估计量是 μ^h=Xhb=Xh(XTX)1XTYN(μh,σ2Xh(XTX)1XhT),于是 s2(μ^h)=MSEXh(XTX)1XhT。因此 μh100(1α)% 置信区间是 (μ^h±t1α/2,nps(μ^h))

    考虑 Yh=Xhβ+ε,有 Y^hYhN(0,σ2+σ2Xh(XTX)1XhT)s2(Y^hYh)=MSE(1+Xh(XTX)1XhT),因此 Yh100(1α)% 置信区间是 (Y^h±tα/2,nps(Y^hYh))

Lecture 9

Extra Sum of Squares

想法很简单,定义就是把一个新的变量加入模型后可以额外解释的方差,例如模型中本来存在 X2 时,加入 X1 后可以额外解释的方差是 SSR(X1|X2)=SSR(X1,X2)SSR(X2)=SSE(X2)SSE(X1,X2)

在多重回归中分解 sum of squares 的方式最常见的是 Type I method:

SSR(X1,X2,X3,X4)=SSR(X1)+SSR(X2|X1)+SSR(X3|X1,X2)+SSR(X4|X1,X2,X3)

也就是所谓的 sequential sum of squares 的方法,在 anova() 中的列表就是这样的分解方式,分掉了所有的 SSR。

SAS 中的 sum of square 分解有三种模式,以考虑 A,B,AB 三种因子(2-way ANOVA)的情况如下排列:

3-types-anova.png

可以看到 type I 就是按照 sequential 的模式进入模型,认为不同的变量有重要性的排序,先进入理论上来说最有必要进入模型的 A,再进入 B,最后进入 AB,分别计算 extra sum of squares;type II 忽略了交互效应 AB,对于 A 和 B 的单变量分解是与 type I 相同的;type III 和之前提到的 t 检验类似,每个模型的 extra sum of square 分解都是考虑它最后一个进入模型时带来的方差解释能力,但这里实际上存在一个问题,按照 hierarchy 的原则来说如果主效应 A,B 之一不显著/没有进入模型,是不能允许交互项 AB 进入模型的。

General Linear Test

Test Reduced Model

一种检验 full model 和 reduced model 之间关系的检验方法,例如对于存在五个变量 X1,X2,X3,X4,X5 的 full model 和存在三个变量 X1,X2,X3 的 reduced model 来说,假设 H0:β4=β5=0;H1:β4,β5 中至少有一个不是 0

检验统计量是 F=(SSE(R)SSE(F))/(dfE(R)dfE(F)SSE(F)/dfE(F)H0FdfE(R)dfE(F),dfE(F),注意第一个自由度实际上是两个模型相差的变量个数,分母中的 SSE(R)SSE(F)=SSR(F)SSE(R)=SSR(X4,X5|X1,X2,X3) 实际上是 extra sum of squares。

事实上我们是 prefer 接受 H0 的,就相当于可以使用变量更少的模型,解释性更强;但是有的时候检验做出来接受 H0,也需要考虑一下是不是数据量太小导致 power 不够,如果数据量够大就可以放心地使用 reduced model 了。

Test Linear Hypothesis

实际上只要是关于回归系数的线性检验就都可以用 general linear test 来进行,比如 H0:β1+3β2=12,等等。

H0:Cβ=tC 是有关 β 的约束条件的矩阵,检验统计量是 F=(Cβ^t)T(C(XTX)1CT)1(Cβ^t)qs2H0Fq,np,其中 q=rank(C)

偏决定系数 & 偏相关系数

RYk|1,2,...,k1,k+1,...,q2=SSR(Xk|X1,..,Xk1,Xk+1,...,Xq)SSE(X1,...,Xk1,Xk+1,...,Xq)=1SSE(X1,X2,...,Xq)SSE(X1,...,Xk1,Xk+1,...,Xq)

本质上说的是,模型中新进入的 Xk 带来的 extra sum of squares 解释了 SSE 的比例,也即解释了没有由原来的变量解释掉的方差比率。

实际上另一种表现形式可以是,我们认为 RYk|1,2,...,k1,k+1,...,q2=SSE(R)SSE(F)SSE(R)=SSR(Xk|Xk)SST(Y|Xk)=R2(Y|Xk,Xk|Xk)

也就是说,实际上是对于 Y|XkXk|Xk 这两组残差做线性回归,得到的决定系数正好是 Xk 的偏决定系数。

实际上偏相关系数 rk|1,2,...,k1,k+1,...,q=sign(β^k)RYk|1,2,...,k1,k+1,...,q2 表征的就是这两组残差之间的相关系数,如果有 0<r3|12<r12 就说明变量 X3 可以部分解释 X1,X2 之间的相关性。

标准回归

Motivation

  • 如果 X1,X2 之间的尺度差距过大会导致 β1,β2 的尺度也有差距,无法直接比较,也可能会影响变量显著性。
  • 会导致 designed matrix 接近不满秩,计算逆矩阵出现问题。

Method——Correlation Transformation

考虑 sY=i(YiY¯)2n1,sXk=i(XikX¯k)2n1,对变量和响应值分别做标准化:

1n1YiY¯sY=1n1(β0+β1Xi1+β2Xi2+εi)(β0+β1X¯1+β2X¯2+ε¯)sY=1n1β1(Xi1X¯1)+β2(Xi2X¯2)+(εiε¯)sY=β1sX1sY(Xi1X¯1)n1sX1+β2sX2sY(Xi2X¯2)n1sX2+εiε¯n1sY

Yi=0+β1Xi1+β2Xi2+...+βp1Xi,p1+εi

其中 βk=sXkSYβk 是新的回归系数。

  • 注意这个方法是有一些问题的,比如说破坏了残差的假设,以及强迫过原点。

  • 标准回归的系数估计和 ANOVA table 都发生了改变,这是因为 SST 变成了 1,ANOVA table 自然会变化。但是偏决定系数都是由偏相关系数直接决定的,所以没有变化。

    类似地,如果只对 X 做变换而不改变 Y,会有系数发生改变,但是 ANOVA table 和偏决定系数都不变。

Suppressor Variable

如果有 SSR(X2|X1)>SSR(X2),也就是 X1 在模型里的时候会让 X2 更显著,则称 X1 是一个 suppressor variable。原理是 X1 可以帮助解释一部分 X2 中的噪音,使得 X2 更显著。

X1 本身未必是显著的,这也就说明了如果单一变量不显著的话也不能贸然扔掉,它可能会是一个抑制变量。更极端的情况下,假设 X1Y 完全无关,有 X2 在模型中不会改变 X1 的系数估计,但是会导致 RY2|12RY22

一般来说脑补一下这种类似韦恩图的直观解释就好。

venn.png

Lecture 10

Multicollinearity

关于多重共线性的一些研究,先考虑一些极端情况,然后观察多重共线性会导致什么后果。

Zero Collinearity

在几个解释变量完全没有共线性的情况称为正交设计,也就是说设计矩阵的各列之间是正交的。这是一个很好的情况,互相之间并不会干扰,有 XTX=diag(||X0||2,||X1||2,...,||Xp1||2),且有 bj=XjTY||Xj||2Var(bj)=σ2||Xj||2

结果就是无论进多少变量都不会影响单个 bj 的估计,但是会影响到 MSE 导致 p-value 的变化。与此同时 type I, II, III ANOVA table 的结果是一样的,这是因为 extra sum of squares 就是单个变量能解释的方差。

venn-for-orthogonal-design.png

Linearly Dependent

一个比较极端的例子是完全线性相关,比如变量之间有 c1X1+...+cp1Xp1=c 这样的关系,会导致设计阵不满秩无法求逆。从数学上来说只要去掉其中一个变量即可,但是在统计上未必合适的。

Multicollinearity

正常一些的情况就是普通的多重共线性,从回归结果来看多重共线性的一大特征就是模型整体显著,但是没有一个变量是显著的。回归结果的显著性是代表每个变量最后一个进入模型时的显著性,也就是说明每个变量几乎都是可以被前面进入模型的变量表示出来的。多重共线性有以下危害:

  • X1,X2 之间较大的多重共线性会导致对于单个变量的 Var(bi) 增大,但是仍然是无偏估计。这也就说明了,出现多重共线性时 bi 的方差很大,会导致 bi 的估计值并不准确。举个例子来说,有的时候理论上 XiY 之间是正相关,但是得到的系数估计是负的,就有可能是因为 Var(bi) 过大导致一组数据得到的结果距离“真实值”有很大的偏差,甚至从正相关变成了负相关。
  • Type I SS 和 Type II SS 的结果可能是不同的,因为变量之间对方差解释有竞争,也可能有 suppressor variable,进入模型的顺序在此时变得重要了起来,二者不同的结果可能导致判断上的问题。
  • 两部分解释变量解释了同一部分的方差,导致模型解释能力下降。模型整体显著但每一个变量都不显著,很有可能是过拟合了。
  • 从数学上来说 XTX 接近退化,求逆时导致数值误差增大。

multicollinearity.png

有一些弥补的方案,但是要视建立模型的目的而定:

  • 如果单纯是为了预测,其实增大模型的 sample size 是可以解决问题的

  • 如果是为了解释性,需要做很多其他的努力,比如移除一些变量,对变量做变换,PCA 方法等等。

    仍然存在很多问题,比如移除变量时万一移除了某个重要的类别型变量,可能会导致 Simpson's Paradox 出现,移除变量也会导致系数估计的方差减小,可能减小 MSE 但是会导致 bias 增大,但如果移除了一个重要的解释变量会导致它进入 error term,进而导致 σ2 的估计增大,需要 trade-off;

    做变换不一定能成功降低共线性还会造成解释上的困难,PCA 的解释性更差,等等。

Multicollinearity 可能有以下来源:

  • 抽样时 X 的区域太小
  • 理论上两个变量就是相关的却一起放进了模型,比如家庭收入和房屋面积
  • 使用多项式回归
  • p>n
  • 某些变量彼此是受同一隐含的因素影响的,比如一些 time series data

Polynomial Regression

多项式回归可能会导致很强的共线性,比如一个只取 01 的类别型变量取 xx2进入模型就完全共线。

有一个弥补的方案就是使用 centered data,为每一个变量减去一个均值,导致数值有正有负,再做非负的平方项就得到共线性不那么强的两个解释变量。实际上再进一步对数据做尺度上的标准化也可以,但是对系数估计没有任何影响。

对数据做中心化不会导致高阶项的系数改变,但有可能会导致低阶项的系数和 extra sum of squares 变化。另外如果显著性不随之变化的话也有可能是出现了正交设计的情况,需要按照结果分析。

交互项

模型中存在交互项的本质就是 Xi 对于 Y 的效应和回归系数估计都会受到 Xj 的影响。

  • 如果 X2 是连续型变量而 X1 是类别型变量,回归模型中包含二者的交互项,例如:

    Y=β0+β1X1+β2X2+β3X1X2+ε

    这就说明对于 group 1,也就是 X1=0 时模型是 Y=β0+β2X2+ε,对于 group 2 也就是 X1=1 时模型是 Y=(β0+β1)+(β2+β3)X2+ε。希望检验的问题是 β1,β3 是否为 0 来查看两组回归线的斜率、截距之间是否存在差异。

  • 如果二者都是连续型变量也是类似的情况,相比之下类别型变量和连续型变量的交互效应有显著的分组意义。

Lecture 11

模型选择方法

一些没那么数学的

  • 喜闻乐见的穷举,可惜只能处理不超过 n=40 个变量的情况
  • stepwise greedy method,不喜闻乐见的要写代码,理解 idea 就好(心虚

一些准则

假设可供选择的 explanatory variable 有 P1 个,从中选择 p1 个并进行判断。

  • 观察 R2 和 adjusted R2,取后者较大的模型

  • 观察 mallow's CpΓp=E(SSE(p))σ2(n2p)p,实际上在操作中只能取 Γ^p=SSE(p)MSE(P)(n2p)

    • 如果 Γ^pp 说明存在显著的误差,可能遗漏了重要的变量没有进入模型
    • 如果 Γ^pp 说明过拟合了,导致 SSE(p)MSE(P)
    • 如果 Γ^pp 说明是 unbiased,取接近于 p 的 mallow's Cp 中最小的一个对应的模型。

    实际上理论的形式对于 PΓP=P

  • AIC=nlog(SSE(p)n)+2pBIC=nlog(SSE(p)n)+(logn)p,二者都是最小值对应的模型最合适。

    注意 BIC 实际上相比 AIC 加了一个更大的惩罚在模型的变量数上,更注重解释性;一般来说有 BIC>AIC

  • Predicted Residual Error Sum of Squares:PRESS(p)=i=1n(YiY^i(i))2,实际上有 YiY^i(i)=ei1hii

    取使得 PRESS(p) 最小的模型。用来观察过拟合与否。

  • Prediction Rp2Rp2=1PRESSSST,如果模型里噪音过大,则有 PRESS>SST,此时 Rp2<0 也是可以取负值的。如果有 Rp2R2 则也可能是过拟合了,即使有些独立变量是显著的。

我们选择模型一般会考虑 adjusted R2,AIC 或者 mallow's Cp

模型诊断

Partial Regression Plots

每个 Xi 都可以做出一张 partial regression plot,也即所谓的 AV-plot,实际上就是对 Y|XiXi|Xi 这两部分残差互相做回归得到的图,展示了完整模型中 YXi 之间的边际关系。也可以用来检测非线性关系、异方差问题和 outliers。

Studentized Residuals

补充在 Lecture 6 里了。

Assessing Outliers

有以下指标可以考虑:

  • Difference caused to fitted values:(DFFIT)i=Y^iY^i(i)=hii1hiiei

  • Studentized DFFIT:(DFFITS)i=Y^iY^i(i)MSEihii=tihii1hii

    对于不太大的数据量,如果 |DFFITS|>1 则认为是强影响力点,大数据量时认为 |DFFITS|>2pn 是强影响力点。

  • Cook's Distance:Di=ei2pMSEhii(1hii)2,在 R 中认为某个点有强影响力的 threshold 是 0.5,事实上如果一个点的 Cook's distance 分布距离其他点较远,就可以认为是强影响力点了。

  • Difference in Beta Estimates:(DFBETAS)k(i)=bkbk(i)MSE(i)ckk,其中 ckk(XTX)1 的第 k×k 个分量。

    对于大的数据量,如果 |DFFITS|>1 则认为是对于回归系数估计值的强影响力点,不太大的数据量时认为 |DFFITS|>2n 是对于回归系数估计值的强影响力点。

Multicollinearity Diagnose

有以下两个指标:

  • Variance Inflation Factor:多重共线性经常导致方差膨胀,这是一个表征的指标,(VIF)k=(1Rk2)1,其中 Rk2 指的是将 Xk 相对于其他 p2 个 explanatory variable 做回归得到的决定系数。如果 (VIF)k1 则认为第 k 个变量 Xk 是会发生多重共线性的变量。
  • Tolerance:TOL=1/VIF,判断准则类似上述。

Lecture 12

本节探讨 remedies for multiple linear regression,主要是异方差情况和多重共线性。

Equal Variance Remedy

这一部分主要处理模型发生异方差问题的情况。

也就是说,实际上有 ε1,ε2,...,εn 的方差不全为 σ2,记方差为 σ12,σ22,...,σn2。此时的 likelihood function 是:

L(β1,β2)=Πi=1nfi(β1,β2|Xi,Yi)=Πi=1n(12πσiexp(12(Yiβ0β1Xiσi)2))

可以看到 ordinary least square 条件得到的 b0=β^0,b1=β^1 不再满足 MLE 的条件。但如果是在不知异方差的情况下仍然使用 OLS 或者 MLE 条件得到的参数估计,仍然是可以满足无偏性的,但不满足最小方差性质。

Weighted Regression

简单来说,通过选取 {wi=1σi2}i=1n 作为权重,考虑 Σi=1nwiei2=Σi=1n(Yiβ0β1Xi,1...βp1Xi,p1σi)2 的最小性问题。

  • 最简单的情况,σ1,...,σn 均已知,则有 wi=1σi2

    W=[1σ12...1σn2] 使得回归问题变为 W12Y=W12Xβ+W12ε,记 Y=W12Y,X=W12X,ε=W12ε,由于 Var(ε)=In×n 满足同方差条件,因此新的回归问题是符合条件的。

    注意新的回归问题 Y=Xβ+ε 事实上没有改变系数 β,但系数估计 bw=(XTWX)1(XTWY) 是改变了的,这是正常现象,因为对这一问题做 remedy 的主要原因就是假设不满足,导致按照 OLS 做出的系数估计不准确,因此 weighted regression 做出的修正也是相对于原系数 β 的。

    bw 仍然是无偏估计,也保证 Var(bw)=(XTWX)1 是最小方差。

  • 稍微复杂一点的情况,虽然 σi2 未知但 σi2/σj2 均已知,取 wi=σ12σi2 即可。于是有:

    W=σ12[1σ12...1σn2] 使得回归问题变为 W12Y=W12Xβ+W12ε,记 Y=W12Y,X=W12X,ε=W12ε,由于 Var(ε)=σ12In×n 满足同方差条件,因此新的回归问题是符合条件的。

    新的回归系数估计是 bw=(XTWX)1(XTWY)Var(bw)=σ12(XTWX)1,由此还可以做出对 σ1 的参数估计,σ^12=MSEwls=Σ(YiY^i)2np=Σwi(YiY^i)2np=Σwiei2np,其中 wi=σ12σi2

  • 一般情况下 {σi} 是完全未知的,我们是在模型诊断中发现异方差的现象,因此不可能直接通过方差值推权重系数。这个时候一般有两种选择:

    • 重复试验取 Yi 的方差估计 si2,于是权重系数为 wi=1si2

    • 先对 YX 进行 OLS 回归,取出此时的 residual {ei} 作为 {σi} 的估计,取 wi=1ei2 作为权重即可。

      效果不明显时多迭代几次。

在观察 weighted least square 和 ordinary least square 模型差别时,注意:

  • R2 以及 adjusted R2 的数值差别没有很强的意义,WLS 情况下原始数据 {Yi} 已经发生了变化,实际上 SST 也已经变了,没有什么比较的意义。
  • 需要关注的点是 residual standard error,越接近 1 越说明异方差的调整是成功的。
  • 有时会观察到 WLS 情况下 σ^2 在减小,似乎数据的分散程度在减小,这是因为 MSE 在减小。但是 WLS 和 OLS 情况下的 MSE 和 MST 都没有比较的意义,因此 σ^ 的变化也没有研究的价值。唯一确定的是它会接近于 1,这一点可以证明异方差的调整效果是成功的。

Multicollinearity Remedy

如果存在多重共线性,主要发生的问题是 XTX 求逆是一个病态的数值问题,误差很大。实际上极端来说如果存在完全共线性,XTX 会退化为不满秩的情况。

可以用 ridge regression 对多重共线性进行弥补。

Ridge Regression

主要的 idea 是如果 (XTX) 接近于不满秩,则在参数估计中将其改变为 (XTX+λI)λ 是待取的参数。对于矩阵的对角元进行改变如同突起的山脊,因此得名岭回归。

Ridge regression 的本质是对优化问题进行了修改。OLS 中的优化问题是求使得 (YXβ)T(YXβ) 最小的 β,ridge regression 中将 ||β||22=Σi=0p1βi2 加入了优化,对 β 的长度(事实上应该称之为 2- 范数)做惩罚。因此,实际上是求使得 (YXβ)T(YXβ)+λΣi=0p1βi2 最小的 β^=(XTX+λI)1XTY,这使得参数估计 b=β^ 呈现出比 OLS 下长度和方差都更小的特征。

在实际应用中,需要通过确定最佳的 λ 从而得到合适的参数估计,一般是对 λ 取一个 sequence 进行尝试。如果发现某个 explanatory variable 的系数在 λ 增大时很快下降到 0,实际上它很有可能是不需要进入模型的。

应用岭回归来弥补模型的多重共线性的时候,既是为了消除共线性,也是在牺牲一些 β^ 的无偏性来换取更小的方差。

LASSO & Elastic Net

LASSO 中把惩罚的 β 长度替换为了 β 的 1- 范数,弹性网络则是对 LASSO 和 ridge regression 进行了结合。

本质上都是 Bayesian modes。

Influencial Cases Remedy

更改一些更 robust 的优化模型,例如 least absolute deviation 和 least median of squares,缺点是算起来会比较困难。

或者考虑非参数模型。

Nonlinearity Remedy

考虑局部多项式回归/局部回归,总之是对数据进行分块,所谓的 lowess。

Lecture 13

One Factor ANOVA

(从生统笔记复制来的)

首先给出一个希望做检验的场景:nT 个实验对象被分成 r 组,每组有 ni 个实验对象,有 nT=Σi=1rni。由此我们得到 nT 个数据 Yiji 表示组别,1irj 表示在某一组内的编号,1jni

Cell means model

  • 模型假设是 Yij=μi+εij

    其中,μi 是第 i 组的理论均值,εij i.i.d. N(0,σ2)。注意到在这一模型假设中有 r+1 个参数,分别是 μ1,μ2,...,μr,σ2,我们需要用得到的数据来对这些未知参数进行估计。考虑一些统计量作为参数的估计量:

    Y¯i.=1niΣj=1niYij=μ^i

    Y¯..=1nTΣi=1rΣj=1niYij=1nTΣi=1rniY¯i.

    si2=Σj=1ni(YijY¯i.)2/(ni1)

    s2=Σi=1rΣj=1ni(YijY¯i.)2=1nTrΣi=1r(ni1)si2=σ^2

  • 在这一模型中,我们关注的假设检验是 i 组实验之间是否存在差异,假设检验表示为 H0:μ1=μ2=...=μr=μ,对应的备择假设即为 {μi}i=1r 中存在不同的项。检验最经典的方法即为 ANOVA,analysis of variance。核心是以下的分解:

    SSTO=ΣiΣj(YijY¯..)2=ΣiΣj(YijY¯i.+Y¯i.Y¯..)2=Σini(Y¯i.Y¯..)2+ΣiΣj(YijY¯i.)2=SSTR+SSE

    可以观察到,SSTR 是组间差距,体现了不同组别之间的差别,SSE 是组内差距,体现了同一组内各数据的偏差。注意 SSTR 的自由度是 r1SSE 的自由度是 nTrSSTO 的自由度是 nT1

    两个统计量的期望是 E(MSE)=σ2E(MSTR)=σ2+Σini(μiμ.)2r1,其中 μ.=ΣiniμinT

    H0 成立时,SSEσ2χnTr2SSTRσ2χr12。因此 F=MSTRMSEFr1,nTr 作为最终的检验统计量。

    F>F(1α,r1,nTr) 时拒绝原假设,否则接受;Power=P(F>F(1α,r1,nTr)|δ),其中 δ 是一个非中心偏移量,δ=1σ1rΣini(μiμ.)2

  • 也可以作为一个线性回归的问题来看待,design matrix 是 $ X =

    [100...0010...0...............000...1]

    $,系数向量是 μ=[μ1μ2...μr],因此整体的回归方程是 Y=X+,注意这个回归问题是强迫过原点的。

Factor Effects Model

  • Factor Effects Model 是 Cell Means Model 的一个重新参数化的结果。模型假设是 Yij=μ+τi+εij

    其中,μi 是整体的理论均值,εiji.i.d.N(0,σ2)。它的参数比 cell mean model 多一个,分别是 μ,τ1,...,τr,σ2,但是自由度是相同的,因为 {τi}i=1r 存在一个约束 Σi=1rτi=0,如果没有这个约束会导致存在多组解。考虑一些统计量作为参数的估计量:

    Y¯i.=1niΣj=1niYij=τ^i+μ^

    Y¯..=1nTΣi=1rΣj=1niYij=1nTΣi=1rniY¯i.=μ^

    si2=Σ(YijY¯i.)2/(ni1)

    s2=1nTrΣi=1r(ni1)si2=σ^2

  • 在这一模型中,我们关注的假设检验仍然是 i 组实验之间是否存在差异,假设检验表示为 H0:τ1=τ2=...=τr=0,对应的备择假设即为 {μi}i=1r 中存在不同的项。factor effects model 在参数的含义上比 cell mean model 更清晰。

  • 可以作为一个线性回归的问题来看待,design matrix 是 $ X =

    [110...0101...0...............111...1]

    $,系数向量是 μ=[μτ1τ2...τr1],因此整体的回归方程是 Y=X+,注意这个回归问题的截距就是 μ,不强迫过原点,相比 cell mean model 算是做了一点点优化。

Example

  • 在做回归之前要注明哪些变量是 factor:

    1
    2
    3
    4
    > data$design = factor(data$design)

    > fit = lm(cases ~ design, data = data)
    > summary(fit)
  • 方便查看 μ^i 的命令是过原点回归,但查看 MSR 的方式是不过原点回归。

  • Std.Errori2=Var(μ^i)=Var(Σj=1niYijni)=σ^2ni=s2ni

    sdi2=si2,由此计算出 s2 后再得到每个 Std.Error 的值是 sni

Inference on One-Way ANOVA

Confidence Interval for μi

事实上这只是个理论上可做的问题而已,现实中不会对 μi 做推断,我们关注的是 μi 之间的差异。

由于 Y¯i.N(μi,σ2/ni),因此 μi 的 pooled confidence interval 是 (Y¯i.tcsni,Y¯i.+tcsni),其中 tc=t(1α2,nTr)。注意其中的 s2 在上面已经有定义,实际上就是 SSE。

当然也可以认为是 (Y¯i.tcsi,Y¯i.+tcsi)si 是每个 μi 对应的 sdi。但是这样得到的置信区间一般来说较宽,准确性不如 pooled confidence interval,我们不太会采用。

实际上这样做 t-test 的话 family-wise error rate 很大,即使做出显著的效果也很有可能是发生了 Type I Error。

Bonferroni Confidence Intervals for μi

想要同时估计所有的 μi 的时候可以采用 Bonferroni method,但是也有明显的缺点是一旦 factor level r 较大,就会导致每个 μi 都不显著,置信区间的 level of significance 只有 α/2r,几乎是无效的。

同样是 t-test,但过于保守了。对于较小的 r 可以进行尝试。

Test Difference in Means

由于 Y¯i.Y¯j.N(μiμk,σ2ni+σ2nj)μiμk 的 confidence interval 是 (Y¯i.Y¯j.tcs(Y¯i.Y¯k.),Y¯i.Y¯j.+tcs(Y¯i.Y¯k.)),其中 s(Y¯i.Y¯k.)=σ^2ni+σ^2nj=s1ni+1njtc 是和检验方法有关的常数。

由于一共有 r 个 mean μi,所以一共要做 r(r1)2 次检验来确定两两之间有无差异。

  • Tukey's HSD Method: 使用 q-test,取 tc=y¯maxy¯min2s/n;适用于两两检验。
  • Scheffe's Method: 使用 F-test,取 tc=(r1)F(1α,r1,nTr),适用于线性组合的对照(contrast,见下)。实际上也过于保守了,导致 power 比较低。

Contrast

Concept

关于对照的具体定义是,取一组均值为 0 的常数作为权重,即为 Σi=1rci=0,此时研究 L=Σi=1rciμi 的推断。

注意到 L^=ΣciY¯i.N(L,Var(L^)),其中 Var(L^)=Σci2Var(Y¯i.)V^ar(L^)=MSEΣ(ci2/ni)

test statistic 是 T=L^L0V^ar(L^)t(nTr)。例如在 H0:L=0 下有 T=ΣciY¯i.MSEΣci2/nit(nTr),于是 T2=(ΣciY¯i.)2MSEΣci2/ni=SSC/1MSEF(1,nTr),其中定义 SSC=(ΣciY¯i.)2/Σ(ci2/ni),称为 sum of contrast。

Multiple Contrasts

可以利用 R 同时检验若干组 contrast,比如同时检验 μ1=μ2,μ3=μ2,μ1=(μ1+μ2+μ3)/3

实际上 linear hypothesis test 和 multiple comparison 的主要差别在于自由度,比如说对于 μ1=μ2=μ3 做检验,前者会将其拆成两个两两检验,自由度是 2,后者会作为一个整体的 contrast,自由度是 1

Lecture 14

依旧来自生统概论的笔记。

Two-Way ANOVA

首先给出一个希望做检验的场景:nab 个实验对象被分成 a×b 组,每组有 n 个实验对象。第 ij 组的实验条件是 A 因素的等级为 iB 因素的等级为 j,其中有 1ia,1jb。由此我们得到 nab 个数据 Yijki 表示以 A 因素分类的组别,j 表示以 B 因素分类的组别,k 表示在某一组内的编号,1kn

每一组都是 n 个人,这是一个 balanced design。

Cell Mean Model

模型假设是 Yijk=μij+εijk

其中,μij 是第 i×j 水平的均值,εijk i.i.d. N(0,σ2),模型中实际上有 ab+1 个未知参数需要估计。

μij 的估计量是 Y¯ij.=kYijk/n,对于 i×j 水平的方差估计是 sij2=k(YijkY¯ij.)2/(n1)。但是想要估计 σ2 时必须要将所有的数值加权 pool 起来做估计,是 s2=ij(nij1)sij2/ij(nij1),注意到如果是 balanced test 的情况实际上就是 s2=ijsij2/ab 直接做平均的结果。更倾向于 pooled s2 是因为自由度更大,数据利用更充分。

直接通过看图来观察两个因子之间是否存在交互效应、单因子是否显著这件事的时候,比较经典的情况就是以下两种:

cell-mean-model.png

上面第一张图中可以发现两条回归线之间存在斜率的差异,说明 B 因子对于 A 因子的效果存在影响,也就是存在交互效应;在 b2 level 上 A 因子是不显著的,但在 b1 level 上 A 因子显著;同理在 a1 level 上 B 因子不显著,但在 a2 level 上 B 因子显著。实际上在这个情况下交互效应显著,主效应虽然显著但也没有太大意义了,不过想要解释也是可以的,可以认为 A 因子带来的效应至少不是负效应。

第二张图里更有两条回归线交叉,存在斜率的差异,交互效应显著;但主效应此时可能无法解释,尤其是如果两条回归线完全交叉成 × 形状,A 因子会在不同的 B 因子条件下起到相反的作用。所以一般是认为交互效应显著时主效应显著,但没有解释意义。显著性和解释性之间无关。

在读 R code 的时候直接把所有的 estimation 读作 factor effect model 的系数,再代回就可以理解系数的来源了。这一部分在 factor effects model 里详述。

Factor Effects Model

模型假设是 Yijk=μ+αi+βj+(αβ)ij+εijk

其中,μ 是整体的均值,αi 代表只和等级为 i 的因素 A 有关的变化,βj 表示只和等级为 j 的因素 B 有关的变化,(αβ)ij 表示和两个因素同时相关的变化,相当于一个交叉项。

这里面有 (a+1)(b+1) 个参数,对其也有一定的约束:Σiαi=Σjβj=Σi(αβ)ij=Σj(αβ)ij=0,事实上有 a+b1 个关于交互效应的约束,有 2 个关于单因子效应的约束,实际上包含 σ2 后仍然是有 ab+1 个参数。做一些其他的参数假设,让参数含义更清晰:

μi.=αi+μ..

μ.j=βj+μ..

μij=μ..+αi+βj+(αβ)ij

如果 (αβ)ij=0 则说明因素 A,B 之间不存在相互作用的关系,这样的模型称为 additive model。

考虑一些统计量作为参数的估计量:

Y¯ij.=1nΣk=1nYijk=μ^ij=μ^+α^i+β^j+(αβ)^ij

Y¯i..=1bnΣj=1bΣk=1nYijk=μ^+α^i=μ^i.

Y¯.j.=1anΣi=1aΣk=1nYijk=μ^+β^j=μ^.j

Y¯...=1abnΣi=1aΣj=1bΣk=1nYijk=μ^

Two factors ANOVA 的方差分解更复杂一些:

SSTO=ΣiΣjΣk(YijkY¯...)2=ΣiΣjΣk((Y¯i..Y¯...)+(Y¯.j.Y¯...)+(Y¯ij.Y¯i..Y¯.j.+Y¯...)+(YijkY¯ij.))2=bnΣi(Y¯i..Y¯...)2+anΣj(Y¯.j.Y¯...)2+nΣiΣj(Y¯ij.Y¯i..Y¯.j.+Y¯...)2+ΣiΣjΣk(YijkY¯ij.)2=SSA+SSB+SSAB+SSE

其中,SSA 的自由度是 a1SSB 的自由度是 b1SSAB 的自由度是 (a1)(b1)SSE 的自由度是 ab(n1)SSTO 的自由度是 abn1。在这一个复杂问题中我们关心不同的问题,可以做出三种不同的假设检验,有对应的检验统计量。

  • A 因素是否会导致差异?H0:α1=α2=...=αa,在 H0 下有 F=SSA/(a1)SSE/(ab(n1))Fa1,ab(n1)
  • B 因素是否会导致差异?H0:β1=β2=...=βb,在 H0 下有 F=SSB/(b1)SSE/(ab(n1))Fb1,ab(n1)
  • A,B 是否联合作用?H0:(αβ)ij=0,1ia,1jb,在 H0 下有 F=SSAB/(a1)(b1)SSE/(ab(n1))F(a1)(b1),ab(n1)

不能直接用 chi-square 统计量作为检验统计量的原因是实际上 MSE,MSA 等统计量中都带有未知的 σ2 参数项。

注意 nij 是相等的也就是平衡设计,所以 Type I 和 Type III ANOVA 的结果是一样的。

Two-Way ANOVA in R

模型假设是 Yijk=μ+αi+βj+(αβ)ij+εijk

其中,μ 是整体的均值,αi 代表只和等级为 i 的因素 A 有关的变化,βj 表示只和等级为 j 的因素 B 有关的变化,(αβ)ij 表示和两个因素同时相关的变化,相当于一个交叉项。

这里面有 (a+1)(b+1) 个参数,对其也有一定的约束。R code 中的约束是和上述理论不同的,因此 estimator 的读取也并不相同,认为 α1=β1=(αβ)1j=(αβ)i1=0,事实上也还是 a+b+1 个约束条件,可以估计出 ab+1 个不同参数。

相应地,对应的 design matrix 也不尽相同。这里以 a=3,b=2,n=2 为例,coefficient table 如下所示:

coefficient-table.png

Coefficient table 里的 Intercept 代表的实际上是 μ,预设了 β1=0,height2 即为 β2,height3 即为 β3;预设了 α1=0,width2 即为 α2;关于交互效应项,由于预设了 (αβ)11=(αβ)12=(αβ)13=(αβ)21=0,不为零的交互效应项只有两个,分别由 height2:weight2 对应 (αβ)22,height2:weight3 对应 (αβ)23

由此我们可以依次按照 μij=μ+αi+βj+(αβ)ij 算出所有的 μij 的估计量。

在这之后我们希望得到一个关于 12 个数据的设计阵,实际上就是把数据和上述分析对应起来:

design-matrix.png

Least Square Means

遇到非平衡设计,或者 covariates 的情况(连续型变量和类别性变量产生交互效应的情况),需要考虑 least square means 而不是 pooled means。简单来说 least square means 是均值的均值,达到了最小的方差,而 pooled means 就是全体数据的均值,在非平衡设计的情况下很可能引入偏差。

LSM.png

Balanced Test

对于一个平衡设计来说,它本质上是一个正交设计,模型中进一个因子还是两个因子都不会改变彼此的系数估计,只有自由度会有改变。least square mean 就是普通的 pooled mean,one-way ANOVA 和 two-way ANOVA 的结果一致。

Unbalanced Test

非平衡设计的时候 one-way ANOVA 的结果仍然是一样的,least square mean 和 pooled mean 得到的都是这一组内所有的观测值的平均。在这里就是认为 A 因子的 height1 level 的估计值是 μ^1=13(X11+X12+X13)=43

但是新加入一个因子做 two-way ANOVA 就会导致 least square mean 下的系数估计发生变化,从 coefficient table 可以看出 μi1μi2 都改变了(绷不住了,虽然并不知道是怎么变的,但是会从系数表读出每一个 μij 就可以了),仍然使用 12(μi1+μi2) 作为 μi. 的估计,就也会相应地发生变化。

事实上 least square mean 还可以称作 predicted mean 的原因就是,此处的 μ11μ12 分别作为 1×1,1×2 这两格的预测值出现,它们的平均就作为 μ1. 这一个 A 因子的 height1 level 对应的预测值出现。在具体的例子里,此处因为得到的估计是 μ^11=41,μ^12=44,于是认为 μ^1.=12(μ^11+μ^12)=42.5

predicted-means.png

总之可以看到,unbalance test 会导致实验设计并不是正交的,B 因子的加入会对 A 因子的均值估计产生影响,这也是我们一般希望使用 balanced test 的理由。

Model Diagnose & Remedy

马上要告别应统了,于是不考也就不想学了,摆烂。

附录

常见重要分布

From Statistic Note P10, by V1ncent19

X pX(k)/fX(x) E var PGF MGF
Bern(p) p pq q+pes
B(n,p) Cnkpk(1p)nk np npq (q+ps)n (q+pes)n
Geo(p) (1p)k1p 1p qp2 ps1qs pes1qes
H(n,M,N) CMkCNMnkCNn nMN nM(Nn)(NM)N2(n1)
P(λ) λkk!eλ λ λ eλ(s1) eλ(es1)
U(a,b) 1ba a+b2 (ba)212 esbesa(ba)s
N(μ,σ2) 1σ2πe(xμ)22σ2 μ σ2 eσ2s22+μs
ϵ(λ) λeλx 1λ 1λ2 λλs
Γ(α,λ) λαΓ(α)xα1eλx αλ αλ2 (λλs)α
B(α,β) 1B(α,β)xα1(1x)β1 αα+β αβ(α+β)2(α+β+1)
χn2 12n2Γ(n2)xn21ex2 n 2n (12s)n/2
tν Γ(ν+12)νπΓ(ν2)(1+x2ν)ν+12 0 νν2
Fm,n Γ(m+n2)Γ(m2)Γ(n2)mm2nn2xm21(mx+n)m+n2 nn2 2n2(m+n2)m(n2)2(n4)

Consider X1,X2,,Xn i.i.d. N(0,1); Y,Y1,Y2,,Ym i.i.d. N(0,1) - χ2 Distribution:

χ2 distribution with degree of freedom n:$ =_{i=1}^n X_i22_n$。 For independent ξiχni2,i=1,2,,kxi0=i=1kξiχn1++nk2

  • t Distribution:

    t distribution with degree of freedom nT==tn

    Upper α-fractile of tν, satisfies P(Tc)=α,$t_{,}={c}(Tc)=,Tt$

  • F Distribution:

    F distribution with degree of freedom m and nF=Fm,n

    • If ZFm,n, then 1ZFn,m
    • If Ttn, then T2F1,n
    • Fm,n,1α=1Fn,m,α

Some useful lemmas in statistical inference:

  • For X1,X2,,Xn independent with XiN(μi,σi2), then i=1n(Xiμiσi)2χn2

  • For X1,X2,,Xn i.i.d.N(μ,σ2), then T=tn1

  • For X1,X2,,Xm i.i.d.N(μ1,σ2), Y1,Y2,,Yn i.i.d.N(μ2,σ2),d enote sample pooled variance Sω2=(m1)S12+(n1)S22m+n2, then T=(X¯Y¯)(μ1μ2)Sωmnm+ntm+n2

  • For X1,X2,,Xm i.i.d.N(μ,σ2), Y1,Y2,,Yn i.i.d.N(μ2,σ2), then T=Fm1,n1

  • For X1,X2,,Xn i.i.d. ε(λ), then $ 2n{X}=2{i=1}^nX_i ^2{2n} $

    Remark:for Xiε(λ)=Γ(1,λ)2λi=1nXiΓ(n,1/2)=χ2n2.

分位数速查

来自 Package stats, version 4.2.1。

其实都可以直接查文档啦(,R 的文档还是很保姆式的。

t-分布模拟

t-distribution 下有四个函数,分别是 density, CDF, quantile function(CDF1),还有一个是随机生成一个模拟数组。

dt(x, df, ncp, log = FALSE) 用来计算 PDF 的函数值 f(x),df 是自由度,ncp 表示非中心化参数 δ

pt(x, df, ncp, lower.tail = TRUE, log.p = FALSE) 用来计算 CDF 的函数值 F(x),注意 lower.tail = TRUE 时计算的是左边值 F(x),否则实际计算了 1F(x)

qt(p, df, ncp, lower.tail = TRUE, log.p = TRUE) 用来计算分位数,也即 F1(p),其他参数意义同上。

一些我的作业里的函数参考:

1
2
> qt(1 - 0.025, df = 8)
[1] 2.306004

这里计算的是 t8,0.975 的下分位数,实际上是一个 level of significance 为 0.05 的双尾检验中用到的分位数。

1
2
> 2 * pt(-8.529, df = 8)
[1] 2.74639e-05

这里是在计算一个 P-value,计算的是比 observed data 8.529 更极端的数据的出现概率,单边是 F(8.529),注意此处的“极端”包含比 8.529 更小和比 8.529 更大这两种情况,实际上是 F(8.529)+1F(8.529)

由于 t-distribution 是对称的,可以简化为 2×F(8.529)

1
2
3
4
> ncp <- 2.0/0.50
> c <- qt(1-0.025,df=8)
> pt(-c, df=8, ncp) + 1 - pt(c, df=8, ncp)
[1] 0.9367429

这是一个非中心的 t 检验,实际上是在计算 Power Function。

正态分布模拟

常用的三个函数是 dnormpnormqnorm,含义与 t-分布中的 dtptqt 相似。

1
2
3
dnorm(x, mean = 0, sd = 1, log = FALSE)
pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)

注意一般正态检验中都是使用标准正态分布,也就是不需要去改变 meansd 的默认值。

1
2
3
4
> pnorm(0)
[1] 0.5
> qnorm(0.025)
[1] -1.959964

F-分布模拟

1
2
3
df(x, df1, df2, ncp, log = FALSE)
pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)
qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)

注意 F 分布的两个自由度都可以取到无穷,写作 df1 = Inf

Chi-square 分布模拟

1
2
3
dchisq(x, df, ncp = 0, log = FALSE)
pchisq(q, df, ncp = 0, lower.tail = TRUE, log.p = FALSE)
qchisq(p, df, ncp = 0, lower.tail = TRUE, log.p = FALSE)

其他常用 R 命令

持续更新中,基本都是作业里扒出来的。

confidence interval

1
confint(object, parm, level = 0.95, ...)

注意 confidence coefficient 的默认值是 0.95confint 函数是用于拟合模型参数的置信区间估计,例如:

1
2
model <- lm(data)
confint(model)
1
2
3
               2.5 %    97.5 %
(Intercept) 8.670370 11.729630
V2 2.918388 5.081612

这个附录怎么全咕了啊,不过无所谓了,这课我本来就是在摆烂(

完结撒花

一点都不 happily ever after,说是找到了新的方向,谁知道概率又会不会很艰难呢。

这课明显东西比统计推断多,但是导出成 PDF 一看比统推笔记少了二十多页。

总之都结束了,笑一个吧(

HEA.jpg

我很可爱 请给我钱(?)

欢迎关注我的其它发布渠道