Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 расчет коэффициента корреляции  [new]
Bucher
Member

Откуда:
Сообщений: 211
Подскажите, пожалуйста, есть в MS SQL функция расчета коэффициента корреляции (аналог функции CORR в Oracle)?
Если нет, то может быть у кого-нибудь есть собственные разработки этой функции?
12 авг 15, 11:20    [18006974]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Bucher,

Существует множество способов подсчета коэффициента корреляции

http://forexaw.com/TERMs/Economic_terms_and_concepts/Exchange_Terminology/l1549_Коэффициент_корреляции_Correlation_coefficient_это

http://www.megafx.ru/kojefficient-korreljacii/
https://ru.wikipedia.org/wiki/Корреляция

Вы напишите формулу (математику), которая вам нужна, тогда можно будет что-то предложить
12 авг 15, 11:42    [18007082]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
Bucher
Member

Откуда:
Сообщений: 211
a_voronin
Bucher,

Существует множество способов подсчета коэффициента корреляции

http://forexaw.com/TERMs/Economic_terms_and_concepts/Exchange_Terminology/l1549_Коэффициент_корреляции_Correlation_coefficient_это

http://www.megafx.ru/kojefficient-korreljacii/
https://ru.wikipedia.org/wiki/Корреляция

Вы напишите формулу (математику), которая вам нужна, тогда можно будет что-то предложить


Интересует реализация классического расчета линейного коэффициента корреляции (Пирсона), как отношение ковариации к произведению среднеквадратических отклонений 2-х случайных величин.Картинка с другого сайта.
12 авг 15, 11:54    [18007169]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Может, так?
DECLARE @T TABLE(X INT, Y INT);
INSERT @T(X,Y) VALUES
 (3,8)
,(-15,4)
,(-1,-34)
,(0,10)
,(0,0);

SELECT SUM((T.X-A.AVG_X)*(T.Y-A.AVG_Y))/(A.STDEVP_X*A.STDEVP_Y*A.C)
FROM @T T
CROSS APPLY (SELECT AVG(X),AVG(Y),STDEVP(X),STDEVP(Y),COUNT(*) FROM @T)A(AVG_X,AVG_Y,STDEVP_X,STDEVP_Y,C)
GROUP BY A.STDEVP_X,A.STDEVP_Y,A.C;
12 авг 15, 12:27    [18007367]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
STDEV и STDEVP в BOL не нашел формул
12 авг 15, 12:28    [18007374]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
iap
STDEV и STDEVP в BOL не нашел формул

можно и прямо в лоб без функций по формуле
DECLARE @T TABLE(X FLOAT, Y FLOAT);
INSERT @T(X,Y) VALUES
 (3,8)
,(-15,4)
,(-1,-34)
,(0,10)
,(0,0);

SELECT SUM((T.X-A.AVG_X)*(T.Y-A.AVG_Y))/(A.STDEVP_X*A.STDEVP_Y*A.C)
FROM @T T
CROSS APPLY (SELECT AVG(X),AVG(Y),STDEVP(X),STDEVP(Y),COUNT(*) FROM @T)A(AVG_X,AVG_Y,STDEVP_X,STDEVP_Y,C)
GROUP BY A.STDEVP_X,A.STDEVP_Y,A.C;

select SUM((Y-Y_)*(X-X_))/SQRT(sum(POWER((X-X_),2))*sum(POWER((Y-Y_),2)))
from @T d
cross apply(select AVG(X) as X_,AVG(Y) as Y_ from @T) t
12 авг 15, 13:03    [18007587]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
LexusR,

тогда уж не POWER(), а SQUARE()
12 авг 15, 13:06    [18007604]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
iap
LexusR,

тогда уж не POWER(), а SQUARE()


Так там а топикстартера в формуле и корень квадратный есть и квадрат
так что и то и другое нужно

SQRT(sum(POWER((X-X_),2))*sum(POWER((Y-Y_),2)))
12 авг 15, 13:13    [18007659]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
LexusR
iap
LexusR,

тогда уж не POWER(), а SQUARE()


Так там а топикстартера в формуле и корень квадратный есть и квадрат
так что и то и другое нужно

SQRT(sum(POWER((X-X_),2))*sum(POWER((Y-Y_),2)))



у меня 12 сервер и SQUARE()
12 авг 15, 13:15    [18007680]     Ответить | Цитировать Сообщить модератору
 Re: расчет коэффициента корреляции  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
iap
LexusR,

тогда уж не POWER(), а SQUARE()


Ты прав - чото ступил. )
12 авг 15, 13:17    [18007706]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить