Holt-Winters 在这里介绍:
http://en.wikipedia.org/wiki/Holt-Winters
此处讨论了它的季节性阻尼版本(向下滚动页面):
简而言之,它基本上着眼于 3 件事:
- 长期趋势
- 短期趋势
- 季节性趋势
它也不会将它们平均在一起,因为您真正需要的是加权平均,其中季节性和短期比长期趋势更重要,自然地,财务数据趋势。
给定 $anYear1 和 $anYear2,我如何应用 Holt-Winters 季节性阻尼方法来预测 $anYear2 结束后的 2 个月?假设 $anYear1 是一个包含 12 个数字的数组。假设 $anYear2 是一个范围为 0 到 12 个数字的数组。
所以,我可以用随机数据填充它,如下所示:
<?php
$anYear1 = array();
$anYear2 = array();
$nStop = 10; // so we need 11 and 12 of the year
for ($i = 1; $i <= 12; $i++) {
$anYear1[$i] = rand(200,500);
if ($i <= $nStop) {
// give it a natural lift like real financial data
$anYear2[$i] = rand(400,700);
}
}
$nSeasonRange = 4; // 4 months in a business quarter
Therefore, I want to create a function like so:
function forecastHoltWinters($anYear1, $anYear2, $nSeasonRange = 4) {
///////////////////
// DO MAGIC HERE //
///////////////////
// an array with 2 numbers, indicating 2 months forward from end of $anYear2
return $anForecast;
}
$anForecast = forecastHoltWinters($anYear1, $anYear2, $nSeasonRange);
echo "YEAR 1\n";
print_r($anYear1);
echo "\n\nYEAR 2\n"
print_r($anYear2);
echo "\n\nTWO MONTHS FORECAST\n";
print_r($anForecast);