def baseline_model_billing_single_record(il_electricity_cdd_hdd_billing_monthly): baseline_meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"][-2:] temperature_data = il_electricity_cdd_hdd_billing_monthly["temperature_data"] blackout_start_date = il_electricity_cdd_hdd_billing_monthly["blackout_start_date"] baseline_data = create_caltrack_billing_design_matrix( baseline_meter_data, temperature_data ) model_results = fit_caltrack_usage_per_day_model( baseline_data, use_billing_presets=True, weights_col="n_days_kept" ) return model_results
def reporting_model_billing(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] meter_data.value = meter_data.value - 50 temperature_data = il_electricity_cdd_hdd_billing_monthly[ "temperature_data"] blackout_start_date = il_electricity_cdd_hdd_billing_monthly[ "blackout_start_date"] baseline_meter_data, warnings = get_baseline_data(meter_data, end=blackout_start_date) baseline_data = create_caltrack_billing_design_matrix( baseline_meter_data, temperature_data) model_results = fit_caltrack_usage_per_day_model(baseline_data, use_billing_presets=True, weights_col="n_days_kept") return model_results
def reporting_model_daily(reporting_data_daily): model_results = fit_caltrack_usage_per_day_model(reporting_data_daily) return model_results
def baseline_model_daily(baseline_data_daily): model_results = fit_caltrack_usage_per_day_model(baseline_data_daily) return model_results
def test_total_average_metrics(): data = pd.DataFrame( { "meter_value": [6, 1, 1, 6], "cdd_65": [5, 0, 0.1, 0], "hdd_65": [0, 0.1, 0.1, 5], "start": pd.date_range(start="2016-01-02", periods=4, freq="D", tz="UTC"), } ).set_index("start") model_results = fit_caltrack_usage_per_day_model(data, fit_intercept_only=True) json_result = model_results.json() totals_metrics = json_result["totals_metrics"] assert round(totals_metrics["observed_length"], 3) == 3.000 assert round(totals_metrics["predicted_length"], 3) == 3.000 assert round(totals_metrics["merged_length"], 3) == 3.000 assert round(totals_metrics["num_parameters"], 3) == 0 assert round(totals_metrics["observed_mean"], 3) == 2.667 assert round(totals_metrics["predicted_mean"], 3) == 3.5 assert round(totals_metrics["observed_variance"], 3) == 5.556 assert round(totals_metrics["predicted_variance"], 3) == 0 assert round(totals_metrics["observed_skew"], 3) == 1.732 assert round(totals_metrics["predicted_skew"], 3) == 0 assert round(totals_metrics["observed_cvstd"], 3) == 1.083 assert round(totals_metrics["predicted_cvstd"], 3) == 0 assert round(totals_metrics["rmse"], 3) == 2.5 assert round(totals_metrics["rmse_adj"], 3) == 2.5 assert round(totals_metrics["cvrmse"], 3) == 0.938 assert round(totals_metrics["cvrmse_adj"], 3) == 0.938 assert round(totals_metrics["mape"], 3) == 1.806 assert round(totals_metrics["mape_no_zeros"], 3) == 1.806 assert round(totals_metrics["num_meter_zeros"], 3) == 0 assert round(totals_metrics["nmae"], 3) == 0.938 assert round(totals_metrics["nmbe"], 3) == 0.312 assert round(totals_metrics["confidence_level"], 3) == 0.9 assert round(totals_metrics["single_tailed_confidence_level"], 3) == 0.95 assert totals_metrics["observed_kurtosis"] is None assert totals_metrics["predicted_kurtosis"] is None assert totals_metrics["r_squared"] is None assert totals_metrics["r_squared_adj"] is None assert totals_metrics["autocorr_resid"] is None assert totals_metrics["n_prime"] is None assert totals_metrics["degrees_of_freedom"] is None assert totals_metrics["t_stat"] is None assert totals_metrics["cvrmse_auto_corr_correction"] is None assert totals_metrics["approx_factor_auto_corr_correction"] is None assert totals_metrics["fsu_base_term"] is None json_result = model_results.json() avgs_metrics = json_result["avgs_metrics"] assert round(avgs_metrics["observed_length"], 3) == 4.000 assert round(avgs_metrics["predicted_length"], 3) == 4.000 assert round(avgs_metrics["merged_length"], 3) == 4.000 assert round(avgs_metrics["num_parameters"], 3) == 0 assert round(avgs_metrics["observed_mean"], 3) == 3.5 assert round(avgs_metrics["predicted_mean"], 3) == 3.5 assert round(avgs_metrics["observed_variance"], 3) == 6.25 assert round(avgs_metrics["predicted_variance"], 3) == 0 assert round(avgs_metrics["observed_skew"], 3) == 0 assert round(avgs_metrics["predicted_skew"], 3) == 0 assert round(avgs_metrics["observed_cvstd"], 3) == 0.825 assert round(avgs_metrics["predicted_cvstd"], 3) == 0 assert round(avgs_metrics["observed_kurtosis"], 3) == -6.0 assert round(avgs_metrics["predicted_kurtosis"], 3) == 0 assert round(avgs_metrics["rmse"], 3) == 2.5 assert round(avgs_metrics["rmse_adj"], 3) == 2.5 assert round(avgs_metrics["cvrmse"], 3) == 0.714 assert round(avgs_metrics["cvrmse_adj"], 3) == 0.714 assert round(avgs_metrics["mape"], 3) == 1.458 assert round(avgs_metrics["mape_no_zeros"], 3) == 1.458 assert round(avgs_metrics["num_meter_zeros"], 3) == 0 assert round(avgs_metrics["nmae"], 3) == 0.714 assert round(avgs_metrics["nmbe"], 3) == 0 assert round(avgs_metrics["confidence_level"], 3) == 0.9 assert round(avgs_metrics["n_prime"], 3) == 12.0 assert round(avgs_metrics["single_tailed_confidence_level"], 3) == 0.95 assert round(avgs_metrics["autocorr_resid"], 3) == -0.5 assert round(avgs_metrics["degrees_of_freedom"], 3) == 12.0 assert round(avgs_metrics["t_stat"], 3) == 1.782 assert round(avgs_metrics["cvrmse_auto_corr_correction"], 3) == 0.577 assert round(avgs_metrics["approx_factor_auto_corr_correction"], 3) == 1.08 assert round(avgs_metrics["fsu_base_term"], 3) == 0.794 assert avgs_metrics["r_squared"] is None assert avgs_metrics["r_squared_adj"] is None