目录
- T检验
- 实战
T检验
在回归模型中,T检验通常用于检验回归>线性回归系数的显著性。具体来说,T检验可以用来判断一个自变量对因变量的影响是否显著。
在进行回归>线性回归时,我们通常会得到每个自变量的系数估计值(通常用 β 来表示)。T检验可以帮助我们确定这些系数估计值是否显著地不同于零。T检验的假设如下:
零假设(H0):系数等于零,即自变量对因变量没有显著影响。
备择假设(H1):系数不等于零,即自变量对因变量有显著影响。
T统计量的计算公式为:
t = b − 0 S E ( b ) t = \frac{b - 0}{SE(b)} t=SE(b)b−0
其中,b 是系数估计值,SE(b) 是该系数的标准误。T统计量的绝对值越大,意味着系数估计值与零的差异越显著。
在进行T检验时,我们通常会计算出T统计量,并与t分布的临界值进行比较,以判断系数估计值的显著性。如果T统计量的绝对值大于临界值,我们可以拒绝零假设,认为系数估计值是显著不同于零的。
在Python中,可以使用statmodels或者scipy库来进行回归模型的T检验。在statmodels中,可以使用summary方法来获得回归结果的摘要,其中包括了每个系数的T统计量、p值等信息。在scipy中,可以使用ttest_ind来进行T检验。
实战
# 导入模块
from sklearn import model_selection
import statsmodels.api as sm
import numpy as np
import pandas as pd
from scipy.stats import f # 导入数据
Profit = pd.read_excel(r'Predict to Profit.xlsx')# 生成由State变量衍生的哑变量
dummies = pd.get_dummies(Profit.State)
# 将哑变量与原始数据集水平合并
Profit_New = pd.concat([Profit,dummies], axis = 1)
# 删除State变量和California变量(因为State变量已被分解为哑变量,New York变量需要作为参照组)
Profit_New.drop(labels = ['State','New York'], axis = 1, inplace = True)
# 拆分数据集Profit_New
train, test = model_selection.train_test_split(Profit_New, test_size = 0.2, random_state=1234)
# 建模
model2 = sm.formula.ols('Profit~RD_Spend+Administration+Marketing_Spend+Florida+California', data = train).fit()
print(model2.summary())
结果如下图:
从上图返回的结果可知,只有截距项Intercepter 和研发成本RD_Spend对应的p值小于0.05,说明其他变量都没有通过系数的显著性检验,即在模型中这些变量不是影响利润的重要因素。