r - 将泊松回归应用于库存量是否错误?
问题描述
我最近了解了泊松回归,并且想将这种新的统计方法应用于现实世界的问题。所以我想了一会儿,决定尝试根据随机抽样公司的财务信息来预测财富 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]
我做错了什么?在泊松函数上使用预测函数时是否需要特别注意?泊松回归不是我正在使用的数据的适当分析吗?
解决方案
首先,您需要阅读手册页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
推荐阅读
- java - Java:使用本地 XSD 和 SchemaFactory 离线验证 XML
- c - strlcpy:源和目标指向同一个对象
- amazon-web-services - kubectl 获取节点无法连接到 AWS EC2 实例上的服务器
- angular - 将自定义 TemplateRef 传递给 NgxDatatable
- javascript - 如何使用 OpenLayers 区分用户和函数对地图移动的变化
- c - 如何在 C 中调用汇编程序函数
- python - 使用 python 'requests' 包按日期排序
- azure - 将应用程序发布到 azure 时,我无法查看/预览应用程序设置
- r - 渲染函数在两个环境中输出不同的文件
- docker - 无法启动 nginx 反向代理的容器