【问题标题】:Linear Regression - Predict ŷ线性回归 - 预测 ŷ
【发布时间】:2018-11-10 10:17:50
【问题描述】:

我正在尝试绘制实际销售额 (y) 和预测销售额 (ŷ) 值的散点图。

我已经导入了 csv 文件,目前我用于线性回归模型的代码是:

result = smf.ols('sales ~ discount + holiday + product', data=data).fit()
print(result.summary())

由于我只有实际销售额,如何找到预测销售额 (ŷ) 值来绘制散点图?我曾尝试研究并找到lm.predict()result.predict()。有区别吗? lm = LinearRegression() 提前谢谢!

【问题讨论】:

  • 请澄清您所说的“预计销售额”是什么意思。如果您不认为它是预测,为什么要进行回归?
  • 基于回归模型中所有 x 变量的预测销售额,以便我可以在散点图上绘制实际销售额和预测销售额。
  • 我不太了解这里的反对意见。您可以通过调用 result.predict() 来获取您的预测值,这将是您的 yhat 值
  • @Simon 这个问题完全不清楚实际上存在什么问题。问题本身是微不足道的,“predict”的两个变体不合格——如果不知道它们是什么,就很难区分它们。

标签: python linear-regression statsmodels predict


【解决方案1】:

没有数据很难提供帮助,但我猜你有来自数据集的Xy,因为你想执行线性回归。您可以使用scikit-learn 将数据拆分为训练集和测试集:

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3)

那么你需要将线性回归拟合到训练集:

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)

然后预测测试集结果:

y_pred = regressor.predict(X_test)

最后,您可以绘制测试或训练结果:

# Visualising the Training set results
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Training set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()

# Visualising the Test set results
plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Test set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()

(在这种情况下,如果我们设置特定值,例如折扣百分比,我们希望预测销售量)。如果你有多个X 参数,事情会更复杂,你需要使用虚拟变量,进行统计分析等。

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    相关资源
    最近更新 更多