线性回归Rsquared为1.0

2024-06-10 19:26:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在对Python进行线性回归,以预测象牙海岸不同地点的库存分布。我有2016年至2019年9月的数据,看起来像DATA。列为Dataset_info。 我在站点代码上使用了标签编码。共有156个不同的站点,每个站点的标签范围为0-155。类似地,我使用Get_dummies函数为11个不同的产品代码获取11个不同的列。 然后我使用线性回归来帮助预测产量,令我惊讶的是,R平方值是100%。 代码:


lm=sm.OLS(df_logistics_new_onehot_label['stock_distributed'],df_logistics_new_onehot_label[['intercept','year', 'month','site_code', 'stock_initial',
       'stock_received', 'stock_adjustment', 'stock_end',
       'average_monthly_consumption', 'stock_stockout_days', 'stock_ordered',
       'site_latitude', 'site_longitude',
       'product_code_AS21126', 'product_code_AS27000',
       'product_code_AS27132', 'product_code_AS27133', 'product_code_AS27134',
       'product_code_AS27137', 'product_code_AS27138', 'product_code_AS27139',
       'product_code_AS42018', 'product_code_AS46000',
       'site_type_Health Center',
       'site_type_University Hospital/National Institute']])

results=lm.fit()
results.summary()

回归的输出如下Regression Output

我进一步将数据分为培训和测试

X=df_logistics_new_onehot_label[['intercept','year', 'month','site_code', 'stock_initial',
       'stock_received', 'stock_adjustment', 'stock_end',
       'average_monthly_consumption', 'stock_stockout_days', 'stock_ordered',
       'site_latitude', 'site_longitude',
       'product_code_AS21126', 'product_code_AS27000',
       'product_code_AS27132', 'product_code_AS27133', 'product_code_AS27134',
       'product_code_AS27137', 'product_code_AS27138', 'product_code_AS27139',
       'product_code_AS42018', 'product_code_AS46000',
       'site_type_Health Center',
       'site_type_University Hospital/National Institute']]
y=df_logistics_new_onehot_label['stock_distributed']

X_train, X_test, y_train, y_test = train_test_split(X, y ,test_size = 0.2, shuffle=False)

clf=LinearRegression()

clf.predict(X_test)

20%数据的线性回归输出与“股票分布”变量完全匹配,如您在此处所见Output V/s data 是模型太过合适还是我做错了什么


Tags: 数据代码testdfnew站点typestock
1条回答
网友
1楼 · 发布于 2024-06-10 19:26:14

您的目标变量与以下列具有完美的相关性:

  • “股票首字母”
  • “收到的库存”
  • “库存调整”
  • “库存端”

从逻辑上讲,它们是相互关联的。首先尝试删除这些列,然后再次尝试线性回归

相关问题 更多 >