function karma_calculate($statuses) { $return = new stdClass(); $daily_karma = array(); //$daily_status_count = array(); $comment_count = 0; $like_count = 0; $denominator = 0.; foreach ($statuses as $status) { // get the timestamp of the date $daystamp = unixtojd(strtotime(substr($status['updated_time'], 0, 11))); $karma = karma($status); array_accum($daily_karma, $daystamp, $karma); //array_accum($daily_status_count, $daystamp, 1); $comment_count += $status['comment_count']; $like_count += $status['like_count']; // For the Wilson score, we need to find a proportion of "positive values". Therefore we set an absolute value for max karma per status message. $denominator += max($karma, 10); } //print_r($daily_status_count); //print_r(array_fill_missing_desc($daily_status_count)); //print 'sharpe: ' . sharpe_ratio($a); //print "\nsum:" . array_sum($daily_karma) . "\n"; $wilson_score = Rating::ratingAverage(array_sum($daily_karma), $denominator); $return->pop_index = $wilson_score * 100; $daily_karma_full = array_fill_missing_desc($daily_karma); $return->comment_count = $comment_count; $return->like_count = $like_count; $return->day_count = count($daily_karma); $return->status_count = count($statuses); return $return; }