第三节 利用python进行T检验、F检验
文章目录
前言
FBI WARNING:
之前讲了怎么用statsmodels进行简单的OLS回归,以及如何输出回归的参数(例如:系数,标准差,P值等等),可以发现其实这个库还挺强大,用来做计量也蛮方便的。所以就继续往下学习,那么就来到了如何利用statsmodels做t检验和F检验。这篇文章比较详细基础,甚至废话有点多,可以说是手把手教你用statsmodels做假设检验了,如果宝贝你还不会的话,我就先倒立洗个头(ノへ ̄、)。**注意:**如果有基础不想看废话的直接跳到最后的总结!!!
一、数据准备
先生成数据,进行初步的OLS回归,这一个步骤你已经很熟悉啦~无非就是import 一下,然后ols() 再fit(),忘记的话看我之前的文章哦。
import pandas as pd
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
#准备需要的包
#生成数据
df=pd.DataFrame(np.random.randint(1,10,(30,4)),columns=["Y","X1","X2","X3"])
df.head(5)
Y X1 X2 X3
0 5 1 8 1
1 2 1 8 5
2 1 8 7 8
3 2 6 8 9
4 6 6 3 6
数据准备好之后就可以进行OLS回归了:
#OLS回归
regression=smf.ols(formula="Y~X1+X2+X3",data=df)
model=regression.fit()
二、t检验
1. t检验回顾
t检验是对单个变量进行的显著性检验,首先要计算t,然后和临界值比较,看t值是落在拒绝域还是接受域。原假设: H 0 : β k ^ = β 0 H_0:\hat{\beta_k}=\beta_0 H0:βk^=β0的t统计量为:
t k = β k ^ − β 0 S e ( β k ) ^ ~ t ( n − K ) t_k=\frac{\hat{\beta_k}-\beta_0}{Se(\hat{\beta_k)}}~t(n-K) tk=Se(βk)^βk^−β0~t(n−K)
其中, S e ( β k ^ ) Se(\hat{\beta_k}) Se(βk^)为估计值 β k ^ \hat{\beta_k} βk^的标准误。
t检验的原假设示例:
- H 0 : β 1 = 0 H_0:\beta_1=0 H0:β1=0
- H 0 : β 1 = β 2 H_0:\beta_1=\beta_2 H0:β1=β2
- H 0 : β 2 = 1 H_0:\beta_2=1 H0:β2=1
2. 利用statsmodels进行t检验
接下来,我们直接用fit()下面的t_test()方法进行t检验,官方的t_test()方法说明如下:
在传参这里,可以用传入关于原假设的array,也可以传入原假设的字符串,或者是元组。总而言之就是咱们要把咱们的原假设告诉这个方法,那么怎么表达原假设呢~
2.1 R矩阵的方式传参
基本思想就是构造原假设 H 0 : R β = 0 H_0:R\beta=0