wwertyuiop123 2024-03-24 21:08 采纳率: 0%
浏览 0

R语言时间序列不知道咋做了

有谁知道为什么时间序列holt-winter模型建模预测之后,用accuracy算出的MAPE和公式代码算出的MAPE为什么不一样?

setwd("D:/发货数据")
library(readxl)
data <- read_excel("发货数据月份.xlsx")
View(data)
print(data,n=74)
##qty ord`
       <dbl>
 1    384000
 2    737280
 3   1347840
 4   1470720
 5   1106560
 6   1025280
 7   1105920
 8   2035200
 9   1424640
10   1378560
11   2296320
12   1132800
13    268800
14    944640
15   1113600
16   1175040
17   1501440
18   1751040
19   1351680
20   2622720
21   1559040
22   2895360
23   4404480
24    618240
25     15360
26   1259520
27   1198080
28   1539840
29   2154880
30   1390720
31   3256370
32   4212480
33   4661760
34   6964520
35   5859840
36   5664000
37   1958400
38   4446720
39   3175680
40   2039040
41   3955200
42   3141120
43   1071360
44   2138880
45   1109760
46    921600
47   3264000
48   1632000
49   1267200
50   2883840
51   3820800
52   4631040
53   5157120
54   2323200
55   3137280
56   4957440
57   4431360
58   4047360
59   5479200
60    506880
61   3901440
62   5940480
63   6604800
64   6374400
65   6869760
66   6120960
67   4638720
68   6094080
69   6451200
70   6607024
71   7153760
72   8392960
73   1098240
74   3141760
series<-ts(data,start=c(2018,2),frequency = 12)
series
 ## print(series)
         Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep     Oct     Nov
2018          384000  737280 1347840 1470720 1106560 1025280 1105920 2035200 1424640 1378560
2019 1132800  268800  944640 1113600 1175040 1501440 1751040 1351680 2622720 1559040 2895360
2020  618240   15360 1259520 1198080 1539840 2154880 1390720 3256370 4212480 4661760 6964520
2021 5664000 1958400 4446720 3175680 2039040 3955200 3141120 1071360 2138880 1109760  921600
2022 1632000 1267200 2883840 3820800 4631040 5157120 2323200 3137280 4957440 4431360 4047360
2023  506880 3901440 5940480 6604800 6374400 6869760 6120960 4638720 6094080 6451200 6607024
2024 8392960 1098240 3141760                                                                
         Dec
2018 2296320
2019 4404480
2020 5859840
2021 3264000
2022 5479200
2023 7153760
2024  

train<-ts(head(data,n=59),start=c(2018,2),frequency = 12)
train
trainhw<-HoltWinters(train,seasonal="additive",l.start=384000, b.start= 353280)
trainhw
trainhwforecast<-forecast(trainhw,h=12)
trainhwforecast
accuracy(trainhwforecast)
##     ME    RMSE      MAE       MPE     MAPE      MASE        ACF1
Training set -183552.4 1147565 858237.9 -130.7332 157.1178 0.5107502 -0.05243135
difference <- data.frame (actual=c(506880, 3901440, 5940480, 6604800, 6374400, 6869760, 6120960, 4638720, 6094080, 6451200, 6607024, 7153760),
                     forecast=c(4302504,3517492,4278080, 4536428 ,  4648536, 4943364, 5246032,5143367, 6188275, 5698303,  5793771,6826866 ))
#calculate MAPE
mean(abs((difference$actual-difference$forecast)/difference$actual)) * 100
##77.36225
  • 写回答

4条回答 默认 最新

  • 关注

    wwertyuiop123 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    为什么时间序列Holt-Winters模型建模预测之后,用accuracy算出的MAPE和公式代码算出的MAPE不一样有以下可能的原因:

    1. 数据准备:在计算MAPE之前,确保你的实际值和预测值对应正确,即实际值和预测值的顺序一致。

    2. 代码中计算MAPE的公式可能有误:请仔细检查你计算MAPE的公式是否正确。确保分子和分母的变量正确。

    3. 精度问题:在计算MAPE时,可能存在精度问题。在R中,可以通过设置选项来调整计算精度,例如使用round函数控制小数点位数。

    以下是解决方案:

    1. 检查实际值和预测值是否对应正确。确保两个变量的顺序是一致的。
    2. 重新计算MAPE公式,确保分子和分母的变量正确。
    3. 使用round函数调整计算精度,例如将计算结果舍入到小数点后两位,以减小精度问题的影响。

    修改后的代码如下:

    # 计算MAPE
    mape <- function(actual, forecast) {
      return(mean(abs((actual - forecast) / actual)) * 100)
    }
    
    # 实际值和预测值
    actual <- difference$actual
    forecast <- difference$forecast
    
    # 调用mape函数计算MAPE
    mape_value <- mape(actual, forecast)
    mape_value
    

    请确保你传入的实际值和预测值是正确对应的,并检查输出的MAPE值是否与预期一致。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月24日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 结果有了,想问一下这个具体怎么输入
  • ¥15 怎么修改鸿蒙app的UI及功能设计
  • ¥15 帮我利用jupyter 运行一个正确的代码
  • ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
  • ¥15 sqlite加密问题咨询
  • ¥15 appdesigner接收不到udp组播的数据
  • ¥15 verilog 非阻塞赋值下的移位拼接错误
  • ¥100 两个按钮控制一个LED
  • ¥30 如何用python的GephiStreamer连接到gephi中,把Python和Gephi的具体操作过程都展示,重点回答Gephi软件的调试,以及如果代码的端口在浏览器中无法显示怎么处理
  • ¥15 ansys机翼建模肋参数