繁体   English   中英

删失数据的负对数似然

[英]Negative Log Likelihood for Censored Data

我想使用负对数似然作为客观 function 到 model 大致高斯数据,右删失。 我的目标 function 将如下所示,但我不确定如何得出用于计算的标准偏差。 通常,我们只是将高斯最大似然的 RMSE 最小化,并且标准偏差会减小到我们可以安全忽略的某个常数。 当使用 1 - CDF 计算删失数据的可能性时,不清楚标准差是否不重要。 在这里只使用响应变量的标准偏差作为标准偏差是否安全?

我真的不想 model 使用一致性索引,我更喜欢使用非参数技术而不是简单的 cox 比例风险模型。

import numpy as np
from scipy.stats import norm
def censored_nll(event, value, prediction, std_dev):
    if event:
        return -np.log(norm.pdf(value, prediction, std_dev))
    return -np.log(norm.sf(value, prediction, std_dev))

在这里只使用响应变量的标准偏差作为标准偏差是否安全?

绝对不是,由于正确的删失数据点,观察到的分布不适合计算汇总统计数据。

您必须以数值方式计算均值和标准差的 MLE。 您的代码已经完成了一半,但让我帮您一把:

import numpy as np
from scipy.stats import norm

def censored_nll(params, events, durations):
    mu, std_dev = params
    observed_durations = durations[events==1] # or events==True
    censored_durations = durations[~(events==1)] # or events==True
    return -(np.log(norm.pdf(observed_durations, loc=mu, scale=std_dev)).sum() \
             + np.log(norm.sf(censored_durations, loc=mu, scale=std_dev)).sum())

scipy.optimize.minimize(censored_nll, x0=np.array([0,1]), args=(events, durations))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM