2015-02-05 2 views
1

У меня есть некоторые данные, которые выглядят следующим образом:Тест парного Т С классом

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 

диапазон дат охватывают два полных год 2013 - 14.

Я хотел бы сделать парный T Test on Close, но я борюсь с моим синтаксисом. Предположительно мне нужно преобразовать даты в годы? Или я? Каждая дата в 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 Close, где спаривание датируется в течение каждого года.

Это имеет смысл? Как мне это сделать?

ответ

1

Для того, чтобы сделать парный Т-тест, я думаю, что вам нужно, чтобы получить данные, чтобы выглядеть следующим образом:

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 к себе присоединиться к 2013 части таблицы 2014 части таблицы, как это:

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;.

+0

Я не уверен, что означает ваш комментарий. Вы говорите, что это не сработает? если нет, то почему? – DWal

Смежные вопросы