楼主: rogerfoxzhang
6844 10

[原创博文] 加权后所得的标准差变大了,如何处理 [推广有奖]

  • 0关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
430 点
帖子
15
精华
0
在线时间
12 小时
注册时间
2010-3-25
最后登录
2017-3-24

1论坛币
各位大侠,请教:

原来有一组数据,比如
A
129
130
131
134
正常用means计算标准差,比如是1;

有一个加权的变量,对应如
A         B
129     5
130     15
131     16
134      7
用means加上weight做SD,结果变大了,比如为3;

理论上,应该数据越多SD应该相对变小,为什么SD反而变大了三倍了。是不是算错了,有什么其他的方法可以计算这种加权后的标准差吗,理想的SD加权后应该不变或变小一点啊。谢谢!

关键词:标准差 Weight means weigh Eight 标准差 如何

回帖推荐

ofantuan 发表于10楼  查看完整内容

PROC UNIVARIATE data=xxx VARDEF=WTG; var xxx; weight xxxx; run;

本帖被以下文库推荐

沙发
crackman 发表于 2010-6-27 16:56:36 |只看作者 |坛友微信交流群
data crackman;
input a b @;
cards;
129      5
130     15
131     16
134      7
;
run;
proc means data=crackman;
var a ;
/*
weight b;
*/
run;

标准差是描述数据之间的变异程度的。

使用道具

藤椅
bobguy 发表于 2010-6-27 22:23:43 |只看作者 |坛友微信交流群
rogerfoxzhang 发表于 2010-6-27 16:24
各位大侠,请教:

原来有一组数据,比如
A
129
130
131
134
正常用means计算标准差,比如是1;

有一个加权的变量,对应如
A         B
129     5
130     15
131     16
134      7
用means加上weight做SD,结果变大了,比如为3;

理论上,应该数据越多SD应该相对变小,为什么SD反而变大了三倍了。是不是算错了,有什么其他的方法可以计算这种加权后的标准差吗,理想的SD加权后应该不变或变小一点啊。谢谢!
"理论上,应该数据越多SD应该相对变小,为什么SD反而变大了三倍了". ---Put the weighting aside,  this is talking about the variance of mean estimator, NOT about the variance of the random variable. Your understanding is wrong.



data t1;
  do i =1 to 100;
     x=normal(123);
     g=1;
     output;
  end;
do i =1 to 10000;
     x=normal(123);
     g=2;
     output;
  end;
  run;

  proc means data=t1;
  class g;
  var x;
  run;




                                        The MEANS Procedure

                                       Analysis Variable : x

              g    N Obs        N            Mean         Std Dev
   ------------------------------------------------------------------
              1      100      100      -0.0930159       0.9626726

              2    10000    10000      -0.0211541       1.0004539
   ------------------------------------------------------------------

使用道具

板凳
rogerfoxzhang 发表于 2010-6-28 05:55:45 |只看作者 |坛友微信交流群
我用的就是一楼的方法,但是事实是加权了变量之后,SD变大了3倍,并且与文献报道的也大了3倍。而如果不考虑加权,则与文献报道相同。我在想是不是加权后的SD还要再除以某个变量。

使用道具

报纸
爱萌 发表于 2010-6-28 09:54:56 |只看作者 |坛友微信交流群
说明你理论本身就没有学好
最恨对我说谎或欺骗我的人

使用道具

地板
cz851218 发表于 2010-6-28 13:11:24 |只看作者 |坛友微信交流群
怎么可能变大啊,晕了,不赋予权重时,每个变量离均值的差异程度前面的系数是1,而当赋予权重时,这个系数是小于1的啊!

使用道具

7
rogerfoxzhang 发表于 2010-6-29 02:31:49 |只看作者 |坛友微信交流群
确实变大了,算了,我问别人吧。。。

使用道具

8
cz851218 发表于 2010-6-29 08:58:46 |只看作者 |坛友微信交流群
不好意思 是我解释错了,加权的值不一定小于不加权的方差,只是不加权的方差赋予相同的权重,比方N个数据,则他们权重都为1/N,而加权会根据权重的不同值不同,当赋予偏离均值的权重大于1/n时,那最后的标准差将变大.

使用道具

9
rogerfoxzhang 发表于 2010-6-29 14:46:54 |只看作者 |坛友微信交流群
我再解释清楚一点吧,我的数据大概是这样的。
CPNBR   EXAMNO   SBP   TIME   
001             1               128     15
001             2               138     15
001             3               148     20
002             1               137     15
002             2               141     15
002             4               112     27
003             2               134     16
003             3               133     26
004             1               133     29
004             3               144     31
...........

不加权的时候:
proc means data=ex1.w000;
var sbp;
output out=v1;
class cpnbr;
run;
随后获得的sbp的均数是141.2,标准差是15.2.

然后加权之后:
proc means data=ex1.w000;
var sbp;
output out=v2;
weight time;
class cpnbr;
run;
结果获得的sbp均值是141.2mmHg,标准差却变为了61.9mmHg.

SD增大了4倍,不知道是因为什么,TIME这个变量我也检查了,没有问题 15+/-7 .

使用道具

10
ofantuan 发表于 2014-3-25 18:00:54 |只看作者 |坛友微信交流群
PROC UNIVARIATE data=xxx VARDEF=WTG;
var xxx;
weight xxxx;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 05:05