当我尝试计算加权方差时,我得到了R和SAS的不同结果。有谁知道造成这种差异的原因是什么?
我创建了权重和值的向量,然后我使用。来计算加权方差 Hmisc库wtd.var函数:
library(Hmisc)
wt <- c(5, 5, 4, 1)
x <- c(3.7,3.3,3.5,2.8)
wtd.var(x,weights=wt)
我得到了答案:
[1] 0.0612381
但如果我尝试在SAS中重现这些结果,我会得到一个完全不同的结果:
data test;
input wt x;
cards;
5 3.7
5 3.3
4 3.5
1 2.8
;
run;
proc means data=test var;
var x;
weight wt;
run;
结果回答
0.2857778
答案 0 :(得分:1)
您可能在如何计算方差方面存在差异。 SAS为您提供了一个选项VARDEF
,这可能对此有所帮助。
proc means data=test var vardef=WDF;
var x;
weight wt;
run;
在您的数据集上,它会给出与r
类似的差异。两者都是“正确的”,具体取决于您选择如何计算加权方差。 (在我的商店,我们计算第三种方式,当然......)
来自PROC MEANS documentation的完整文字:
VARDEF = divisor指定在计算中使用的除数 方差和标准差。下表显示了 除数和相关除数的可能值。
Possible Values for VARDEF=
Value Divisor Formula for Divisor
DF degrees of freedom n - 1
N number of observations n
WDF sum of weights minus one ([Sigma]iwi) - 1
WEIGHT | WGT sum of weights [Sigma]iwi
该过程将方差计算为
CSS/Divisor
,其中CSS 是校正的平方和和等于和((Xi-Xbar)^ 2)。当你 权重分析变量,CSS等于总和(Wi *(Xi-Xwbar)^ 2),其中 Xwbar是加权平均值。默认值:DF要求:要计算均值的标准误差, 平均值的置信限,或学生的t检验,使用 VARDEF的默认值=。
提示:当您使用WEIGHT语句时 VARDEF = DF,方差是Sigma ^ 2的估计值,其中 第i次观察的方差是Sigma ^ 2 / wi,而wi是 第i次观察的重量。这种方法产生了估计值 观察单位重量的方差。
提示:当你使用时 WEIGHT语句和VARDEF = WGT,计算的方差是 渐近(对于大n)估计的Sigma ^ 2 / wbar,其中 wbar是平均重量。这种方法产生渐近 估计平均重量的观察方差。