FBI WARNING
statsmodels是一个Python的包,它提供了用于估计许多不同统计模型、进行统计测试和统计数据探索的类和函数。我们常用的计量的模型和检验都可以通过statsmodels包里自带的方法完成,例如OLS,GLS,时间序列分析等,并且输出回归的结果。下图是官方文档里的user guide界面:
本次学习的内容也是基于statsmodels模块进行的。
官方文档链接:https://www.statsmodels.org/stable/index.html
在python里获取statsmodels的方法:
pip install statsmodels
工具准备好啦~我们就继续冲吧~!
准备工具包和数据:
import pandas as pd
import numpy as np
import statsmodels.api as sm
###准备数据,这里随机生成
X=pd.DataFrame(np.random.randint(1,10,(20,3)),columns=["X1","X2","X3"])
Y=np.random.randint(1,10,20)
下面要做的就是让Y对X进行回归,注意的是,这里需要我们给X增加偏置列(对应常数项),然后再进行回归,最后输出回归的结果。
回归的过程:
###给因变量数据集增加常数项的列
X = sm.add_constant(X)
###回归
regression=sm.OLS(Y,X)
model=regression.fit()
###输出回归结果
model.summary()
输出如下图,由于我这里是随机生成的数据,所以P值不显著,只是为了展示这个过程而已~关于回归结果的解读就不用我说啦~除了回归的整体结果以外,还可以输出单个参数,例如系数,R方等等,具体内容在文档里都有~之后我也会给你总结哒ヽ(✿゚▽゚)ノ
关于如何用python做基本的回归就是这样啦,是不是很简单,所以你每次看我写的时候都说好厉害,我内心就emmmm(ーー゛)
下面还有一个用OLS回归的方法~继续往下看吧!
刚刚说的是怎么用sm进行回归,总结一下就是把X增加一列常数列,然后OLS(Y,X)直接扔进去就行。但是如果遇到X和Y都在一张表里,不想把他们先拆分的情况,就可以使用formula下的OLS计算方法,也很简单。
我们还是先准备包和数据
数据准备:
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
#准备数据,我这里也随机生成啦
df=pd.DataFrame(np.random.randint(1,10,(20,4)),columns=['Y',"X1","X2","X3"])
这里我们的Y是因变量,X1-3是自变量,我们想要Y对X1,X2,X3回归,用formula的方法如下:
用formula下的OLS进行回归:
#回归
regression2=smf.ols(formula="Y~X1+X2+X3",data=df)
model2=regression2.fit()
#这里的参数,formula="因变量~自变量1+自变量2+...",data=你要回归的数据集。当然,还有其他参数,自己去官方文档琢磨吧~最重要的就是formula和data啦,我做这几次作业其实也就只用了这两个参数。
#输出结果
model2.summary()
这一节就是给你简单介绍了一下statsmodels做OLS回归,有两个方法:
其实我觉得学这个最好的方式就去读他的官方文档。
之后我也会给你总结哒~当然还可以用纯python实现回归,你需要的话我也发给你呀。
好啦今天的内容就是这样~么么我的可爱(づ ̄3 ̄)づ╭❤~