目录
一、准备阶段
1.打开控制台输入下列命令:
导入pandas库
pip install pandas
导入statsmodels
pip install statsmodels
statsmodels是python中专门用于统计学分析的包,它能够帮我们在模型未知的情况下来检验模型的线性显著性
二、分析案例
1.在建立回归方程前首先导入库
import statsmodels.api as sm
import pandas as pd
导入pandas库并且取别名为pd
导入statsmodels库的api接口并且取别名为sm
2.从一维到多维线性回归
(1)一维线性回归例子解析
1.问题:
分析这个文档中广告投入对销售额的线性影响
注:这个图片来自于'data.csv'
2.解答代码:
代码汇总:
data = pd.read_csv('./data.csv')# #当前目录中存在名为“多元线性回归.csv”的CSV文件
x=data[['广告投入']]#自变量
y=data[['销售额']]#因变量
X=sm.add_constant(x)#添加常数列,即截距项
#最小二乘法
model=sm.OLS(y,X)#创建线性回归模型
result=model.fit()#拟合模型
print(result.summary())#查看回归结果
代码逐步分析:
1.数据是使用熊猫库中的函数从名为“data.csv”的CSV文件中读取的。
data = pd.read_csv('./data.csv')# #当前目录中存在名为“多元线性回归.csv”的CSV文件
2.自变量(预测变量)被选为“广告投入”(广告支出),因变量(响应变量)被选为“销售额”(销售额)。这些变量分别分配给 和 变量。
x=data[['广告投入']]#自变量
y=data[['销售额']]#因变量
3.通过使用 中的函数向变量添加常量项来创建变量。添加常量项允许模型估计截距项。
注:添加截距项是为了便计算相当于添加的x0,可以为把公式(1)看成:
X=sm.add_constant(x)#添加常数列,即截距项
4.该函数用于创建普通最小二乘 (OLS) 模型对象。此函数将因变量 () 和自变量 () 作为参数。
model=sm.OLS(y,X)#创建线性回归模型
5.调用该方法以将 OLS 模型拟合到数据。它返回一个对象,其中包含有关拟合模型的各种信息,例如系数、标准误差、t 统计量等。
result=model.fit()#拟合模型
6.使用该函数打印模型结果的汇总,该函数提供回归模型的详细分析,包括系数估计值、p 值、R 平方值和其他诊断测量值。
print(result.summary())#查看回归结果
代码结果:
(2)二维线性回归例子解析
1.问题:
分析体重和年龄与血压收缩的线性关系
注:图片截自’多元线性回归.csv‘
2.解答代码:
代码汇总:
#当前目录中存在名为“多元线性回归.csv”的CSV文件,并且数据以“gbk”格式编码
data=pd.read_csv('./多元线性回归.csv',encoding='gbk')
x=data[['体重','年龄']]#自变量
y=data['血压收缩']#因变量
X=sm.add_constant(x)#添加常数列,即截距项
model=sm.OLS(y,X)#创建线性回归模型
result=model.fit()#拟合模型
params=result.params#系数矩阵
print(result.summary())#查看回归结果
代码逐步分析:
1.数据是使用熊猫库中的函数从名为“多元线性回归.csv”的CSV文件中读取的。
data=pd.read_csv('./多元线性回归.csv',encoding='gbk')
2.自变量(预测因子)被选为“体重”和“年龄”,因变量(响应变量)被选为“血压收缩”(收缩压)。这些变量分别分配给 和 变量。
x=data[['体重','年龄']]#自变量
y=data['血压收缩']#因变量
3.通过使用 中的函数向变量添加常量项来创建变量。添加常量项允许模型估计截距项。
X=sm.add_constant(x)#添加常数列,即截距项
4.该函数用于创建普通最小二乘 (OLS) 模型对象。此函数将因变量 () 和自变量 () 作为参数。
model=sm.OLS(y,X)#创建线性回归模型
注:最小二乘法求解:
5.调用该方法以将 OLS 模型拟合到数据。它返回一个对象,其中包含有关拟合模型的各种信息,例如系数、标准误差、t 统计量等。
result=model.fit()#拟合模型
6.估计的模型参数(系数)存储在变量中。模型结果的摘要使用该函数打印,该函数提供回归模型的详细分析,包括系数估计值、p 值、R 平方值和其他诊断测量值。
params=result.params#系数矩阵
print(result.summary())#查看回归结果
7.请注意,当前目录中存在名为“多元线性回归.csv”的CSV文件,并且数据以“gbk”格式编码。如有必要,请确保针对您的特定用例调整文件路径和编码。
代码结果:
三、总结:
先读取-->再找自变量和因变量-->添加截距-->用最小二乘法求解-->拟合模型-->查看回归结果