预测类问题中的回归模型

发布于:2023-01-02 ⋅ 阅读:(599) ⋅ 点赞:(0)

前言:回归与拟合有着包含的关系,拟合是在已知y与x的函数关系的条件下求解系数;而回归是在不确定的情况下先写出近似函数,再采用拟合求解出函数系数,但需要反过来对回归模型的可信度进行检验,所以可以说是回归包含了拟合。

参考书籍:《python数学建模算法与应用》 司守奎 孙玺菁  (强烈推荐!)

具体代码书上有写我就没有再敲出来

1、线性回归模型

库:statsmodels.api

statsmodels提供了两种求解线性回归模型的方法,一种是公式法,一种是数组法。

详解用 statsmodels 进行回归分析_Python中文社区的博客-CSDN博客

(1)基于公式的模式

re=sm.formula.ols(formula=”parameter1~parameter2”,data).fit()

formula=”parameter1~parameter2” 的意思是让用户自定义函数模板,其中parameter1是因变量,parameter2是自变量。对于二次方,写成I(X**2)的形式

data是DataFrame或者字典格式的数据

(2)基于数组的模式

该方法只能用于线性回归,对多项式和非线性等回归不适用

数组模式需要给自变量观测值矩阵再添加一列全部元素为1得到的增广矩阵

X=sm.add_constant(x)

re=sm.OLS(y,X).fit()

两种方法查看结果均为re.summary(),除了其中的系数外还需要注意R-squaredProb(F-statistic)

步骤:

1、画出散点图,给出大致函数关系。(考虑是否需要去掉野值)

2、按照拟合的方法,求出系数

3、对函数的显著性进行检验(F值)

4、对拟合的结果进行检验(SSE,R^2)——残差分布图

置信区间设置:

pre=re.get_prediction(data)

df=pre.summary_frame(alpha=0.05)

dfv=df.values;low,upp=dfv[:,4:].T

r=(upp-low)/2;num=np.arange(1,len(x)+1)

plt.errorbar(num,re.sid,r,fmt=”o”);plt.show()

2、多项式回归(非线性回归)

只能使用公式法,解题步骤和线性回归一致

3、逐步回归

类似于主成分分析,将对因变量影响显著的变量选入模型,不显著的不再考虑,逐步回归的每一步都要进行F检验(t检验)。

逐步回归中的后退法:

步骤:(t检验和F检验等价)

1、将全部变量作为自变量求出一个回归方程

2、选出未通过t检验的自变量中t的绝对值最小的一个,剔除

3、剩余的自变量再求回归方程

4、重复步骤2、3直到所有变量都通过t检验


网站公告

今日签到

点亮在社区的每一天
去签到