【大数据分析与挖掘模型】matlab实现——趋势外推预测模型

一、实验目的

掌握趋势外推预测模型的基本理论,通过编程对实例进行预测。

二、实验任务

在佩尔预测模型、龚珀兹预测模型和林德诺预测模型中任选其一,进行编程预测。

本实验选择:佩尔预测模型

数据实例如下:

三、实验过程

四、实验结果

实现平台:++Matlab 2022A++

实验代码:

matlab 复制代码
% 年份和客运量的数据
% years = 1987:2006;
% passengers = [10091,10551,10389,10702,11078,10565,11063,25163,21697,23904,25003.7,29863,32962.2,33704,39984.4,38879.6,35156,38902,41079,43844];
years = 1994:2006;
passengers = [25163,21697,23904,25003.7,29863,32962.2,33704,39984.4,38879.6,35156,38902,41079,43844];

% 求解参数
% 计算数组的长度
n = length(years);
% 将数组分为三份
r = floor(n / 3);
part1 = passengers(1:r);
part2 = passengers((r + 1):(2 * r));
part3 = passengers((2 * r + 1):end);
% 求每份的总和
S1 = sum(1 ./ part1);
S2 = sum(1 ./ part2);
S3 = sum(1 ./ part3);
% 求各个参数
b = log((S1 - S2) / (S2 - S3)) / r;
L = r / (S1 - ((S1 - S2)^2 / ((S1 - S2) - (S2 - S3))));
a = ((S1 - S2)^2 * (1 - exp(-b)) * L) / (((S1 - S2) - (S2 - S3)) * exp(-b) * (1 - exp(-r * b)));

% 输出参数值
disp(['参数 L 的值为: ', num2str(L)]);
disp(['参数 a 的值为: ', num2str(a)]);
disp(['参数 b 的值为: ', num2str(b)]);



% 应用模型进行预测
t = 1:length(years);
predicted_passengers = L ./ (1 + a * exp(-b * t));

% 可视化预测结果
figure;
plot(years, passengers, '-', 'DisplayName', '实际乘客数量');
hold on;
plot(years, predicted_passengers, '-', 'LineWidth', 2, 'DisplayName', '预测乘客数量');
xlabel('年份');
ylabel('乘客数量');
title('佩尔预测模型预测结果');
legend;
grid on;

实验结果:

五、个人总结

1.对趋势外推预测模型的理解

趋势外推法的基本理论是:事物发展过程一般都是渐进式的变化,而不是跳跃式的变化,决定事物过去发展的因素在很大程度上也决定该事物未来的发展,事物的变化不会太大。依据这种规律推导,就可以预测出它的未来趋势和状态。

本次实验采用的佩尔模型是从生物繁殖和人口增长的S型曲线规律当中分析而出,能够较好地描述技术增长和新技术扩散过程。

相关推荐
chools4 分钟前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
郝学胜-神的一滴25 分钟前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
leobertlan28 分钟前
好玩系列:用20元实现快乐保存器
android·人工智能·算法
笨笨饿31 分钟前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
jr-create(•̀⌄•́)33 分钟前
从零开始:手动实现神经网络识别手写数字(完整代码讲解)
人工智能·深度学习·神经网络
冬奇Lab1 小时前
一天一个开源项目(第78篇):MiroFish - 用群体智能引擎预测未来
人工智能·开源·资讯
冬奇Lab1 小时前
你的 Skill 真的好用吗?来自OpenAI的 Eval 系统化验证 Agent 技能方法论
人工智能·openai
Evand J1 小时前
【三维轨迹目标定位,CKF+RTS,MATLAB程序】基于CKF与RTS平滑的三维非线性目标跟踪(距离+方位角+俯仰角)
开发语言·matlab·目标跟踪
数智工坊1 小时前
Transformer 全套逻辑:公式推导 + 原理解剖 + 逐行精读 - 划时代封神之作!
人工智能·深度学习·transformer
GreenTea2 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端