matlab
by lqx
预测模型的原理和方法
时间序列处理滑动平均法模型
% 假设销售量数据保存在一个向量sales中,每个元素表示当天的销售量
sales = [10, 12, 15, 18, 20, 16, 14, 13, 11, 10, 12, 15];
% 设置滑动窗口大小为3
windowSize = 3;
% 使用滑动平均法对销售数据进行平滑处理
smoothedSales = movmean(sales, windowSize);
% 输出原始销售数据和平滑后的销售数据
disp('原始销售数据:');
disp(sales);
disp('平滑后的销售数据:');
disp(smoothedSales);
%展示结果
原始销售数据:
10 12 15 18 20 16 14 13 11 10 12 15
平滑后的销售数据:
1 至 11 列
11.0000 12.3333 15.0000 17.6667 18.0000 16.6667 14.3333 12.6667 11.3333 11.0000 12.3333
12 列
13.5000
function x_smooth = slidingAverage(x, k)
if k < 1
error('k must be greater than or equal to 1.');
end
N = length(x);
x_smooth = zeros(1, N+k-1);
for i = 1:N+k-1
start_idx = max(1, i-k+1);
end_idx = min(i, N);
x_smooth(i) = mean(x(start_idx:end_idx));
end
x_smooth = x_smooth(k:end);
end
x = [1 2 3 4 5 6 7 8];
k = 2;
x_smooth = slidingAverage(x, k);
disp(x_smooth);
function sales_smooth = slidingAverage(sales)
k = 5; % 滑动窗口大小
b = ones(1, k) / k; % 平均滤波器的系数
sales_smooth = filter(b, 1, sales);
end
sales = [1000 1200 800 1500 900 1100 1300];
sales_smooth = slidingAverage(sales);
disp(sales_smooth);
% 假设温度数据保存在向量temperature中,湿度数据保存在向量humidity中
temperature = [26, 28, 30, 32, 29, 27, 25, 24, 22, 23];
humidity = [60, 62, 65, 68, 70, 67, 64, 62, 61, 59];
% 设置滑动窗口大小为5
windowSize = 5;
% 使用滑动平均法对温度和湿度数据进行平滑处理
smoothedTemperature = movmean(temperature, windowSize);
smoothedHumidity = movmean(humidity, windowSize);
% 输出原始数据和平滑后的数据
disp('原始温度数据:');
disp(temperature);
disp('平滑后的温度数据:');
disp(smoothedTemperature);
disp('原始湿度数据:');
disp(humidity);
disp('平滑后的湿度数据:');
disp(smoothedHumidity);
%展示结果
原始温度数据:
26 28 30 32 29 27 25 24 22 23
平滑后的温度数据:
28.0000 29.0000 29.0000 29.2000 28.6000 27.4000 25.4000 24.2000 23.5000 23.0000
原始湿度数据:
60 62 65 68 70 67 64 62 61 59
平滑后的湿度数据:
62.3333 63.7500 65.0000 66.4000 66.8000 66.2000 64.8000 62.6000 61.5000 60.6667