Обработка линейной
корреляции в 1С:Предприятие 8.0
1.Существует ли линейная(y = a + bx)
связь между величинами y и x .
2.Имеются данные
x1,x2,x3...xN
y1,y2,y3...xN
3.Математическая формулировка данных
корреляционная зависимость достаточна
велика
и
можно говорить о закономерной связи явлений
Если
то связь
положительна ,
если при росте одной из величин возрастает другая величина и наоборот
Если
то связь
отрицательна при росте одной из величин другая уменьшается.
m-коэффициент корреляции
служит для оценки надежности полученных
значений
n-количество опытов
Если
то r надежно
4.Алгоритм обработки
Процедура Кнопка1Нажатие(Элемент)
Сообщить("Вычесления линеной корреляции");
Запрос = Новый Запрос;
Запрос.Текст = "
|SELECT
| SUM(Y*X)-SUM(X)* SUM(Y) /COUNT(X) AS COV ,
| (SUM(X*X)-SUM(X)*SUM(X)/COUNT(X))*(SUM(Y*Y)-SUM(Y)*SUM(Y)/COUNT(Y)) AS Coren,
| COUNT(X) AS N
|FROM Справочник.Summa " ;
в = Запрос.Выполнить().Выбрать();
Пока в.Следующий()=1 Цикл
r= (в.COV/Sqrt(в.Coren)) ;
N = в.N;
Сообщить(r);
КонецЦикла;
If r>=0.5 or r <= -0.5 Then
Сообщить("Зависимость велика и можно говорить о закомерной связи явлений " ) ;
Сообщить("При условии что это не противоречит сущности явлений")
EndIf;
// Оценка Надежности полученных значений r
m = (1-r*r)/ Sqrt(N) ;
// Сообщить(m);
//Считется,что значение r вполне надежно ,если
If r/m >=3 Then
Сообщить("r-надежно");
EndIf;
КонецПроцедур
|