1

ガンマ関数を含む関数を最適化しようとしています。私のデータは打ち切りデータです。私が持っている エラーは次のとおりです:「fn(par、...)のエラー:非関数を適用しようとしています」 Rコードは次のとおりです:

logB<-function(theta, data){
#theta=(lambda, rho, tau)
#hpa = the data with first column X, second column Age, third column t,fourth column group and fifth column delta
data<-hpa
n<-length(data[,1])
t<-data[,2]
ep<-(t<=theta[3])
delta<-data[,4]
D<-sum(delta*ep)
d2<-sum(ep)
d3<-sum(delta)
w1<-sum(delta*ep*t+(1-delta)*ep*t)
w2<-sum(delta*(1-ep)*t)+ sum((1-delta)*(1-ep)*t)
d<-(d3-d1)
b<-((lgamma(d)+ lgamma(D))- d*log(w2-theta[3](n-d2))- D*log(w1+theta[3](n-d2)))
return(b)
  }
optim(c(0.4,0.9,96),logB, method="Nelder-Mead")

fn(par, ...) のエラー: 非関数を適用しようとしています

よろしくお願いいたします。

4

1 に答える 1

3

d*log(w2-theta[3](n-d2))- D*log(w1+theta[3](n-d2))

あなたはおそらく欲しい

d*log(w2-theta[3]*(n-d2))- D*log(w1+theta[3]*(n-d2))

つまり、乗算演算子がありません。

于 2013-07-07T18:13:38.570 に答える