我知道用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()
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())
modle=sm.OLS(y,X) fit=modle.fit() print(fit.summary())
|