以下のDEA推定のモンテカルロシミュレーションを高速化したいと思います
A<-nrow(banks)
effm<-matrix(nrow=A, ncol=2)
m<-20
B<-100
pb <- txtProgressBar(min = 0,
max = A, style=3)
for(a in 1:A) {
x1<-x[-a,]
y1<-y[-a,]
theta=matrix(nrow=B,ncol=1)
for(i in 1:B){
xrefm<-x1[sample(1:nrow(x1),m,replace=TRUE),]
yrefm<-y1[sample(1:nrow(y1),m,replace=TRUE),]
theta[i,]<-dea(matrix(x[a,],ncol=3),
matrix(y[a,],ncol=3),
RTS='vrs',ORIENTATION='graph',
xrefm,yrefm,FAST=TRUE)
}
effm[a,1]=mean(theta)
effm[a,2]=apply(theta,2,sd)/sqrt(B)
setTxtProgressBar(pb, a)
}
close(pb)
effm
Aが大きくなると、シミュレーションはフリーズします。私はオンライン調査から、apply関数がそのようなコードを急速に高速化することを知っていますが、上記の手順でそれを使用する方法がわかりません。
ヘルプ/指示をいただければ幸いです
バリー