楼主: 等风来撒
4162 10

请问一个按照不同样本数算标准差的问题 [推广有奖]

  • 0关注
  • 0粉丝

博士生

40%

还不是VIP/贵宾

-

威望
0
论坛币
490 个
通用积分
35.4021
学术水平
0 点
热心指数
5 点
信用等级
0 点
经验
2497 点
帖子
220
精华
0
在线时间
233 小时
注册时间
2014-1-5
最后登录
2025-7-23

楼主
等风来撒 发表于 2016-2-22 17:15:05 |AI写论文
20论坛币
有如下数据集:

abc

1

0.1

标准差1

2

0.3

标准差1

4

0.6

标准差1

10

0.1

标准差1

2

0.5

标准差2

3

0.1

标准差2

7

0.8

标准差2

10

0.1

标准差2

7

0.2

标准差3

10

0.5

标准差3
            4              0.6         标准差最后一个
            5              0.7         标准差最后一个

我想计算出B的标准差,但是样本量是当A小于等于10时的值,例如,第一个标准差是b的前4个值,第二个标准差是后中间3个值,第三个标准差是最后3个值,也就是说A的数量是随机的,然后把结果放到放到C里面,请问高手怎么弄啊??

补充一点额,变量a最后可能会有不到10情况就完结了,最后那一个标准差也要根据那个值算出来额。。。。
关键词:标准差 样本数 三个标准差 最后一个 ABC 标准差 样本
这个...........

沙发
孤单的我们 发表于 2016-2-22 17:15:06
  1. data a;
  2.         input a b;
  3. cards;
  4. 1 0.1
  5. 2 0.3
  6. 4 0.6
  7. 10 0.1
  8. 2 0.5
  9. 3 0.1
  10. 7 0.8
  11. 10 0.1
  12. 7 0.2
  13. 10 0.5
  14. ;
  15. run;

  16. data b;
  17.         set a;
  18.         if a=10 then tmp+1;
  19. run;

  20. data c(drop=tmp);
  21.         set b;
  22.         by tmp;
  23.         if _n_>1 & first.tmp then grp=tmp-1;
  24.         else grp=tmp;
  25. run;

  26. proc sql noprint;
  27.         create table d as
  28.         select grp,a,b,sqrt(sum((b-avg)**2)/(n-1)) as c from
  29.         (select *,count(*) as n,avg(b) as avg from c group by grp) group by grp order by grp,a;
  30. quit;
复制代码

藤椅
孤单的我们 发表于 2016-2-22 17:19:12
对a分组(grp),proc mean data=datasets;by grp;var ……;
不知我的理解对不对

板凳
等风来撒 发表于 2016-2-22 17:21:26
孤单的我们 发表于 2016-2-22 17:19
对a分组(grp),proc mean data=datasets;by grp;var ……;
不知我的理解对不对
啊??没懂。。。

报纸
孤单的我们 发表于 2016-2-22 17:24:59
前4个观测、中间3个观测、后面3个观测分为3组。
然后每组组内求标准差。

地板
等风来撒 发表于 2016-2-22 17:27:35
孤单的我们 发表于 2016-2-22 17:24
前4个观测、中间3个观测、后面3个观测分为3组。
然后每组组内求标准差。
不行。。。数据有上亿行。。。这么分组会爆炸的电脑。。。 - -

7
孤单的我们 发表于 2016-2-22 17:28:58
等风来撒 发表于 2016-2-22 17:27
不行。。。数据有上亿行。。。这么分组会爆炸的电脑。。。 - -
分组的依据是什么

8
等风来撒 发表于 2016-2-22 17:31:26
孤单的我们 发表于 2016-2-22 17:28
分组的依据是什么
变量A相当于就是个计数器,只要到达10他就会重新计算,我需要的就是把到10之前的所有数据计算一个标准差

9
孤单的我们 发表于 2016-2-22 17:36:33
  1. data a;
  2.         input a;
  3. cards;
  4. 1
  5. 2
  6. 4
  7. 10
  8. 2
  9. 3
  10. 7
  11. 10
  12. 7
  13. 10
  14. ;
  15. run;

  16. data b;
  17.         set a;
  18.         if a=10 then tmp+1;
  19. run;

  20. data c(drop=tmp);
  21.         set b;
  22.         by tmp;
  23.         if _n_>1 & first.tmp then grp=tmp-1;
  24.         else grp=tmp;
  25. run;
复制代码

10
等风来撒 发表于 2016-2-22 17:40:30
孤单的我们 发表于 2016-2-22 17:36
额,然后怎么算标准差?好像后面没太看的懂额- -

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 19:27