import csv
from pathlib import Path
import glmm
DATA_PATH = Path(__file__).resolve().parents[3] / "validation" / "data" / "empirical" / "grouseticks.csv"
with open(DATA_PATH, newline="") as f:
rows = list(csv.DictReader(f))
data = {
"TICKS": [float(r["TICKS"]) for r in rows],
"YEAR": [r["YEAR"] for r in rows],
"HEIGHT": [float(r["HEIGHT"]) for r in rows],
"BROOD": [r["BROOD"] for r in rows],
}
fit = glmm.fit(data, "TICKS ~ YEAR + HEIGHT + (1 | BROOD)", family="poisson")
print("converged:", fit.converged, " singular:", fit.singular)
fit.summary()
sd, _corr = fit.stddev_corr(0)
print("BROOD stddev:", sd[0])
print("loglik:", fit.loglik)
print("\n(no manifest rung matches this formula -- a run, not an oracle-pinned result)")