statsmodels.base.model.GenericLikelihoodModel¶
-
class statsmodels.base.model.GenericLikelihoodModel(endog, exog=
None, loglike=None, score=None, hessian=None, missing='none', extra_params_names=None, **kwds)[source]¶ 允许通过最大似然法拟合任何似然函数。
子类需要至少指定对数似然函数。如果为每个观测值指定了对数似然函数,那么将能够获得需要雅可比矩阵的结果。(另一种情况尚未测试。)
- Attributes:¶
endog_names内生变量的名称。
exog_names外生变量的名称。
注释
仅需要似然函数作为优化方法的是‘nm’和‘powell’
需要似然函数和得分/梯度的优化方法有‘bfgs’、‘cg’和‘ncg’。对于‘ncg’,计算Hessian的函数是可选的。
需要似然函数、得分/梯度和Hessian的优化方法是‘newton’
如果未被子类覆盖,则对数似然的数值梯度、雅可比矩阵和海森矩阵通过数值前向微分计算。在某些情况下,这可能会导致精度问题,并且海森矩阵可能不是正定的。即使海森矩阵不是正定的,基于雅可比矩阵外积的参数估计协方差矩阵可能仍然是有效的。
示例
另请参阅目录 miscmodels 中的子类
import statsmodels.api as sm data = sm.datasets.spector.load() data.exog = sm.add_constant(data.exog) # 在这个目录中 from model import GenericLikelihoodModel probit_mod = sm.Probit(data.endog, data.exog) probit_res = probit_mod.fit() loglike = probit_mod.loglike score = probit_mod.score mod = GenericLikelihoodModel(data.endog, data.exog, loglike, score) res = mod.fit(method=”nm”, maxiter = 500) import numpy as np np.allclose(res.params, probit_res.params)
方法
expandparams(params)当某些参数固定时,扩展为完整的参数数组
fit([start_params, method, maxiter, ...])基于似然模型的拟合方法
from_formula(formula, data[, subset, drop_cols])从公式和数据框创建模型。
hessian(params)在参数处评估的对数似然函数的Hessian矩阵
hessian_factor(params[, scale, observed])计算Hessian的权重
information(params)模型的费舍尔信息矩阵。
初始化(可能重新初始化)一个模型实例。
loglike(params)模型在参数处的对数似然值
loglikeobs(params)模型在参数下所有观测值的对数似然值。
nloglike(params)模型在参数下的负对数似然
predict(params[, exog])模型拟合后,predict 返回拟合值。
reduceparams(params)减少参数
score(params)在参数处评估的对数似然梯度
score_obs(params, **kwds)在每个观测值的参数处评估的对数似然函数的雅可比矩阵/梯度。
属性
内生变量的名称。
外生变量的名称。