function getGoodnessOfFit($x, $y) { $bestFit = linear_regression($x, $y); $meanY = array_sum($y) / count($y); $SSreg = $SStot = 0.0; foreach ($x as $xKey => $xValue) { $bestFitY = getYPointFromSlopeIntersect($bestFit['slope'], $bestFit['intercept'], $xValue); $SSreg += ($y[$xKey] - $bestFitY) * ($y[$xKey] - $bestFitY); $SStot += ($y[$xKey] - $meanY) * ($y[$xKey] - $meanY); } if ($SStot == 0.0 || $SSreg == $SStot) { return 1; } return 1 - $SSreg / $SStot; }
public function score_prediction_extra_curricular($subject = '') { $this->load->library('Data_lib'); if (!$this->data_lib->auth()) { redirect(base_url('login')); } $data['head'] = $this->head; $data['foot'] = $this->foot; $data['left'] = $this->left; $data['externalScores'] = $this->data_lib->score_prediction_extra_curricular_external($subject); $data['extraScores'] = $this->data_lib->score_prediction_extra_curricular_scores(); $external = array(); $extra = array(); foreach ($data['externalScores'] as $key => $value) { array_push($external, $value['externalAverage']); } foreach ($data['extraScores'] as $key => $value) { array_push($extra, $value['extraAverage']); } $values = linear_regression($external, $extra); $m = $values['m']; $c = $values['b']; $data['m'] = $m; $data['c'] = $c; $this->load->view('score_prediction_extra_curricular', $data); }