EVPI = \(\sum_{j} p_jmax(a_{i})\) - max \(\sum_{j} p_ja_{ij}\)
计算结果 (策略\事件) E1 = 0 E2 = 10 E3 = 20 E4 = 30 E5 = 40 EMV 期望收益 EVPI事件概率(pj) 0.1 0.2 0.4 0.2 0.1
S1 = 0 0 0 0 0 0 0
S2 = 10 -10 50 50 50 50 44
S3 = 20 -20 40 100 100 100 76
S4 = 30 -30 30 90 150 150 84 \(\longleftarrow\) max 100 16
S5 = 40 -40 20 80 140 200 80
根据 EMV 决策准则有
max (0, 44, 76 , 84, 80) = 84
得到最大的期望收益值为 84 , 再求得全情报期望收益 = 100 ,最后可得全情报价值EVPI = 16, 对应的决策策略为 S4,为决策者选择的策略。
计算代码 /** * 全情报价值(EVPI) * @param matrix * @param row * @param col */ private static void EVPI(double[][] matrix, int row, int col){ double[] maxMar = new double[row+1]; //记录每种行动方案的结果,第一行是自然状态概率 double max = 0.0; //最优结果 double temp = 0.0; double chance = 0.0; //概率 int maxIndex = 0; //最优结果下标 //因为第一行是自然状态概率,所以从第二行开始,实际的行数比 row 多一行 for (int i = 1; i <= row; i++) { for (int j = 0; j < col; j++) { chance = matrix[0][j]; //自然概率 temp = (j != 0) ? (temp + matrix[i][j]*chance) : (matrix[i][j]*chance); } maxMar[i] = temp; if(i == 1){ // 当 i=1时,为 max 与 maxIndex 赋初值 max = temp; maxIndex = 1; }else if(temp > max){ max = temp; maxIndex = i; } } double rowMax = 0.0; double expect = 0.0; double chance = 0.0; double value = 0.0; //计算全情报价值收益 for (int i = 0; i < col; i++) { chance = matrix[0][i]; //自然概率 for (int j = 1; j <= row; j++) { if(j == 1){ //初始化第一行第一个为该行最大的收益值 rowMax = matrix[j][i]; }else if (matrix[j][i] > rowMax){ rowMax = matrix[j][i]; } } expect += rowMax * chance; } except = new BigDecimal(expect).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); value = new BigDecimal(expect - max).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("全情报期望收益:"+except); System.out.println("全情报价值EVPI:"+value); } 效用曲线拟合(EUV) 定义效用概念首先是由贝努里提出的,他认为人们对其钱财的真实价值的考虑与他的钱财拥有量有对数关系。经济管理学家将效用作为指标,用它来衡量人们对某些事物的主观价值,态度,偏爱,倾向等。例如在风险情况下进行决策,决策者对风险的态度是不同的,用效用指标来量化决策者对待风险的态度,可以给每一个决策者测定他对待风险的态度的效用曲线函数。这里还有一个概率是效用曲线系数,效用曲线系数的取值范围为(0,∞)。
计算步骤先建立效用曲线函数,将矩阵中的收益值装化为效用值,其中 t 为效用曲线系数,b=max{x1,x2,x3,⋯,xn} ,a=min{x1,x2,x3,⋯,xn}) ;
U(x) = \(\left\{\begin{matrix} &0, & x\leq a & \\ &(\frac{x-a}{b-a})^t, & a\leq x\leq b \\ &1, &x\geq b \end{matrix}\right.\)
然后计算期望效用值,结果为期望效用的最大值
EUVi = \(\sum_{j} p_ju_{ij}\)
计算公式