如何计算 >10 个分量的加权和的方差珀尔https://stats.stackexchange.com/questions/5392/variance-of-two-weighted-random-variables ; A+B 的方差为:

因此,可以想象>10个分量的加权和的计算将非常非常复杂。 想知道 JMP 是否有一种简单的方法来执行计算。 谢谢!
回复:如何计算 >10 个分量的加权和的方差谢谢并同意私信可能更适合继续讨论! 很快就会给你发私信。
回复:如何计算 >10 个分量的加权和的方差Excel 中报告的协方差矩阵是如何计算的?应该是(X-mu)`*X-mu)/(n-1)。
Excel 中的这种协方差对我来说看起来很奇怪。
我还是不明白你的数据:
- CR 和 BD 的 5 个值相同??
- 测量ID代表什么? 为什么有的有 5 个,有的有 23 个? 这是否代表单个设备上组件内的多个测量?
- 您能否提供用于计算协方差矩阵的 20 x 5 计算结果表?
注意:用于计算协方差的 20 个设备结果应代表随机变化。 根据过去的经验,我曾尝试使用 20 个代表空间变化但不代表目标设备群体的组件。 由于这超出了 JMP 功能的范围,因此私信可能更适合继续讨论。
以下是使用 JMP 矩阵函数计算成对协方差的矩阵操作示例。
Names Default to Here(1);
dt = Open("$Sample_Data/Iris.jmp"); //a data file with 4 variables and mixed correlation
x = dt << get as matrix;
xb = emult( J(nrow(dt), ncol(x), 1) , V Mean(x) );
xc = x-xb;
cov = Covariance(x);
show( (xc`*xc)/(nrow(dt)-1) , cov);
/*: Log Output
(xc` * xc) / (N Row(dt) - 1) =
[ 0.685693512304251 -0.0424340044742729 1.27431543624161 0.516270693512304,
-0.0424340044742729 0.189979418344519 -0.329656375838926 -0.12163937360179,
1.27431543624161 -0.329656375838926 3.11627785234899 1.29560939597315,
0.516270693512304 -0.12163937360179 1.29560939597315 0.581006263982103];
cov =
[ 0.685693512304251 -0.0424340044742729 1.27431543624161 0.516270693512304,
-0.0424340044742729 0.189979418344519 -0.329656375838926 -0.12163937360179,
1.27431543624161 -0.329656375838926 3.11627785234899 1.29560939597315,
0.516270693512304 -0.12163937360179 1.29560939597315 0.581006263982103];
*/
回复:如何计算 >10 个分量的加权和的方差忘记提供这 5 个测试用例的协方差矩阵。 使用相关矩阵和协方差矩阵更新了 xls。
顺便说一句,相关矩阵和协方差矩阵是根据 20 个不同设备上的多次测量中每个测试用例的平均功耗生成的。
回复:如何计算 >10 个分量的加权和的方差非常感谢您的回复和解决方案! 鉴于提供的示例与我正在处理的情况不太相符,我还有两个附加问题,其中包含附件中的简化数据集。
如所附 xls 所示,有 5 个不同权重的不同组件(测试用例)。 每个测试用例对其相应的功耗(以 mA 为单位)都有不同数量的测量。
问题:
1. 加权总和后的功耗如何计算?
我的方法是使用每个测试用例的多次测量的平均(或中值)功耗,然后根据权重将它们相加。
2. 如何计算加权和的方差?
非常感谢您的帮助!
回复:如何计算 >10 个分量的加权和的方差您的参考文献中引用的公式是用于估计计算变量的方差的公式。 在经典的 Box、Hunter 和 Hunter 文本“实验者统计”和较旧的文本中,它被称为错误传输。 请注意,对于一般情况,权重之和不需要为 1。
对于许多变量,该公式可能会很长,但可以使用矩阵代数进行简化。
如果有实际数据,在JMP中计算很容易。请参阅下面的脚本。
Names Default to Here(1);
dt = Open("$Sample_Data/Iris.jmp"); //a data file with 4 variables and mixed correlation
x = dt << get as matrix;
w = [0.2 0.2 0.4 0.2];
cov = Covariance(x, <<"Pairwise");
wcov = Emult(w`*w, cov); //element wise multiplication
show(cov,wcov,sum(wcov)); /* log: Sum(wcov) = 0.943490362416108; */
//note the diagonal of wcov will be added once and each off diagonal twice, sum(wcov) will be the weighted variance
//now compute the weighted sum and find its variance, that is the std dev squared
dt << New Column("WSum", numeric, Continuous, <<SET each="" value=""></SET>