void WP::mle() { double old_loglike = loglike( concatenate_params(average_daily_rate(), day_of_week_pattern(), weekday_hourly_pattern(), weekend_hourly_pattern())); double dloglike = 1.0; while (dloglike > 1e-5) { maximize_average_daily_rate(); maximize_daily_pattern(); maximize_hourly_pattern(); double new_loglike = loglike(concatenate_params( average_daily_rate(), day_of_week_pattern(), weekday_hourly_pattern(), weekend_hourly_pattern())); dloglike = new_loglike - old_loglike; old_loglike = new_loglike; } }
double WP::event_rate(const DayNames day, int hour)const{ return average_daily_rate() * day_of_week_pattern()[day] * hourly_pattern(day)[hour]; }