我正在尝试在 R 中拟合 Cox 部分似然的内核化版本。我有一个函数
compute_kernelized_nLL(param_vect, kernel_matrix,response,lambda=0)
当我optim
按如下方式调用时:
ker.train<-construct_euclidean_kernel(as.matrix(data))
(res <-optim(par=rep(0,ncol(ker.train)),fn = compute_kernelized_nLL,
kernel_matrix=ker.train,
response=uncensored_survival,
lambda=3,
method="Nelder-Mead"))
我注意到这样做的结果通常会收敛到传递的初始参数值。为了检查这一点,我在开头打印了参数向量,compute_kernelized_nLL
并且参数确实没有改变 - 我只是一遍又一遍地得到一个零向量,直到所有参数开始以锁定步骤移动。无论我尝试哪种优化方法,都会发生这种情况。
我知道需要一个最小的可重现示例,但在尝试复制行为后我找不到。我很高兴编辑更多代码,但我不想让一堵巨大的文字墙掩盖问题。