簡體   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