def fast_optimize(endog, exog, n_obs=0, n_vars=0, max_iter=10000, tolerance=1e-10):
"""
A convenience function for the Newton-Raphson method to evaluate a logistic model.
:param endog: An Nx1 vector of endogenous predictions
:param exog: An NxK vector of exogenous predictors
:param n_obs: The number of observations N
:param n_vars: The number of exogenous predictors K
:param max_iter: The maximum number of iterations
:param tolerance: Margin of error for convergence
:return: The error-minimizing parameters for the model.
"""
iterations = 0
oldparams = np.inf
newparams = np.repeat(0, n_vars)
while iterations < max_iter and np.any(np.abs(newparams - oldparams) > tolerance):
oldparams = newparams
try:
H = logit_hessian(exog, oldparams, n_obs)
newparams = oldparams - dot(inv(H), logit_score(endog, exog, oldparams, n_obs))
except LinAlgError:
raise LinAlgError
iterations += 1
return newparams
评论列表
文章目录