Home > Blockchain >  Can't get data for all combinations
Can't get data for all combinations

Time:02-10

I have 31 possible scenarios for the value of the average and I would like to generate for each scenario samples but I do not get as much as I would like. This is the scenarios

> scenari<-s*shift;scenari 
   Var1 Var2 Var3 Var4 Var5
2   1.5  0.0  0.0  0.0  0.0
3   0.0  1.5  0.0  0.0  0.0
4   1.5  1.5  0.0  0.0  0.0
5   0.0  0.0  1.5  0.0  0.0
6   1.5  0.0  1.5  0.0  0.0
7   0.0  1.5  1.5  0.0  0.0
8   1.5  1.5  1.5  0.0  0.0
9   0.0  0.0  0.0  1.5  0.0
10  1.5  0.0  0.0  1.5  0.0
11  0.0  1.5  0.0  1.5  0.0
12  1.5  1.5  0.0  1.5  0.0
13  0.0  0.0  1.5  1.5  0.0
14  1.5  0.0  1.5  1.5  0.0
15  0.0  1.5  1.5  1.5  0.0
16  1.5  1.5  1.5  1.5  0.0
17  0.0  0.0  0.0  0.0  1.5
18  1.5  0.0  0.0  0.0  1.5
19  0.0  1.5  0.0  0.0  1.5
20  1.5  1.5  0.0  0.0  1.5
21  0.0  0.0  1.5  0.0  1.5
22  1.5  0.0  1.5  0.0  1.5
23  0.0  1.5  1.5  0.0  1.5
24  1.5  1.5  1.5  0.0  1.5
25  0.0  0.0  0.0  1.5  1.5
26  1.5  0.0  0.0  1.5  1.5
27  0.0  1.5  0.0  1.5  1.5
28  1.5  1.5  0.0  1.5  1.5
29  0.0  0.0  1.5  1.5  1.5
30  1.5  0.0  1.5  1.5  1.5
31  0.0  1.5  1.5  1.5  1.5
32  1.5  1.5  1.5  1.5  1.5

and this is the function

genereting_fuction<-function(n){
  for (i in 1:length(scenari)){
      X1=rnorm(n) scenari[i,1]
      X4=rnorm(n) scenari[i,4]
      X2=X1*p12 std_e2*rnorm(n) scenari[i,2]
      X3=X1*p13 X4*p43 std_e3*rnorm(n) scenari[i,3]
      X5=X2*p25 X3*p35 std_e5*rnorm(n) scenari[i,5]
     sample=cbind(X1,X2,X3,X4,X5)
     return(sample)
  }
}
genereting_fuction(10)

I should get 31 samples of size 10X5 but I get only one sample

CodePudding user response:

You are applying the for loop over return as well and eventually returning the sample corresponding to the last scenario only.

Try this :

genereting_fuction<-function(n){
  sample <- list()
  for (i in 1:nrow(scenari)){
      X1=rnorm(n) scenari[i,1]
      X4=rnorm(n) scenari[i,4]
      X2=X1*p12 std_e2*rnorm(n) scenari[i,2]
      X3=X1*p13 X4*p43 std_e3*rnorm(n) scenari[i,3]
      X5=X2*p25 X3*p35 std_e5*rnorm(n) scenari[i,5]
     sample[[i]]=cbind(X1,X2,X3,X4,X5)
  }
  sample
}

The output will be a list and its ith element will be a sample corresponding to the ith scenario.

  • Related