Hello,

The likelihood includes two parameters to be estimated: lambda
(=beta0+beta1*x) and alpha. The algorithm for the estimation is as
following:

1) with alpha=0, estimate lambda (estimate beta0 and beta1 via GLM)
2) with lambda, estimate alpha via ML estimation
3) with updataed alpha, replicate 1) and 2) until alpha is converged to a
value

I coded 1) and 2) (it works), but faced some problems with the loop. It
produced some errors. Is there someone to help me to figure this problem for
the loop. Here are two codes: [I] one is for 1) and 2) (working), and [II]
another one is for 1)-3) (making errors).

Thank you in advance,

Jin

[I]for 1) and 2) (working)

% data set
alpha<-1
verpi<-c(5^alpha,10^alpha-5^alpha,14^alpha-10^alpha,18^alpha-14^alpha)
r<-c(1,0,0,1)
k<-c(3,2,2,2)
x<-c(0.5,0.5,1.0,1.0)

% estimate lambda (lambda=beta0+beta1*x)
GLM_results <- glm(r/k ~ x, family=binomial(link='cloglog'),
offset=log(verpi),weights=k)
beta0<-GLM_results$coefficients[[1]]
beta1]<-GLM_results$coefficients[[2]]
lambda1<-beta0+beta1*x[1]
lambda2<-beta0+beta1*x[2]

% using lambda, estimate alpha (a=alpha) through ML estimation
L<-function(a){
s1_f1<-(exp(-lambda1*(0^a-0^a))-exp(-lambda1*(5^a-0^a)))
s2_f2<-(exp(-lambda1*(10^a)-lambda2*(14^a-10^a+14^a-14^a))
        -exp(-lambda1*(10^a)-lambda2*(14^a-10^a+18^a-14^a)))
logl<-log(s1_f1*s2_f2)
return(-logl)}
optim(1,L)
alpha<-optim(1,L)$par
}

[II] for 1)-3) (making errors)

alpha[1]<-1
beta0=rep(0,10)
beta1=rep(0,10)
lambda1=rep(0,10)
lambda2=rep(0,10)
lambda3=rep(0,10)
lambda4=rep(0,10)
verpi=rep(0,10)
s1_f1=rep(0,10)
s2_f2=rep(0,10)
a=rep(0,10)
logl=rep(0,10)
beta0[1]=0
beta1[1]=0
lambda1[1]=0
lambda2[1]=0
lambda3[1]=0
lambda4[1]=0
verpi[1]=0
s1_f1[1]=0
s2_f2[1]=0
a[1]=1
logl[1]=0
for(i in 2:11){
verpi[i]<-c(5^alpha[i-1],10^alpha[i-1]-5^alpha[i-1],14^alpha[i-1]-10^alpha[i-1],18^alpha[i-1]-14^alpha[i-1])
r<-c(1,0,0,1)
k<-c(3,2,2,2)
x<-c(0.5,0.5,1.0,1.0)
GLM_results <- glm(r/k ~ x, family=binomial(link='cloglog'),
offset=log(verpi[i]),weights=k)
GLM_results
logLik(GLM_results[i])
beta0[i]<-GLM_results$coefficients[[1]]
beta1[i]<-GLM_results$coefficients[[2]]
beta0[i]
beta1[i]
lambda1[i]<-beta0[i]+beta1[i]*x[1]
lambda2[i]<-beta0[i]+beta1[i]*x[2]
lambda3[i]<-beta0[i]+beta1[i]*x[3]
lambda4[i]<-beta0[i]+beta1[i]*x[4]
lambda1[i]
lambda2[i]
lambda3[i]
lambda4[i]
L<-function(a){
s1_f1[i]<-(exp(-lambda1[i]*(0^a[i]-0^a[i]))-exp(-lambda1[i]*(5^a[i]-0^a[i])))
s2_f2[i]<-(exp(-lambda1[i]*(10^a[i])-lambda2[i]*(14^a[i]-10^a[i]+14^a[i]-14^a[i]))
       
-exp(-lambda1*(10^a[i])-lambda2[i]*(14^a[i]-10^a[i]+18^a[i]-14^a[i])))
logl[i]<-log(s1_f1[i]*s2_f2[i])
return(-logl[i])}
optim(1,L)
alpha[i]<-optim(1,L)$par
}
alpha
-- 
View this message in context: 
http://www.nabble.com/Loop-for-the-convergence-of-shape-parameter-tp19425959p19425959.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to