首页 > 解决方案 > 将泊松回归应用于库存量是否错误?

问题描述

我最近了解了泊松回归,并且想将这种新的统计方法应用于现实世界的问题。所以我想了一会儿,决定尝试根据随机抽样公司的财务信息来预测财富 500 强的股票数量。

我遇到的问题是,虽然模型解释了大量的方差并且只包含重要的预测变量,但当我尝试让 Poisson 模型使用 predict 函数进行预测时,它返回的预测几乎没有方差实际值。

我正在使用的数据集没有完全填满,但我决定在小样本量的结果中达到峰值。我这样做是因为我在网上读到一些东西,表明泊松回归所需的功率对于大数而言较低,而股票市场交易量包括一些大数。数据集可以在这里访问:

https://drive.google.com/file/d/1qvkwWSfUSodfceyNLvPjA4jqnWTDTeSo/view?usp=sharing

我使用的代码如下所示:

Stock<-read.csv("C:/FilePath/StockPrices.csv")
head(Stock)
summary(StockTest <- step(glm(formula = X2018.Volume ~ X2017.Stock.Price + X2017.Volume+Total.Revenue+Cost.of.Revenue+Research...Development+Selling.General...Administrative+Interest.Expense+Total.Other.Income...Expenses.Net+Income.Before.Tax+Income.Tax.Expense+Income.From.Continuing.Operation+Net.Income+Enviornment+Social+Governance, family = "poisson", data = Stock)))

1-StockTest$deviance/StockTest$null.deviance
predict(StockTest)

该模型具有很好的伪 R 平方,但其预测值与实际值相差甚远。你自己看:

predict(StockTest) 15.47486 15.00441 15.00881 14.01175 15.01126 16.24620 15.99307 15.68193 15.67123 14.98932 14.77741 15.43363 12.07001 13.84586 15.83090 14.28052 15.16039 13.83686

相对

股票[,“ x2018.Volume”] [1] 5160000 110853500 3310000 3310000 1200000 1200000 876000 3310000 11400000 8830000 6380000 6410000 [12]

我做错了什么?在泊松函数上使用预测函数时是否需要特别注意?泊松回归不是我正在使用的数据的适当分析吗?

标签: rregressionpoisson

解决方案


首先,您需要阅读手册页predict.glm

predict(Stock.glm, type="response")
#          1          3          4          5          7          8          9 
#  5255867.7  3283450.0  3297945.2  1216812.4  3306021.9 11366695.1  8824739.9 
#         10         11         13         14         15         16         17 
#  6465084.7  6396289.7  3234293.9  2616649.3  5043601.7   174557.7  1030814.3 
#         18         19         20         21 
#  7503622.7  1592024.5  3837723.8  1021574.3 
Stock.glm$model$X2018.Volume
#  [1]  5160000  3310000  3310000  1200000  3310000 11400000  8830000  6380000  6410000
# [10]  3500000  2620000  4860000   199000   741000  7680000  1287769  3810000  1460000

由于缺少值,您无法与原始数据进行比较。因此,分析中使用的数据中缺少 4 行原始数据。

cor(Stock.glm$model$X2018.Volume, predict(Stock.glm, type="response"))
# [1] 0.9983086

推荐阅读