这里主要使用statsmodels模块。
建模
import numpy as np
import statsmodels as sm
from sklearn.model_selection import train_test_split
profit = pd.read_excel('./Predict to Profit.xlsx')
train, test = train_test_split(profit, test_size = 0.2,random_state=1234)
model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend+ C(State)', data=train).fit()
model.params
结果返回模型的偏回归系数:
上述代码中,将State变了套在C()中,表示State变量需要进行哑变量处理。类似pandas.get_dummies()函数。
假设检验
主要使用一行代码:
model.summary()
返回结果:
模型的显著性检验、回归系数的显著性检验、残差独立性检验等都可以从上图中直接得到结果。