MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / CVRMSE

Method CVRMSE

src/model/UtilityBill.cpp:816–841  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

814 }
815
816 boost::optional<double> UtilityBill_Impl::CVRMSE() const {
817 boost::optional<double> result;
818 double ysum = 0;
819 double squaredError = 0;
820 unsigned n = 0;
821 double conv = this->consumptionUnitConversionFactor();
822 for (const BillingPeriod& p : this->billingPeriods()) {
823 boost::optional<double> consumption = p.consumption();
824 if (consumption) {
825 double convertedConsumption = conv * consumption.get();
826 boost::optional<double> modelConsumption = p.modelConsumption();
827 if (modelConsumption) {
828 ysum += convertedConsumption;
829 squaredError += std::pow(convertedConsumption - *modelConsumption, 2);
830 n += 1;
831 }
832 }
833 }
834
835 if (n > 1) {
836 double ybar = ysum / n;
837 result = 100.0 * std::pow(squaredError / (n - 1), 0.5) / ybar;
838 }
839
840 return result;
841 }
842
843 boost::optional<double> UtilityBill_Impl::NMBE() const {
844 boost::optional<double> result;

Callers 1

calibrationResultMethod · 0.45

Calls 6

billingPeriodsMethod · 0.95
powFunction · 0.50
consumptionMethod · 0.45
getMethod · 0.45
modelConsumptionMethod · 0.45

Tested by

no test coverage detected