我在正在做一个模型的敏感度分析。现在学用R里面新出的一个叫sensitivity的package。
我选择了fast function做SA。结果发现我的模型只run了一遍就停止了,而且得出来的sensitivity indices都是一样的值。不知道是哪里处了问题。
是不是fast程序所分析的模型里不能带有"rnorm", "mean", 或"for"呢?
以下是我的模型和结果。请各位高人看一看~~拜谢~~再谢
a<-function(x){
n=200000
x1<-0.00101
x5<-(1:n)
v1=0.1
v2=999
v3=0.9
cv1=0.2
cv2=0.1
cv3=0.05
for (i in 1:n){
v51<-rnorm(1,mean=(1+x[,1])*v1,sd=(1+x[,1])*v1*cv1)##0.1
v52<-rnorm(1,mean=(1+x[,2])*v2,sd=(1+x[,2])*v2*cv2)##999
v53<-rnorm(1,mean=(1+x[,3])*v3,sd=(1+x[,3])*v3*cv3)##0.9
x5<-x1*v51/(v51+v52+v53)}
x5a<-sum(x5)
y<-x5a/n}
然后我用:
sa<-fast(model=a,factors=3,n=1000)
结果是:
> sa
FOURIER AMPLITUDE SENSITIVITY TEST
Call:
fast.saltelli99(model = model, factors = factors, n = n, M = M, omega = omega, q = q, q.arg = q.arg)
Model runs: 1
Estimations of the indices:
first order total order
X1 2.350666e-05 0.3850583
X2 2.350666e-05 0.3850583
X3 2.350666e-05 0.3850583
不管怎么调试都是一样,希望大侠帮忙


雷达卡



京公网安备 11010802022788号







