Я пытаюсь подогнать версию ядра Кокса с частичной вероятностью в R. У меня есть функция
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
, и параметры действительно не меняются - я просто получаю вектор нулей снова и снова, пока все параметры не начнут двигаться в шаге блокировки. Это произошло независимо от того, какой метод оптимизации я пробовал.
Я знаю, что необходим минимальный воспроизводимый пример, но после попытки воспроизвести поведение я не смог его найти. Я счастлив редактировать большую часть кода, но я не хотел иметь гигантскую стену текста, скрывающую вопрос.