Class 配对 T 检验
Paired T Test With a Class
我有一些数据是这样的:
Date Close
12/31/2014 222.41
12/30/2014 222.23
12/29/2014 225.71
12/26/2014 227.82
12/24/2014 222.26
12/23/2014 220.97
12/22/2014 222.6
12/19/2014 219.29
12/18/2014 218.26
日期范围涵盖 2 整年 2013 - 14。
我想在 Close 上进行配对 T 检验,但我的语法很吃力。大概我需要将日期转换为年份?或者我呢? 2013 年的每个日期都与 2014 年的另一个日期相匹配。
我可以更改 csv 中的数据并将其设置为:
Date | 2013_Close | 2014_Close
Jan 1| 101 | 204
Jan 2| 105 | 210
但是如果我想避免这种情况,有没有办法对数据进行配对 T 检验?
这是我尝试过但收到错误的方法:
proc ttest data=tsla sides=2 alpha=0.05 h0=0;
class Date;
format Date year.;
var Close;
paired 2014*2013;
run;
ERROR 22-322: Syntax error, expecting one of the following: a name, (.
ERROR 76-322: Syntax error, statement will be ignored.
但即便如此,SAS 又如何知道 2013 和 14?在英语中,我需要告诉 SAS 运行 关闭时的配对 T 测试,其中配对在每年的日期。
这有意义吗?我该怎么做?
为了进行配对 T 检验,我认为您需要让数据看起来像这样:
DayofYear Close2013 Close2014
365 222.41 222.26
364 222.23 220.97
363 225.71 222.6
362 227.82 219.29
361 222.26 222.41
360 220.97 222.23
359 222.6 225.71
358 219.29 227.82
357 218.26 222.26
一种方法是为 DayofYear
创建一个变量,然后使用 proc sql
将 table 的 2013 年部分自动加入 [=2014 年的部分 table 像这样:
proc sql;
select
coalesce(t1.dayofyear,t2.dayofyear) as dayofyear,
t1.close as close2013,
t2.close as close2014
from
(select * from tsla where year(date)=2013) t1
full outer join (select * from tsla where year(date)=2014) t2
on t1.dayofyear = t2.dayofyear
;
quit;
;
quit;
为了运行测试,我认为你不应该需要你的class
、var
或format
语句。只是 paired close2013*close2014;
语句。
我有一些数据是这样的:
Date Close
12/31/2014 222.41
12/30/2014 222.23
12/29/2014 225.71
12/26/2014 227.82
12/24/2014 222.26
12/23/2014 220.97
12/22/2014 222.6
12/19/2014 219.29
12/18/2014 218.26
日期范围涵盖 2 整年 2013 - 14。
我想在 Close 上进行配对 T 检验,但我的语法很吃力。大概我需要将日期转换为年份?或者我呢? 2013 年的每个日期都与 2014 年的另一个日期相匹配。
我可以更改 csv 中的数据并将其设置为:
Date | 2013_Close | 2014_Close
Jan 1| 101 | 204
Jan 2| 105 | 210
但是如果我想避免这种情况,有没有办法对数据进行配对 T 检验?
这是我尝试过但收到错误的方法:
proc ttest data=tsla sides=2 alpha=0.05 h0=0;
class Date;
format Date year.;
var Close;
paired 2014*2013;
run;
ERROR 22-322: Syntax error, expecting one of the following: a name, (.
ERROR 76-322: Syntax error, statement will be ignored.
但即便如此,SAS 又如何知道 2013 和 14?在英语中,我需要告诉 SAS 运行 关闭时的配对 T 测试,其中配对在每年的日期。
这有意义吗?我该怎么做?
为了进行配对 T 检验,我认为您需要让数据看起来像这样:
DayofYear Close2013 Close2014
365 222.41 222.26
364 222.23 220.97
363 225.71 222.6
362 227.82 219.29
361 222.26 222.41
360 220.97 222.23
359 222.6 225.71
358 219.29 227.82
357 218.26 222.26
一种方法是为 DayofYear
创建一个变量,然后使用 proc sql
将 table 的 2013 年部分自动加入 [=2014 年的部分 table 像这样:
proc sql;
select
coalesce(t1.dayofyear,t2.dayofyear) as dayofyear,
t1.close as close2013,
t2.close as close2014
from
(select * from tsla where year(date)=2013) t1
full outer join (select * from tsla where year(date)=2014) t2
on t1.dayofyear = t2.dayofyear
;
quit;
;
quit;
为了运行测试,我认为你不应该需要你的class
、var
或format
语句。只是 paired close2013*close2014;
语句。