资源简介
时间序列的人口预测,采用三次指数平滑,还有灰色预测,有数据提供参考。
代码片段和文件信息
clear
close all
clc
%% 读取60-64岁数据
x=xlsread(‘工作簿1.xlsx‘);
x=x(:3)‘; % 8读取人口数据
x1=[];
for k=1:3:length(x)-2
x1=[x1 x(k)]; %60-64
end
%% 三次指数平滑预测
fc=10; %未来10年
alpha=0.3;
beta=0.5;
gamma=0.5;
S=x1;
n=length(S);
k=2;
a(1)=sum(S(1:k))/k;
b(1)=(sum(S(k+1:2*k))-sum(S(1:k)))/k^2;
s=S-a(1);
y=a(1)+b(1)+s(1);
f=zeros(1441);
for i=1:n+fc
if i==length(S)
S(i+1)=a(end)+b(end)+s(end-k+1);
end
a(i+1)=alpha*(S(i)-s(i))+(1-alpha)*(a(i)+b(i));
b(i+1)=beta*(a(i+1)-a(i))+(1-beta)*b(i);%趋势
s(i+1)=gamma*(S(i)-a(i)-b(i))+(1-gamma)*s(i);%周期
y(i+1)=a(i+1)+b(i+1)+s(i+1);
end
%%
N=2018;
for i=fc:length(y)-1
disp([num2str(N)‘年60-64岁的预测人口数为:‘num2str(y(i+1))]);
N=N+1;
end
%%
t1 = 2008:2017;
t2 = 2018:2028;
plot(t1 x1‘r*‘); hold on;
plot(t2 y(fc+1:end) ‘bo‘);
xlabel(‘年份‘); ylabel(‘人口数‘);
%legend(‘实际值‘‘预测值‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 931 2020-02-21 17:33 人口预测\main1.m
文件 1128 2020-02-21 17:33 人口预测\main2.m
文件 914 2020-02-21 17:32 人口预测\main3.m
文件 10109 2020-02-21 17:01 人口预测\工作簿1.xlsx
目录 0 2020-02-21 17:34 人口预测\
- 上一篇:风电厂火电厂调频分析
- 下一篇:A星算法得出最短路径
评论
共有 条评论