2015-10-27 77 views
1

我試圖用增長模型來分析可修復系統的可靠性。 我已經安裝了一個Crow-Amsaa模型,但是我想知道是否有任何軟件包或任何適用於R的泛化更新過程(Kijima模型I)或II型 的代碼,並且找到它的參數Beta,Lambda(或alpha)和q值。 (或一些其它的型號爲平均累積功能MCF)可能性的R函數

本文的方程數15給出了 對數似然的表達

http://arxiv.org/ftp/arxiv/papers/1006/1006.3718.pdf

我試圖創建這樣的功能:

likelihood.G1=function(theta,x){ 
# x is a vector with the failure times, theta vector of parameters 
a=theta[1] #Alpha 
b=theta[2] #Beta 
q=theta[3] #q 

logl2=log(b/a) # First part of the equation 

for (i in 1:length(x)){ 
logl2=logl2 +(b-1)*log(x[i]/(a*(1+q)^(i-1))) -(x[i]/(a*(1+q)^(i-1)))^b 
} 
return(-logl2) #Negavite of the log-likelihood 
} 

然後用一些rutine用於最小化-Log(L)

theta=c(0.5,1.2,0.8) #Start parameters (lambda,beta,q) 

nlm(likelihood.G1,theta, x=Data) 

或者也

optim(theta,likelihood.G1,method="BFGS",x=Data) 

但是這似乎是一些錯誤,因爲它返回的參數沒有意義

什麼我做錯了任何想法?

感謝

回答

1

看着你引用論文的方程(16),它看起來像你缺少的一個術語,它循環與您的代碼進行比較。看起來,每個數據點有助於三個對數似然項,但在您的代碼中(在循環內),您只有兩個項(不考慮更新項)

具體而言,您的代碼不包括第4項在方程式(16):

enter image description here

也不它的第7項,依此類推。這是代碼中至少有一個錯誤。額外的考慮因素是α和β被限制爲大於零。我不確定你使用的求解器是否考慮了這個約束。