Report how well the base coefficients are identified

The base layer (loss, heat, bias) showed values only, so a zone with weeks of
samples looked equally trustworthy whether or not the data ever varied its
inputs. Each base coefficient now reports a confidence from its own posterior
variance, as the extended and ventilation layers already did: it stays at 0
for `heat` while the relay never cycles and below 0.8 for `loss` and `bias`
while the indoor-outdoor difference is steady. Readiness is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
buzeraandClaude Opus 5.5 committed 2026-10-27 03:49:13 +02:00
1 parent 26c415fa6c
commit a44163a57d
4 files changed
+47 -2

No files matched your search

+5
View File
@@ -785,6 +785,11 @@ class BoundaryTests(unittest.IsolatedAsyncioTestCase):
self.assertEqual(details['model_in_use'], 'extended')
self.assertGreater(details['contributions_c_per_h']['internal'], 0.2)
self.assertTrue(details['coefficients']['extended']['internal']['identified'])
# The base layer reports how well each coefficient is pinned down too.
base = details['coefficients']['base']
self.assertEqual(set(base), {'loss', 'heat', 'bias'})
self.assertEqual(base['heat']['confidence'], data['models']['office']['confidence']['heat'])
self.assertGreater(base['heat']['confidence'], 0.8)
# Replayed against what happened, the electrical term removes most of the base error.
accuracy = data['forecast_accuracy'][60]
self.assertLess(accuracy['mae'], 0.06)