Расширение "Статистическая связь двух переменных"
Расширение предназначено для формирования базовых данных, необходимых для простейшего исследования статистической связи двух переменных. Оно позволяет:
рассчитать коэффициент корреляции двух переменных;
построить уравнение линейной регрессии;
табулировать значения уравнения линейной регрессии для фактических значений аргумента;
получить данные по отклонениям линейной регрессии от фактических значений;
получить графическое представление точек фактических данных и уравнения линейной регрессии;
строить тестовые массивы данных, равномерно разбросанных вокруг аналитически заданного тренда;
строить уравнения степенной и экспоненциальной регрессии.
Расширение требует установки файла s2.php (не входит в базовую комплектацию).
Функция s2()
Функция s2(x,y[,p]) возвращает массив, содержащий элементы:
kk - коэффициент корреляции переменных;
a - свободный член уравнения линейной регрессии y на x;
b - коэффициент при независимой переменной уравнения линейной регрессии y на x;
r2 - значение коэффициента R-квадрат;
ulr - текстовое представление уравнения регрессии.
gxy - имя файла, содержащего изображение, представляющее фактические данные и значения, рассчитанные в соответствии с уравнением регрессии.
Если параметр p=0 (значение по умолчанию), то элемент gxy в массив не включается. Если p>1, то функция не только возвращает массив указанных выше значений, но и выводит график из данного файла на страницу. Вывод графика возможен только в том случае, если в системе установлен файл grafik.php (не входит в базовую комплектацию).
Параметры x и y могут быть строками, содержащими разделённые пробелами фактические значения в формате [ключ:]значение или уже готовыми одномерными массивами.
Разметка
~x=massiv("1 2 3 4 5 6 7")~y=massiv("2.4 3.7 6.2 7.7 10.5 12.2 13.7")
~u=s2(x,y)
@vms(u)
Вывод
Array ( [kk] => 0.99673419461949 [a] => 0.17142857142857 [b] => 1.9714285714286 [r2] => 0.99347905472377 [ulr] => Y=0.17142857142857+1.9714285714286*X )
То же самое, но с выводом графика:
Разметка
~u=s2(x,y,2)@vms(u)
Вывод
![](vf/66a4b609a9f45.jpeg)
Array ( [kk] => 0.99673419461949 [a] => 0.17142857142857 [b] => 1.9714285714286 [r2] => 0.99347905472377 [ulr] => Y=0.17142857142857+1.9714285714286*X [gxy] => vf/66a4b609a9f45.jpeg )
Полученные данные можно вывести и более изящно, используя возможности системы. Например:
Разметка
~u=s2(x,y,1)@nt(1)
@nst(1)
@td(u('ulr'),2)
@kst()
@st(1,'Свободный член',u('a'))
@st(1,'Наклон прямой',u('b'))
@st(1,'Коэффициент корреляции',u('kk'))
@st(1,'R-квадрат',u('r2'))
@kt()
@vis(u('gxy'))
Вывод
Y=0.17142857142857+1.9714285714286*X | |
Свободный член | 0,171 |
Наклон прямой | 1,97 |
Коэффициент корреляции | 0,997 |
R-квадрат | 0,993 |
![](vf/66a4b609ab63f.jpeg)
Функция s2td - формирование тестовых данных
Детальное описание в процессе разработки
s2td(formula,xmin,xmax,po,kz)
Функция s2ur - одновременное построение линейной, степенной и экспоненциальной регрессии
s2ur(vx,vy,p)
Линейный тест
sko |
formula |
|
lr | 20,0 |
1.8500076736285+0.307790769177*x |
er | 21,3 |
2.0225186733803*exp(0.093644165676032*x) |
sr | 22,9 |
2.1333830276279*pow(x,0.30388769425555) |
sko: Сумма квадратов отклонений расчётных данных от фактических
![](vf/66a4b609ad769.jpeg)
FZ | Фактические значения |
LR | Линейная регрессия |
ER | Экспоненциальная регрессия |
SR | Степенная регрессия |
Экспоненциальный тест
sko |
formula |
|
lr | 19,5 |
1.8968975304646+0.30447444947908*x |
er | 19,8 |
2.0753407648467*exp(0.091464211740954*x) |
sr | 22,2 |
2.1314272668889*pow(x,0.31048920557712) |
sko: Сумма квадратов отклонений расчётных данных от фактических
![](vf/66a4b609af6fb.jpeg)
FZ | Фактические значения |
LR | Линейная регрессия |
ER | Экспоненциальная регрессия |
SR | Степенная регрессия |
Степенной тест
sko |
formula |
|
lr | 15,8 |
2.1188020266149+0.10106411110931*x |
er | 16,4 |
2.0628774643508*exp(0.042027303814574*x) |
sr | 14,1 |
2.0436395281224*pow(x,0.16536863782697) |
sko: Сумма квадратов отклонений расчётных данных от фактических
![](vf/66a4b609b181b.jpeg)
FZ | Фактические значения |
LR | Линейная регрессия |
ER | Экспоненциальная регрессия |
SR | Степенная регрессия |
Оцените публикацию по предложенной шкале