利用第三方库Statsmodels训练假定的线性回归模型,即yi=axi+b+εi
代码如下:
import os
import sys
import numpy as np
import statsmodels.api as sm
from statsmodels.sandbox.regression.predstd import wls_prediction_std
import matplotlib.pyplot as plt
import pandas as pd
def linearModel(data):
"""
线性回归统计性质分析步骤展示
参数
---
data:DataFrame,建模数据
"""
features = ["x"]
labels = ["y"]
Y = data[labels]
#加入常量变量,因为在Statsmodels中,线性回归模型是用矩阵的形式表示的。
X = sm.add_constant(data[features])
#构建模型
re = trainModel(X,Y)
#分析模型效果
modelSummary(re)
def trainModel(X,Y):
"""
训练模型
"""
model = sm.OLS(Y,X)
re = model.fit()
return re
def modelSummary(re):
"""
分析线性回归模型的统计性质
"""
#整体统计分析结果
print(re.summary())
#用f test检验x对应的系数a是否显