一、数据集
本次实战用到的是高炉煤气循环发电(CombinedCyclePowerPlant,CCPP)数据集,该数据集来自于UCI主页(http://archive.ics.uci.edu/ml/datasets.html)。
自变量 | AT,表示高炉的温度 |
V,表示炉内的压力; | |
AP,表示高炉的相对湿度 | |
RH,表示高炉的排气量 | |
因变量 | 连续性,PE,表示高炉的发电量 |
二、加载数据集
1、读取数据并展示数据的统计量。
data = pd.read_excel('./CCPP.xlsx')
print(data.describe())
2、绘制各变量之间的散点图,观察各变量的相关关系。
sns.pairplot(ccpp)
plt.show()
从上面的散点图来看,似乎AP(相对湿度)和RH(排气量)与PE(发电量)之间并不存在明显的线性关系。
三、建模
本次实战采用OLS(ordinary least squares,普通最小二乘)回归模型。
1、拆分训练集(用于建模)和测试集(用于模型的评估)。
train, test = train_test_split(ccpp, test_size=0.2, random_state=14)
2、建模
fit_train = sm.formula.ols('PE~AT+V+AP', data=ccpp).fit()
print(fit_train.summary())
使用 fit_train.summary()的参数解释:
part1:
1、Dep.Variable:因变量,此回归分析中为PE(发电量)。
2、model:方法,此回归分析中为普通最小二乘法(OLS)。
3、No.Observations:观察次数,为样本的大小。
4、Df Residuals:残差的自由度(Df),Df = N- K(N = 样本数量(观察数),k = 变量数 + 1)。
5、Df Models:模型的自由度(Df),Df = K - 1(K = 变量数 + 1)。
6、R-squared:R-平方值,是确定系数,告诉我们自变量可以解释多少百分比的自变量。
7、Adj.R-suquared:它在R-squared的基础上,加入了一个“惩罚项”,当向现有模型加入一个“无关自变量”时,Adj.R-suquared会给这个“无关自变量”一个惩罚,从而使得Adj.R-suquared的值不一定增加,防止了“虚假提升信息的产生”。
8、F-statistic:用于完成模型的显著性检验,模型的显著性检验是指构成因变量的线性组合是否有效。
9、AIC:赤池信息准则,是衡量统计模型拟合优良性(Goodness of fit)的一种标准,赤池信息准则的方法是寻找可以最好地解释数据但包含最少自由参数的模型。即用最少的自变量达到最好的拟合效果。
part2:
1、Intercept:常数项,是回归线的截距。在回归中,我们忽略了一些对因变量没有太大影响的自变量,截距表明了这些遗漏变量的平均值和模型中存在的噪声。
2、coef(Coefficient term):系数项。如果熟悉导数,可以将其视为Y相对于X的变化率。
3、std err:标准误差也称为标准偏差。
4、t: t 统计值,衡量系数统计显著程度的指标。
5、P > |t|:P值是一种概率,指的是在H0假设为真的前提下,样本结果出现的概率。当P值小于0.05时,说明模型是通过显著性检验的,需要拒绝原假设。
6、[0.025,0.975]:置信区间,表示我们的系数可能下降的范围(可能性为95%)。
三、回归模型的假设性检验
回归模型的检验目的是为了检验模型是否有效,包括了模型总体是否有效以及其中单个变量是否具有统计学意义。
1、模型的显著性检验--F检验,检测自变量是否真正影响到因变量的波动。
1)提出问题的原假设和备择假设:
原假设:模型的所有偏回归系数为0。
备择假设:模型的所有偏回归系数不全为0,即至少存在一个自变量可以构成因变量的线性组合。