线性化功能以寻找更好的起始值

时间:2019-02-07 11:24:04

标签: r nlm

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

0 个答案:

没有答案