SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1420|回复: 12
打印 上一主题 下一主题

t值计算

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-10-27 20:01:37 | 只看该作者

t值计算

data a: code        Time        day        r        _n
600001        20060524        20060531        -0.008281157        -5
600001        20060525        20060531        -0.026505991        -4
600001        20060526        20060531        0.065703898        -3
600001        20060529        20060531        0.086088239        -2
600001        20060530        20060531        0.03979086        -1
600001        20060531        20060531        0.107274286        0
600001        20060601        20060531        0.059430877        1
600001        20060602        20060531        -0.038942064        2
600001        20060605        20060531        -0.051635697        3
600001        20060606        20060531        0.038702317        4
600001        20060607        20060531        -0.062411551        5
600001        20060608        20060531        -0.017669674        6
600001        20060609        20060531        0.013122828        7
600001        20060612        20060531        0.016912312        8
600001        20060613        20060531        -0.051505329        9
600001        20060614        20060531        -0.038340433        10
600003        20070226        20070305        0.015148111        -5
600003        20070227        20070305        -0.056897604        -4
600003        20070228        20070305        0.034666183        -3
600003        20070301        20070305        0.112772922        -2
600003        20070302        20070305        -0.01225781        -1
600003        20070305        20070305        0.086679702        0
600003        20070306        20070305        -0.051920234        1
600003        20070307        20070305        -0.010350856        2
600003        20070308        20070305        -0.015317982        3
600003        20070309        20070305        -0.019223534        4
600003        20070312        20070305        -0.002773618        5
600003        20070313        20070305        0.014388151        6
600003        20070314        20070305        -0.008704821        7
600003        20070315        20070305        -0.002119721        8
600003        20070316        20070305        -0.029184168        9
600003        20070319        20070305        -0.022995407        10
600007        20060425        20060509                -5
600007        20060426        20060509                -4
600007        20060427        20060509                -3
600007        20060428        20060509        0.114413478        -2
600007        20060508        20060509        0.042151868        -1
600007        20060509        20060509        0.069974391        0
600007        20060510        20060509        0.018565172        1
600007        20060511        20060509        -0.008876887        2
600007        20060512        20060509        -0.008373075        3
600007        20060515        20060509        -0.050114431        4
600007        20060516        20060509        0.017978201        5
600007        20060517        20060509        0.026904472        6
600007        20060518        20060509        -0.015287463        7
600007        20060519        20060509        -0.030309676        8
600007        20060522        20060509        0.07694451        9
600007        20060523        20060509        -0.02235848        10
要求分别按照code 计算n= -5, -4,-3,..., 10天的均值和对应的t值,
另外需要把-2——0天的值加起来作为一个新的值 求均值和t值, 如何计算。
在利用如下程序时, 计算出来的-2——0天的均值是 分别计算-2,-1,0天的均值的1/3, 当然手算也可以, 但是不知道t值如何计算, 请教大虾, 谢谢
proc format;
   value _n1Fmt -5=1 -4=2 -3=3 -2-0=4  1=5 2-3=6  4-10=9 11-20=10;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-10-28 10:07:46 | 只看该作者

Re: t值计算

proc means里面输出的时候除了mean,再加上t就行了
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-10-28 10:19:21 | 只看该作者

Re: t值计算

我知道, 但是两种算法不一样, 不知道怎么回事
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-10-28 14:47:52 | 只看该作者

Re: t值计算

to vcvi
不明白你的问题是什么,你已经用proc format对n分了组,那么分组求mean和t就好了啊。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-10-28 17:45:28 | 只看该作者

Re: t值计算

proc format对n分了组,那么分组后 -2——0作为一个新的量 要求 mean和t ,
我用单独的_n= -2算的均值例如是0.2, _n=-1的均值是0.3, _n=0的mean =0.2, 那么利用的proc format 分组后-2——0的均值是0.233, 但我想要的是-2——0作为一个整体的均值是0.7,所以相应的t我想是有问题的. 程序如下
data A: code time day r _n
proc format;
   value _n1Fmt -5=1 -4=2 -3=3 -2-0=4 ;
run;
proc means data = a  noprint;
   class code day _n; ways 3;
   var r;
   format _n _n1Fmt.;
   output out = MeansOut mean = mean;
run;
proc means data = MeansOut noprint;
   class _n; ways 1;
   var mean;
   output out = MeansOut1(drop = _type_ _freq_) n = n mean = mean t = t;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2010-10-28 17:51:36 | 只看该作者

Re: t值计算

那就对每一code每一组别先求sum啊,然后在用proc mean求每一组的均值和t。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2010-10-28 17:59:47 | 只看该作者

Re: t值计算

to dengzi:
不会, 在原来的程序上怎么改
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2010-10-29 02:56:47 | 只看该作者

Re: t值计算

这个程序应该是这样的:
1.如果code day _n 三个变量一起决定了一个独特不重复的观测,
2.在求t的时候,每个code的-2-0观测值(3个)只用到平均值(一个值)。
如果你要的不是这个,那么这个程序是错的。
另外你给的数据是错误的。其中有三个缺失。
[quote:2h9cviae]600007 20060425 20060509 -5
600007 20060426 20060509 -4
600007 20060427 20060509 -3[/quote:2h9cviae]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2010-10-29 03:06:33 | 只看该作者

Re: t值计算

[quote:27mnzr25]我用单独的_n= -2算的均值例如是0.2, _n=-1的均值是0.3, _n=0的mean =0.2, 那么利用的proc format 分组后-2——0的均值是0.233, 但我想要的是-2——0作为一个整体的均值是0.7,所以相应的t我想是有问题的.[/quote:27mnzr25]
明明是要sum,非要说是均值。
如果只这样改动如下

proc means data = a noprint;
class code day _n; ways 3;
var r;
format _n _n1Fmt.;
output out = MeansOut sum = mean;
run;
原因是如果只有一个值,sum =mean
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2010-10-29 21:28:46 | 只看该作者

Re: t值计算

to jingju, thank you , 是我没表达清楚, 如下就可以了? way 3 ,way 1什么意思,可以解释下吗, 谢谢。
proc means data = a noprint;
class code day _n; ways 3;
var r;
format _n _n1Fmt.;
output out = MeansOut [color=#FF0000:2m1htjp0]sum[/color:2m1htjp0] = mean;
run;
proc means data = MeansOut noprint;
class _n; ways 1;
var mean;
output out = MeansOut1(drop = _type_ _freq_) n = n mean = mean t = t;
run;
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 21:48 , Processed in 0.071276 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表