# correlatie.py - hangt het verbruik af van de temperatuur? (overdag, 8 tot 17 uur)
import csv


def correlatie(x, y):
    """Correlatiecoëfficiënt r van Pearson (hoofdstuk 28)."""
    mx, my = sum(x) / len(x), sum(y) / len(y)
    sxy = sum((a - mx) * (b - my) for a, b in zip(x, y))
    sxx = sum((a - mx) ** 2 for a in x)
    syy = sum((b - my) ** 2 for b in y)
    return sxy / (sxx * syy) ** 0.5


with open("week_uur.csv", newline="") as f:
    uren = [r for r in csv.DictReader(f) if 8 <= int(r["uur"][11:13]) <= 16]
T = [float(r["temperatuur_C"]) for r in uren]
V = [float(r["verbruik_Wh"]) for r in uren]
L = [float(r["licht_lx"]) for r in uren]
print(f"{len(uren)} uren overdag")
print(f"temperatuur en verbruik: r = {correlatie(T, V):+.2f}")
print(f"licht en verbruik:       r = {correlatie(L, V):+.2f}")
print(f"licht en temperatuur:    r = {correlatie(L, T):+.2f}")
for naam, laag, hoog in (("donker", 0, 5000), ("half", 5000, 15000), ("licht", 15000, 1e9)):
    groep = [i for i in range(len(uren)) if laag <= L[i] < hoog]
    r = correlatie([T[i] for i in groep], [V[i] for i in groep])
    print(f"  alleen {naam:6} ({len(groep):2d} uren): temperatuur en verbruik r = {r:+.2f}")
