自己造轮子——多元回归分析_基于statsmodels

我知道用stata和R的更多,此处仅基于兴趣摸索,本文数据和方法均来自于朱顺全老师的教程

statsmodels和pasty

statsmodels 是一个Python库,它提供了广泛的统计模型,包括线性回归、广义线性模型、时间序列分析、分类和生存分析等。它是一个开源项目,广泛应用于数据科学、统计分析和机器学习领域。

Patsy 是一个 Python 库,它专门用于描述统计模型(尤其是线性模型或包含线性组件的模型)并构建设计矩阵。Patsy 的设计灵感来源于 R 和 S 统计编程语言中使用的公式语法,并且与之兼容。使用 Patsy,可以通过一种特殊的字符串语法来简洁地描述模型,这种语法被称为“公式语法”。Patsy 使用一个特殊格式的字符串来描述统计模型,例如 y ~ x0 + x1。这里的 ~ 符号表示模型的响应变量 y 与解释变量 x0 和 x1 之间的关系。Patsy 提供了 patsy.dmatrices 函数,该函数接受一个公式字符串和一个数据集,然后为线性模型生成设计矩阵。Patsy 与 statsmodels 库兼容,常用于 statsmodels 的线性模型描述。

导入库

1
2
3
4
import statsmodels.api as sm
import pandas as pd
import numpy as np
from patsy import dmatrices

数据导入与处理

1
2
3
4
5
6
7
#### 数据导入
data=pd.DataFrame()
data=pd.DateFrame(pd.read_excel('C:\\Users\\cyx94a\\Desktop\\Python\\data\\al6-1.xls'))
vars=['TC','Q','PL','PF','PK']
df=data[vars]
#### 生成设计矩阵
y,X=dmatrices('TC~Q+PL+PF+PK',data=df,return_type='dataframe')

计量分析

1
2
3
4
5
6
#### 描述性统计和相关分析
data.describe()
data.corr()
#### OLS
modle=sm.OLS(y,X)
fit=modle.fit()

完整代码与输出结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices

#### 数据导入
data=pd.DataFrame()
data=pd.DataFrame(pd.read_excel('C:\\Users\\cyx94a\\Desktop\\Python\\data\\al6-1.xls'))
vars=['TC','Q','PL','PF','PK']
df=data[vars]
#### 生成设计矩阵
y,X=dmatrices('TC~Q+PL+PF+PK',data=df,return_type='dataframe')

#### 描述性统计和相关分析
print(data.describe())
print(data.corr())
#### OLS
modle=sm.OLS(y,X)
fit=modle.fit()
print(fit.summary())

自己造轮子——多元回归分析_基于statsmodels
http://example.com/2024/04/19/自己造轮子——多元线性回归_基于Statsmodels/
作者
cyx94a
发布于
2024年4月19日
许可协议