【大数据分析与挖掘模型】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型曲线规律当中分析而出,能够较好地描述技术增长和新技术扩散过程。

相关推荐
AI科技星8 分钟前
接近光速运动下的光速不变性:基于张祥前统一场论的推导与验证
数据结构·人工智能·经验分享·算法·计算机视觉
864记忆29 分钟前
opencv图像预处理函数的功能与作用
人工智能·opencv·计算机视觉
神仙别闹1 小时前
基于C#实现(WinForm)数值分析(图像扭曲变形)
人工智能
光影少年1 小时前
AIGG人工智能生态及学习路线和应用领域
人工智能·学习
俊男无期1 小时前
【AI入门】什么是训练和推理
人工智能
递归不收敛1 小时前
多模态学习大纲笔记(未完成)
人工智能·笔记·学习·自然语言处理
碧海银沙音频科技研究院1 小时前
DiVE长尾识别的虚拟实例蒸馏方法
arm开发·人工智能·深度学习·算法·音视频
彩云回1 小时前
堆叠泛化(Stacking)
人工智能·机器学习·1024程序员节
AI浩1 小时前
FMC-DETR:面向航拍视角目标检测的频域解耦多域协同方法
人工智能·目标检测·计算机视觉