【发布时间】:2014-01-09 19:37:05
【问题描述】:
当我尝试计算加权方差时,我从 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
【问题讨论】:
-
请 SAS 发布其代码。
Hmisc::wtd.var随时可用。 -
SAS 使几乎所有的统计计算都可用(不是以 java/c++ 中的代码,而是以数学形式),包括方差计算(如已回答)。向他们索要源代码是相当愚蠢的,除非您要向 Microsoft 索要 Windows 7 的源代码并期望他们同意?