[2020, 2021, 2022, 2023, 2024], 'cases' => [156, 86, 43, 66, 62] ]; } public function calculate_regression($years, $cases) { $n = count($years); $sum_x = array_sum($years); $sum_y = array_sum($cases); $sum_x_squared = array_sum(array_map(function($x) { return $x * $x; }, $years)); $sum_xy = array_sum(array_map(function($x, $y) { return $x * $y; }, $years, $cases)); $slope = ($n * $sum_xy - $sum_x * $sum_y) / ($n * $sum_x_squared - $sum_x * $sum_x); $intercept = ($sum_y - $slope * $sum_x) / $n; return [ 'slope' => $slope, 'intercept' => $intercept ]; } public function forecast($slope, $intercept, $next_year) { return $slope * $next_year + $intercept; } }