2014-03-24 5 views
1

У меня есть 8 столбцов в моем наборе данных, и я хотел бы запустить заявление данных в SAS, такие как:вычисление дисперсии и со Дисперсией в заявлении данных

(это какой-то псевдокод)

data mynewset; 
set myoldset; 
variance1 = Variance(column1,column2,column3,column4); 
variance2 = Variance(column5,column6,column7,column8); 
covariance = Covariance(<column1,column2,column3,column4>,<column5,column6,column7,column8>); 
run; 

Как настроить эту функцию Var и Covar в SAS? (btw Меня не интересует прок)

FYI - математические формулы: here.

+0

Вам нужна дисперсия всего столбца или просто дисперсия этих 4 значений, присутствующих в одной строке данных? Если вы хотите первый, вам нужно будет объяснить намного подробнее, почему вы не хотите использовать PROC, поскольку это простой способ сделать это, и в целом правильный путь. – Joe

+0

Я хочу, чтобы разница в 4 значениях в строке. Я не хочу использовать proc, потому что это большой оператор, и я вычисляю дисперсию и ковариацию из нескольких комбинаций из 4 столбцов ... но, возможно, я смогу адаптироваться. Как бы вы могли написать заявление proc? Благодаря! – Stephane

+0

So. дисперсия (5,6,8,14); как будто вы набрали его в excel? – Joe

ответ

1

Для дисперсии по ряду строк (т. Е. Дисперсии нескольких значений в строке) существует функция, VAR, которая рассчитает это для вас.

var_x = var(of x1-x4); 

, например, вычислил бы разность x1, x2, x3, x4.

Не существует аналогичной функции ковариации; Вы должны были бы вычислить, что непосредственно из формулы, т.е.

cov(x,y) = sum((X-xmean)*(Y-ymean)/N 

Вы можете сделать это, используя массив и do петли.