202209-GitModel Task03-回归分析2_线性回归模型的推断与推广

本笔记为DataWhale 9月GitModel课程的学习内容,链接为:
https://github.com/Git-Model/Modeling-Universe/Data Analysis and Statistical Modeling/

 

一、T 检验

1. 单参数检验问题: H 0 : β j = β j 0 ↔ H 1 : β j ≠ β j 0 H_{0}: \beta_{j}=\beta_{j 0} \leftrightarrow H_{1}: \beta_{j} \neq \beta_{j 0} H0:βj=βj0H1:βj=βj0 β j 0 \beta_{j 0} βj0为任意常数)

回归系数的显著性检验就是“系数是否为0”的检验:
H 0 : β j = 0 ↔ H 1 : β j ≠ 0 H_{0}: \beta_{j}=0 \leftrightarrow H_{1}: \beta_{j} \neq 0 H0:βj=0H1:βj=0
原假设 H 0 H_{0} H0 一般是我们要拒绝的部分,而且我们要在一个合理的范围内拒绝原假设 H 0 H_{0} H0 。为此设立一个临界值 C C C
,若 ∣ β ^ j − 0 ∣ > C \left|\hat{\beta}_{j}-0\right|>C β^j0 >C ,我们就拒绝假设 H 0 H_{0} H0
在进行假设检验的过程中,不论拒绝与否,都有概率会犯以下两类错误的其中之一

  • 第一类错误,即原假设成立但是我们拒绝了它。犯第一类错误的概率称为拒真概率。
  • 第二类错误,即原假设不成立但是我们没有拒绝它。

保证发生第一类错误的概率需要在一个给定的、较小的水平 α \alpha α ,这个 α \alpha α 也被称为显著性水平。
P H 0    i s    t r u e ( ∣ β ^ j − β j 0 ∣ > C ) = P ( ∣ β ^ j − 0 ∣ > C ) = α P_{H_0\,\,is\,\,true}\left( \left| \hat{\beta}_j-\beta _{j0} \right|>C \right) =P\left( \left| \hat{\beta}_j-0 \right|>C \right) =\alpha PH0istrue( β^jβj0 >C)=P( β^j0 >C)=α

(1)双边检验:

P ( ∣ β ^ j ∣ > C ) = P ( ∣ β ^ j ∣ se ⁡ ( β ^ j ) > C se ⁡ ( β ^ j ) ) = α P\left(\left|\hat{\beta}_{j}\right|>C\right)=P\left(\frac{\left|\hat{\beta}_{j}\right|}{\operatorname{se}\left(\hat{\beta}_{j}\right)}>\frac{C}{\operatorname{se}\left(\hat{\beta}_{j}\right)}\right)=\alpha P( β^j >C)=P se(β^j) β^j >se(β^j)C =α

C s e ( β ^ j ) = t n − k − 1 ( 1 − α 2 ) \frac{C}{\mathrm{se}\left( \hat{\beta}_j \right)}=t_{n-k-1}\left( 1-\frac{\alpha}{2} \right) se(β^j)C=tnk1(12α)
   ⟹    \implies    C = t n − k − 1 ( 1 − α / 2 ) s e ( β ^ j ) C=t_{n-k-1}(1-\alpha /2)\mathrm{se}\left( \hat{\beta}_j \right) C=tnk1(1α/2)se(β^j)
   ⟹    \implies    ∣ β ^ j ∣ > C \left| \hat{\beta}_j \right| > C β^j >C
   ⟹    \implies    ∣ β ^ j ∣ > t n − k − 1 ( 1 − α / 2 ) s e ( β ^ j ) \left| \hat{\beta}_j \right|>t_{n-k-1}(1-\alpha /2)\mathrm{se}\left( \hat{\beta}_j \right) β^j >tnk1(1α/2)se(β^j)

这个系数是显著的,我们便可以拒绝原假设。

(2)单边检验:

单边检验则更关注变量对模型的正效应或负效应,其原假设和备择假设如下:
H 0 : β j = β j 0 ↔ H 1 : β j > β j 0    ( β j 0 = 0 ) H_0:\beta _j=\beta _{j0}\leftrightarrow H_1:\beta _j>\beta _{j0}\,\,\left( \beta _{j0}=0 \right) H0:βj=βj0H1:βj>βj0(βj0=0)
求解目标也转变为:
P ( β ^ j − 0 > C ) = α P\left( \hat{\beta}_j-0>C \right)=\alpha P(β^j0>C)=α
C = t n − k − 1 ( 1 − α ) s e ( β ^ j ) C=t_{n-k-1}(1-\alpha)\mathrm{se}\left( \hat{\beta}_j \right) C=tnk1(1α)se(β^j)
若有: β ^ j > t n − k − 1 ( 1 − α ) s e ( β ^ j ) \hat{\beta}_j >t_{n-k-1}(1-\alpha)\mathrm{se}\left( \hat{\beta}_j \right) β^j>tnk1(1α)se(β^j)
那么系数是显著的,可以拒绝原假设。
对应python中的不同函数:

For p-values:

  • cdf(x, df, loc=0, scale=1): Cumulative distribution function.
  • sf(x, df, loc=0, scale=1): Survival function (also defined as 1 - cdf, but sf is sometimes more accurate).
     

For t-values:

  • ppf(q, df, loc=0, scale=1): Percent point function (inverse of cdf — percentiles).
  • interval(confidence, df, loc=0, scale=1): Confidence interval with equal areas around the median.

具体细节可以参考:scipy.stats.t .

 

 

(3)p值(p-values)
  • p值是在本次分析的样本观测值下,给出的能拒绝原假设的最小显著性水平,它只与样本观测值和我们做的假设检验有关;
  • p值越小越可以拒绝原假设;
  • p值本质上是一种累积概率;
  • 双边检验的p值为单边检验的两倍。

p值的形式与我们做的备择假设 H 1 H_1 H1 有关:

  • H 1 : β j ≠ β j 0 H_{1}: \beta_{j} \neq \beta_{j 0} H1:βj=βj0,则: p v a l u e = P ( ∣ t n − k − 1 ∣ > ∣ β ^ j − β j 0 s e ( β ^ j ) ∣ ) pvalue=P\left( \left| t_{n-k-1} \right|>\left| \frac{\hat{\beta}_j-\beta _{j0}}{se\left( \hat{\beta}_j \right)} \right| \right) pvalue=P(tnk1> se(β^j)β^jβj0 )
  • H 1 : β j > β j 0 H_{1}: \beta_{j} > \beta_{j 0} H1:βj>βj0,则: p v a l u e = P ( t n − k − 1 > β ^ j − β j 0 s e ( β ^ j ) ) pvalue=P\left( t_{n-k-1}>\frac{\hat{\beta}_j-\beta _{j0}}{se\left( \hat{\beta}_j \right)} \right) pvalue=P(tnk1>se(β^j)β^jβj0)
  • H 1 : β j < β j 0 H_{1}: \beta_{j} < \beta_{j 0} H1:βj<βj0,则: p v a l u e = P ( t n − k − 1 < β ^ j − β j 0 s e ( β ^ j ) ) pvalue=P\left( t_{n-k-1}<\frac{\hat{\beta}_j-\beta _{j0}}{se\left( \hat{\beta}_j \right)} \right) pvalue=P(tnk1<se(β^j)β^jβj0)

 
Tips: 由于双边检验p值是对单边检验p值乘两倍得来的,我们要根据t值是否大于0来选择左/右尾累积概率,若小于0,则选择左尾;反之右尾。
 

2. 参数线性组合检验问题: H 0 : f ( β ) = β 0 ↔ H 1 : f ( β ) ≠ β 0 H_0:f\left( \beta \right) =\beta _0\leftrightarrow H_1:f\left( \beta \right) \ne \beta _0 H0:f(β)=β0H1:f(β)=β0 ( β 0 \beta _0 β0为任意常数)
  • sm.formula.ols与sm.ols不同,其最大的特点是可以指定模型的形式,这非常有利于我们自主的构建模型,此后我们将统一使用该指令。
  • 值得注意的是,sm.formula.ols默认带截距项。

Tips:

  • 这里告诉大家巧用summary中的双侧p值进行单侧0值检验的小技巧。在summary中,t值小于0,说明它后面的双侧p值是使用左侧累积概率乘两倍得来的,而在本例中我们的备择假设是小于0,p值也应当是左侧累积概率,因此我们只需将报告表中的p值除以2即可。而如果t值小于0,但是备择假设却大于0,那么无需思考,p值一定大于0.5,我们肯定不能拒绝原假设。

 

二、F 检验

1. F 检验适用范围
  • F检验是回归分析中多个线性假设检验问题(多参数检验问题)的常用检验方法。
  • 多个线性假设检验问题可分为如下:
    a. 多参数联合显著性检验问题: H 0 : β i = ⋯ = β j = 0 ↔ H 1 : H 0 H_{0}: \beta _i=\cdots =\beta _j=0 \leftrightarrow H_{1}:H_{0} H0:βi==βj=0H1:H0不成立;
    b. 一般多参数检验问题: H 0 : β n = β n 0    , β i = ⋯ = β j = 0 ↔ H 1 : H 0 H_0:\beta _n=\beta _{n0}\,\,, \beta _i=\cdots =\beta _j=0\leftrightarrow H_1:H_{0} H0:βn=βn0,βi==βj=0H1:H0不成立;

Tips:

  • 多个参数做联合显著性检验完全不等价于多个参数分开做显著性t检验。
  • 如果我们是出于联合检验的目的但是却做了分开检验,将大大增加拒真概率。由于无法分开始用t检验进行联合检验,我们需要一种新的检验方法——F检验。

 

2. F统计量的定义:
  • 在回归分析中,F检验更像是在比较两种模型的差异程度(variances of the two normal populations)
    • 一个是,原模型——无约束模型(unrestricted model)
    • 另一个是,原假设 H 0 H_0 H0 成立下的条件代入后的有约束模型(restricted model)
  • 无约束模型比有约束模型多了 H 0 H_0 H0 成立下的参数与变量。
  • 一般而言,模型变量越多,对训练集数据的变异解释程度会越高,拟合优度会越好,进而残差平方和会减小。
  • 如果两个模型残差平方和的差异足够大,说明原假设约束的加入使模型产生了显著性的变化,即原假设是显著的。
  • F 检验统计量形式如下: F = ( R S S r − R S S u r ) / q R S S u r / ( n − k − 1 ) ∼ F q , n − k − 1 F=\frac{\left( RSS_r-RSS_{ur} \right) /q}{RSS_{ur}/(n-k-1)}\sim F_{q,n-k-1} F=RSSur/(nk1)(RSSrRSSur)/qFq,nk1它服从自由度为 q q q n − k − 1 n-k-1 nk1 的F分布,其中 q q q 为有效约束个数, n − k − 1 n-k-1 nk1 为无约束模型自由度。
  • F检验拒绝原假设的判别规则: F > F q , n − k − 1 ( 1 − α ) F>F_{q,n-k-1}\left( 1-\alpha \right) F>Fq,nk1(1α)

Python做 F检验常用函数:

  • sf(x, dfn, dfd, loc=0, scale=1): Survival function (also defined as 1 - cdf, but sf is sometimes more accurate).
  • isf(q, dfn, dfd, loc=0, scale=1): Inverse survival function (inverse of sf).

具体细节可以参考:scipy.stats.f

 

3. T-test V.S. F-test

Comparison Chart

BASIS FOR COMPARISONT-TESTF-TEST
DefinitionA t-test is a form of the statistical hypothesis test, based on Student’s t-statistic and t-distribution to find out the p-value (probability) which can be used to accept or reject the null hypothesis.F-test is described as a type of hypothesis test, that is based on Snedecor f-distribution, under the null hypothesis.
The test is performed when it is not known whether the two populations have the same variance.
MeaningT-test is a univariate hypothesis test, that is applied when standard deviation is not known and the sample size is small. (所以我们会用 se 代替sd)F-test is statistical test, that determines the equality of the variances of the two normal populations.
Test statisticT-statistic follows Student t-distribution, under null hypothesis.F-statistic follows Snedecor f-distribution, under null hypothesis.
ApplicationComparing the means of two populations.Comparing two population variances.
Formula β ^ j − β j se ⁡ ( β ^ j ) ∼ t n − k − 1 \frac{\hat{\beta}_{j}-\beta_{j}}{\operatorname{se}\left(\hat{\beta}_{j}\right)} \sim t_{n-k-1} se(β^j)β^jβjtnk1 F = ( R S S r − R S S u r ) / q R S S u r / ( n − k − 1 ) ∼ F q , n − k − 1 F=\frac{\left( RSS_r-RSS_{ur} \right) /q}{RSS_{ur}/(n-k-1)}\sim F_{q,n-k-1} F=RSSur/(nk1)(RSSrRSSur)/qFq,nk1

部分内容来自:Difference Between T-test and F-test
 

三、广义线性回归(GLM)

所谓的线性回归模型,线性关系并不是指代被解释变量 y y y 与解释变量 X X X 之间的关系,而是指回归函数相对于回归系数是线性的

推而广之,广义线性回归,是在前述简单多元线性回归的基础上,在变量种类(定性变量——二分类、多分类变量)、变量形式(对数化、二次项化、交互项化)上进行了拓展。

1. 变量种类——定性变量
a. 二分类变量

常见的二分类变量:性别(男/女)、婚姻状态(是/否);

对待这类变量,我们在建模时,会将其处理成:虚拟变量/哑变量(Dummy Variable)
 

b. 多分类变量

常见的多分类变量:季节变量(春、夏、秋、冬);地理位置变量(华南、华北、华东、中部、西部)等。

针对多分类变量,在转换成虚拟变量时,需要注意以下事项:

  • 具体的,如果一个变量有n个类别,则需要定义n-1个虚拟变量表示它。
  • 不可以直接将转换后的虚拟变量同时纳入回归当中,我们可以选取一个虚拟变量作为“基组”,然后将其他非基组的虚拟变量纳入回归。

 

2. 变量形式——带有自变量函数的回归分析
a. 对数化

对数变换的作用——一些经验主义
(1) 作用

对数变换是线性回归中非常常见的变量变换,它的作用非常明显:

  • 对数变换可以方便地计算变换百分比,于“价格”型变量而言,百分比解释比绝对值解释更有经济意义。
  • 当因变量为严格取正的变量,它的分布一般存在异方差性或偏态性,这容易违背CLM假设的同方差/正态性假设。而对数变换可以缓和这种情况。

 
(2) 对数化标准

对于变量何时取对数,没有一个准确的标准,但在长久的实践中,我们认为可以遵循以下经验:

  • 对于大数值大区间变量(价格类变量、人口变量等),可取对数变换,如:工资、薪水、销售额、企业市值、人口数量、雇员数量等。
  • 对于小数值小区间变量(时间类变量等),一般不取对数变换,如:受教育年限、工作年限、年龄等。
b. 二次项
  • 如果我们在回归建模前认为某个自变量对因变量的影响不是线性的,可以尝试加入二次项,并观察二次项的显著性。如果显著,就说明两者关系确实为非线性的。

 

c. 交互项
  • 若某一个变量对因变量的效应依赖于另一个自变量,则我们可以在模型中加入交互项。

交互项又分为:定性变量间的交互效应、定性与定量变量的交互效应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值