参数模型估计

时间:2017-12-01 14:00:46

标签: optimization models estimation

我有这个数据(t,TR和h),需要估算这个模型的参数(a,b,c,d和e):h =(a log(TR)+ b)< / em>的(C *(T ^ d)-e)* 41.59

t <- c(120,60,50,40,30,20,10,180,120,60,50,40,30,20,10,120,60,50,40,30,20,10,120,60,50,40,30,20,10)
TR <- c(2,2,2,2,2,2,2,5,5,5,5,5,5,5,5,10,10,10,10,10,10,10,20,20,20,20,20,20,20)
h <- c(49.4,41.6,39.1,36.2,31.9,25.1,15.9,80.2,70.3,55.2,51.6,47.3,41.7,33.2,22.1,84.2,64.1,59.9,54.6,48.1,38.6,26.2,97.5,72.8,67.9,61.6,54.3,43.7,30.1)

bell <- nls(h ~ ((a1*log(TR)+a2)*(a3*(t^b)-a4)*41.59), start = list(a=0.6, 
b2=0.3, c=0.4, d=0.30, e=0.4))

我尝试了“nls”和“nls2”进程,但这些因为这个没有用: nlsModel中的错误(formula,mf,start,wts): 初始参数估计时的奇异梯度矩阵

所以,我按照这个程序建立了一个可能的解决方案(我认为这是一个线性约束优化): 求解这个方程组

U1 <- log(TR)*(c1*t^d1-e1)*41.59
U2 <- (c1*t^d1-e1)*41.59
U3 <- t^d1*(a1*log(TR)+b1)*41.59
U4 <- c1*t^d1*log(t)*((a1*log(TR))+b1)*41.59
U5 <- -(a1*log(TR)+b1)*41.59

从假设的模型参数的初始值, 连续的线性方程组,以获得每次最接近零的偏差值。

ΣZ=(a1-a)ΣU1,i +(b1-b)ΣU2,i +(c1-c)ΣU3,1+(d1-d)ΣU4,i +(e1-e)ΣU5,i < / p>

对于每次迭代,参数的值假定在中获得的值 上一次迭代,加上偏差......

我怎么能在R?中做到这一点?

我很抱歉因为我是初学者,我不会说英语。 非常感谢你能给我的任何帮助。

0 个答案:

没有答案