MIF_E31211879/application/models/ModelLinear.php

34 lines
1.0 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ModelLinear extends CI_Model {
public function get_cases_data() {
// Data jumlah kasus stunting
return [
'years' => [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;
}
}