Let's compute the minimum cost that can be generated with the new method. Let min(X(mu,sigma)) be the minimum value we can obtain when using the random variable X.
(sqrt(rhoR)*min(X(mu,sqrt(1-rhoC)*sigma))
+ sqrt(1-rhoR)*(sqrt(rhoC)*min(X(mu,sigma))
+ sqrt(1-rhoC)*min(X(mu,sigma)) + (1-sqrt(rhoC)-sqrt(1-rhoC))*mu)
- (sqrt(rhoR)+sqrt(1-rhoR))*mu) / sqrt(1-rhoC*rhoR) + mu
In the case when min(X(mu,sigma)) = M for all sigma. This is the case for some asymmetric distributions like Gamma. With maxima:
assume(rhoR >= 0, rhoC >= 0, rhoR <= 1, rhoC <= 1, mu > 0);
declare(rhoR, constant);
declare(rhoC, constant);
declare(mu, constant);
eq : (sqrt(rhoR)*M + sqrt(1-rhoR)*(sqrt(rhoC)*M
+ sqrt(1-rhoC)*M + (1-sqrt(rhoC)-sqrt(1-rhoC))*mu)
- (sqrt(rhoR)+sqrt(1-rhoR))*mu) / sqrt(1-rhoC*rhoR) + mu;
solve([eq], [M]);
M = mu * (1 - sqrt(1-rhoC*rhoR) / ((sqrt(1-rhoC)+sqrt(rhoC))*sqrt(1-rhoR)+sqrt(rhoR)))
rhoC <- seq(0, 1, length.out = 7)
for (rhoR in rhoC) print((1 - sqrt(1 - rhoC * rhoR)/((sqrt(1 - rhoC) + sqrt(rhoC)) *
sqrt(1 - rhoR) + sqrt(rhoR))))
## [1] 0.0000 0.2431 0.2826 0.2929 0.2826 0.2431 0.0000
## [1] 0.2431 0.3892 0.4218 0.4366 0.4390 0.4251 0.3090
## [1] 0.2826 0.4132 0.4504 0.4730 0.4859 0.4868 0.4142
## [1] 0.2929 0.4167 0.4607 0.4927 0.5176 0.5347 0.5000
## [1] 0.2826 0.4030 0.4560 0.5000 0.5403 0.5779 0.5858
## [1] 0.2431 0.3610 0.4265 0.4875 0.5501 0.6194 0.6910
## [1] 0.00000 0.08713 0.18350 0.29289 0.42265 0.59175 1.00000
Given the value, when rhoC = rhoR = 1, then M = mu which is the only impossible case.
This requires to adapt classic definitions for usual distributions. For any distribution, the mean and the standard deviation must also be fixed and two paramaters must be available:
For uniform, the min depends on sigma:
min(X(mu,sigma)) = mu - K * sigma
Here, we want to know what are the acceptable values for sigma or for sigma/mu given that symmetric distributions have all a fixed K.
assume(rhoR >= 0, rhoC >= 0, rhoR <= 1, rhoC <= 1, mu > 0, K > 0);
declare(rhoR, constant);
declare(rhoC, constant);
declare(mu, constant);
declare(K, constant);
eq : (sqrt(rhoR)*(mu - sqrt(1-rhoC) * K * sigma)
+ sqrt(1-rhoR)*(sqrt(rhoC)*(mu - K * sigma)
+ sqrt(1-rhoC)*(mu - K * sigma) + (1-sqrt(rhoC)-sqrt(1-rhoC))*mu)
- (sqrt(rhoR)+sqrt(1-rhoR))*mu) / sqrt(1-rhoC*rhoR) + mu;
solve([eq], [sigma]);
sigma/mu = sqrt(1 - rhoC * rhoR) / K / (sqrt(rhoR) * sqrt(1 - rhoC)
+ sqrt(1 - rhoR) * (sqrt(1 - rhoC) + sqrt(rhoC)))
For the uniform (resp. triangle) distribution, K=sqrt(12)/2 (resp. K=sqrt(6)).
rhoC <- seq(0, 1, length.out = 300)
K <- sqrt(12)/2
plot.ecdf(sort(sapply(rhoC, function(rhoR) return(sqrt(1 - rhoC * rhoR)/K/(sqrt(rhoR) *
sqrt(1 - rhoC) + sqrt(1 - rhoR) * (sqrt(1 - rhoC) + sqrt(rhoC)))))))
K <- sqrt(6)
min(sapply(rhoC, function(rhoR) return(sqrt(1 - rhoC * rhoR)/K/(sqrt(rhoR) *
sqrt(1 - rhoC) + sqrt(1 - rhoR) * (sqrt(1 - rhoC) + sqrt(rhoC))))), na.rm = TRUE)
## [1] 0.2357
For uniform and triangle, the min and max values determined the mean and standard deviation. The coefficient of variation must only be lower than 0.23.