【问题标题】:How to forecast electricity consumption using MATLAB's command "forecast"?如何使用 MATLAB 的“预测”命令预测用电量?
【发布时间】:2018-06-23 14:53:40
【问题描述】:

我有一个地区在 2017 年的用电量数据。所以我必须矩阵 1x1,一个是月份,另一个是消耗量。我想使用命令forecast来预测2018年第一个月的消耗,但是看了MATLAB帮助页面上的例子我也不知道该怎么做。

示例:

data = {1166974.25000000, 1132479.36000000, 1137173.86000000, 1145853.58000000, 1118875.72000000, 1071456.85000000 ,1047171.87000000, 1071179.65000000 ,1077986.32000000 ,1112111.10000000, 1149668.47000000 ,1161649.19000000, 1175576.25000000 ,1126753.31000000 ,1204843.11000000 ,1183946.03000000, 1153080.36000000, 1120182.07000000, 1104726.03000000 ,1108110.02000000 ,1137729.28000000 ,1189699.45000000, 1252975.55000000, 1218118.20000000 ,1259580 ,1208193 ,1194430, 1244458, 1218867, 1205705 ,1177362, 1185584, 1164758, 1226991 ,1286044 ,1305312, 1360681.70000000 ,1332020 ,1306497.90000000 ,1299819.10000000 ,1316167.70000000 ,1246959.40000000 ,1256700.20000000 ,1266490.60000000, 1275642.90000000, 1358839.80000000, 1361440.10000000, 1398059.40000000};
data = [data{:}];
sys = ar(data,4)
K = 49;
p = forecast(sys,data,K);
plot(data,'b',p,'r'), legend('measured','forecasted')

为什么这不起作用?

【问题讨论】:

    标签: matlab prediction forecasting forecast


    【解决方案1】:

    希望您找到解决问题的方法。如果你还没有,也许我可以提供帮助。

    MathWork 的函数文档指出,“PastData”条目(在您的代码中标记为“数据”)可以是 iddata 对象或 N x N_y 双精度矩阵。您的实现使用矩阵,所以我决定尝试使用 iddata 对象的代码。

    rawdat = [1166974.25000000, 1132479.36000000, 1137173.86000000, 1145853.58000000, 1118875.72000000, 1071456.85000000 ,1047171.87000000, 1071179.65000000 ,1077986.32000000 ,1112111.10000000, 1149668.47000000 ,1161649.19000000, 1175576.25000000 ,1126753.31000000 ,1204843.11000000 ,1183946.03000000, 1153080.36000000, 1120182.07000000, 1104726.03000000 ,1108110.02000000 ,1137729.28000000 ,1189699.45000000, 1252975.55000000, 1218118.20000000 ,1259580 ,1208193 ,1194430, 1244458, 1218867, 1205705 ,1177362, 1185584, 1164758, 1226991 ,1286044 ,1305312, 1360681.70000000 ,1332020 ,1306497.90000000 ,1299819.10000000 ,1316167.70000000 ,1246959.40000000 ,1256700.20000000 ,1266490.60000000, 1275642.90000000, 1358839.80000000, 1361440.10000000, 1398059.40000000];
    data = iddata(rawdat',[]);
    sys = ar(data,4);
    K = 49;
    p = forecast(sys,data,K);
    plot(data,'b',p,'r'), legend('measured','forecasted')
    

    请注意,我还更改了初始数据的变量名称和类型。

    上面的代码导致下图。

    请更新我们。谢谢。

    【讨论】:

    • 感谢您的回答。我还在努力,但你真的帮了我。
    • 你知道我如何使用变量数组而不是手动输入数据吗?因为我试了几次,总是显示错误信息。
    • @SrnLord 你能举例说明你所说的变量数组是什么意思吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2023-03-31
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2013-04-30
    相关资源
    最近更新 更多