赞
踩
根据相关数据集进行回归分析
1.
- import statsmodels.api as sm
- # df.loc[:, ...] 表示选择所有行。
- # df.columns != 'mpg' 创建一个布尔数组,指示哪些列不等于 'mpg'。
- # df.loc[:, df.columns != 'mpg'] 选择 df 中所有行和列名不等于 'mpg' 的所有列。
- x =df.loc[:,df.columns!='mpg']
-
- #在数据框 x 中添加一列常数值(通常为 1)。
- #这一列称为截距项(intercept),在回归分析中非常重要。
- #这样做的目的是确保模型在进行线性回归时,包括一个常数项(截距)。
- x=sm.add_constant(x)
- y = df['mpg']
-
- # 随机抽取 x 数据框中的 6 行数据。
- x.sample(6)
2.
- import statsmodels.formula.api as smf
-
- #smf.ols 是使用普通最小二乘法(OLS)进行线性回归分析的函数。
- #formula='mpg~hp+C(vs)+C(am)' 定义了回归模型的公式
- #mpg 是因变量(或目标变量),即我们要预测的变量。
- #hp 是自变量之一,即预测变量。
- #C(vs) 和 C(am) 表示 vs 和 am 是分类变量(categorical variables)。C 函数将这些变量视为分类变量,而不是连续变量。
- #data=df 指定了数据源 df
- #.fit() 方法用于拟合模型,即根据提供的数据进行线性回归分析,并生成一个包含拟合结果的模型对象。
- model = smf.ols(formula='mpg~hp+C(vs)+C(am)',data=df).fit()
-
- #打印模型摘要
- print(model.summary())
3.
- #使用先前拟合的线性回归模型对新的数据进行预测
- y_hat = model.predict(x)
- #随机抽取并展示5个预测值:
- y_hat.sample(5)
4.
- import numpy as np
- #计算模型预测结果的均方根误差
- #反映了预测值与实际值之间的差异大小
- model_RMSE = np.sqrt(np.mean(np.square(y_hat-y)))
- model_RMSE
5.
- fig = plt.figure(figsize=(12,8))
- #使用 plot_regress_exog 函数来绘制回归模型的外生变量(exogenous variable)的回归诊断图
- fig = sm.graphics.plot_regress_exog(model,"hp",fig = fig)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。