У меня есть несколько человек, для каждого из которых я хочу оценить два параметра модели.У меня нет проблем с поиском методом проб и ошибок подходящих начальных значений для одного человека.Тем не менее, у меня есть более 1000 человек, и выполнение этого вручную для каждого заняло бы у меня навсегда.В Интернете я видел, что люди линеаризуют свою функцию и используют функцию lm, чтобы получить лучшие начальные значения.
Моя проблема в том, что я не уверен, смогу ли я сделать это с помощью своей функции, и я знаю, как, возможно, у вас, ребята, есть идея или альтернатива.
Ниже я далЯ хочу использовать функцию
nlfrecet <- function(psi,x){
a<- psi[1]
alpha <-0.9
beta<- psi[2]
temp <- a*(alpha/beta)*((beta/((x)))^(alpha+1))*exp(-(beta/(x))^alpha)
return(temp)
}
Это данные для одного человека
y<-c(0.0, -2.0, -3.0, 16.0, 3.0, 2.0, 1.0, 0.0, 0.0, 14.0, 1.0, 4.0, -1.2,
0.0, 8.0, 1.0, 1.0, -0.2, -1.0, 15.0, 3.0, 4.0, 1.0, -0.7, -1.2, 19.0,
8.0, 4.0)
x<- c(0, 0, 14, 64, 281, 485, 672, 924, 21, 64, 14, 213, 488, 14, 50, 325,
557, 763, 844, 52, 14, 189,393, 611, 808, 45, 259, 480)
nlm(y~nlfrecet(psi,x), start=list(psi=c(a=2000, b=100)))