自己测试人口预测的matlab实现:

x=[54167    
55196    
56300    
57482    
58796    
60266    
61465    
62828    
64653    
65994    
67207    
66207    
65859    
67295    
69172    
70499    
72538    
74542    
76368    
78534    
80671    
82992    
85229    
87177    
89211    
 90859    
 92420    
 93717    
 94974    
 96259    
 97542    
 98705    
100072    
101654    
103008    
104357    
105851    
107507    
109300    
111026    
112704    
114333    
115823    
117171    
118517    
119850    
121121    
122389    
123626    
124761    
125786    
126743    
127627    
128453    
129227    
129988    
130756    
131448    
132129    
132802    
134480    
135030    
135770    
136460    
137510]';
% 该脚本用来做NAR神经网络预测
lag=3;    % 自回归阶数
iinput=x;    % x为原始序列(行向量)
n=length(iinput);

%准备输入和输出数据
inputs=zeros(lag,n-lag);
for i=1:n-lag
    inputs(:,i)=iinput(i:i+lag-1)';
end
targets=x(lag+1:end);

%创建网络
hiddenLayerSize = 10; %隐藏层神经元个数
net = fitnet(hiddenLayerSize);

% 避免过拟合,划分训练,测试和验证数据的比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

%训练网络
[net,tr] = train(net,inputs,targets);
%% 根据图表判断拟合好坏
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors)                      %绘制误差的自相关情况(20lags)
figure, parcorr(errors)                          %绘制偏相关情况
%[h,pValue,stat,cValue]= lbqtest(errors)         %Ljung-Box Q检验(20lags)
figure,plotresponse(con2seq(targets),con2seq(yn))   %看预测的趋势与原趋势
figure, ploterrhist(errors)                      %误差直方图
figure, plotperform(tr)                          %误差下降线

%% 下面预测往后预测几个时间段
fn=7;  %预测步数为fn

f_in=iinput(n-lag+1:end)';
f_out=zeros(1,fn);  %预测输出
% 多步预测时,用下面的循环将网络输出重新输入
for i=1:fn
    f_out(i)=net(f_in);
    f_in=[f_in(2:end);f_out(i)];
end
% 画出预测图
figure,plot(1949:2013,iinput,'b',2013:2020,[iinput(end),f_out],'r')

用2014a版matlab运行后结果如下:

网络结构和各参数显示如下:

误差直方图

图1  自相关    图2 误差

图3 预测

注意在对结果好坏的判断中,仅仅看误差图是不够的,如果是一个好的预测,那么自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。还有其他的统计量和图表都都写在”%“后面了,如果需要,去掉就可用。最后的预测值为f_out,我的预测值为

138701.065269972    139467.632609654    140207.209707364    141210.109373609    141981.285378849    142461.332139592    143056.073139776

扫描下方“二维码”回复“书籍”,获取30本数据分析、python、Matlab、数据库、统计学”等经典书籍。

转自:https://www.cnblogs.com/babyfei/p/7003068.html

BP神经网络人口预测程序(matlab实现)相关推荐

  1. BP神经网络人口预测程序(matlab实现)(转)

    己测试人口预测的matlab实现: x=[54167     55196     56300     57482     58796     60266     61465     62828     ...

  2. 神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)

    自己测试人口预测的matlab实现: x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 ...

  3. 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)

    最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型.时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于 ...

  4. 神经网络人口预测matlab,利用MATLAB工具模拟实现人口预测实例分析.doc

    摘要:人口预测对于国民经济计划的制定和社会战略目标的决策具有重要参考价值.本文主要利用MATLAB软件对中国1974-2015年的人口总数数据进行统计分析,建立BP神经网络预测模型.把它与一元非线性回 ...

  5. 【停车位预测】基于matlab BP神经网络停车位预测【含Matlab源码 765期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[停车位预测]基于matlab BP神经网络停车位预测[含Matlab源码 765期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  6. gadecod matlab,【预测模型】基于遗传算法优化BP神经网络房价预测matlab源码

    一.简介 1 遗传算法概述 遗传算法(Genetic Algorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法 ...

  7. bp神经网络时间序列预测,bp神经网络有几个阶段

    什么是BP神经网络? . BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成:正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差 ...

  8. bp神经网络时间序列预测,bp神经网络数据预处理

    怎么用已经训练好的BP神经网络进行预测下一个值? 谷歌人工智能写作项目:神经网络伪原创 bp神经网络如何用于预测 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络,历史数据作为样本,例 ...

  9. BP神经网络通俗教程(matlab实现方法)

    BP神经网络通俗教程(matlab实现方法) BP神经网络是什么 BP(Back-propagation,反向传播)神经网络是最传统的神经网络.当下的各种神经网络的模型都可以看做是BP神经网络的变种( ...

最新文章

  1. 提高开发效率之VS Code基础配置篇
  2. 订单表的分库分表方案设计(大数据)
  3. day11-(cookiesession)
  4. 【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )
  5. ElementUI中的el-table怎样实现绑定对象数组时每一列不同控件的动态数据绑定
  6. vscode连接远程服务器 SSH
  7. 带你一起学习实用计算机英语!(IT行业、四六级党记起来)《软件工程专业英语》第二单元的重点词汇+名词缩写+重难句+软件需求规格说明
  8. admin客户管理系统html5模板
  9. 前端【学习心得】电商网站前端架构#3 前端在产品设计中的作用
  10. 通过html直接显示txt内容_10分钟教你用Python爬取Baidu文库全格式内容
  11. PDE8 wave equation: derivation
  12. 疯狂java讲义第6版_疯狂java讲义第6版
  13. Proximal Algorithms
  14. 10年涨7倍!纵观南京房价变迁史,看哭多少买房人!
  15. 403 Forbidden error
  16. 电阻的耐功率冲击与耐电压冲击
  17. macOS Ventura 13.1 系统问题:掉电快 充电慢
  18. 计算机一接上网线重新启动,一插上网线电脑会自动重启解决方法
  19. 分享一道面试题:10ml试管10ml的水,一个7ml,一个3ml,将10ml分成两个5ml的
  20. 弘辽科技:2022年拼多多活动时间表是什么?促销方式有哪些?

热门文章

  1. 有的歌声音大有的歌声音小_同样是mp3格式的歌,同一个耳机,在保证音量大小不变情况下,为什么有的歌声音大有的歌声音小?...
  2. CorelDRAW过期激活,快速解决错误38
  3. 第八章-磁盘存储器管理(SWUST操作系统期末复习试题)
  4. 逆向路径转发 linux,RPF(Reverse Path Forwarding 反向路径转发)技术
  5. 2021-2027全球与中国高速型光纤传感器市场现状及未来发展趋势
  6. java基于ssm的员工人事工资管理系统
  7. 人事工资信息管理系统(数据库设计)
  8. java企业人事工资管理系统
  9. 安卓Android学生考勤请假销假系统app
  10. 实时同步刷新excel数据到数据库