我有多个个人,每个人都想要估算两个模型参数。通过反复试验,我没有问题可以找到单个人的适当起始值。但是,我有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)))