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)

模型的费舍尔信息矩阵。

initialize()

初始化(可能重新初始化)一个模型实例。

loglike(params)

模型在参数处的对数似然值

loglikeobs(params)

模型在参数下所有观测值的对数似然值。

nloglike(params)

模型在参数下的负对数似然

predict(params[, exog])

模型拟合后,predict 返回拟合值。

reduceparams(params)

减少参数

score(params)

在参数处评估的对数似然梯度

score_obs(params, **kwds)

在每个观测值的参数处评估的对数似然函数的雅可比矩阵/梯度。

属性

endog_names

内生变量的名称。

exog_names

外生变量的名称。


Last update: Oct 16, 2024