import numpy as np
from pprint import pprint
from crabbymetrics import Logit
np.set_printoptions(precision=4, suppress=True)Logit Example
This page mirrors examples/logit_example.py.
1 Fit A Binary Logit Model
rng = np.random.default_rng(2)
n = 800
k = 4
beta = np.array([1.2, -0.8, 0.4, -1.1])
intercept = 0.3
x = rng.normal(size=(n, k))
logits = intercept + x @ beta
probs = 1.0 / (1.0 + np.exp(-logits))
y = rng.binomial(1, probs).astype(np.int32)
model = Logit(alpha=1.0, max_iterations=200)
model.fit(x, y)
print("true intercept:", intercept)
print("true coef:", beta)
pprint(model.summary())true intercept: 0.3
true coef: [ 1.2 -0.8 0.4 -1.1]
{'coef': array([ 1.1245, -0.785 , 0.4493, -1.1894]),
'coef_se': array([0.1058, 0.1029, 0.0934, 0.1113]),
'intercept': 0.2866745643642197,
'intercept_se': 0.09089945628323781}