Расширение "Статистическая связь двух переменных"

Расширение предназначено для формирования базовых данных, необходимых для простейшего исследования статистической связи двух переменных. Оно позволяет:
рассчитать коэффициент корреляции двух переменных;
построить уравнение линейной регрессии;
табулировать значения уравнения линейной регрессии для фактических значений аргумента;
получить данные по отклонениям линейной регрессии от фактических значений;
получить графическое представление точек фактических данных и уравнения линейной регрессии;
строить тестовые массивы данных, равномерно разбросанных вокруг аналитически заданного тренда;
строить уравнения степенной и экспоненциальной регрессии.
Расширение требует наличия файлов x_s1.api, x_s1.php, x_s1.txt, x_s2.api, x_s2.php, x_s2.txt, (не входят в базовую комплектацию).

Функция s2()

Функция s2(x,y[,p]) возвращает массив, содержащий элементы:
kk - коэффициент корреляции переменных;
a - свободный член уравнения линейной регрессии y на x;
b - коэффициент при независимой переменной уравнения линейной регрессии y на x;
r2 - значение коэффициента R-квадрат;
ulr - текстовое представление уравнения регрессии.
gxy - имя файла, содержащего изображение, представляющее фактические данные и значения, рассчитанные в соответствии с уравнением регрессии.
Если параметр p=0 (значение по умолчанию), то элемент gxy в массив не включается. Если p>1, то функция не только возвращает массив указанных выше значений, но и выводит график из данного файла на страницу. Вывод графика возможен только в том случае, если в системе установлено расширение Графики (не входит в базовую комплектацию).
Параметры 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)
Вывод
Array
(
    [kk] => 0,99673419461949
    [a] => 0,17142857142857
    [b] => 1,9714285714286
    [r2] => 0,99347905472377
    [ulr] => Y=0,17142857142857+1,9714285714286*X
    [gxy] => vf/6a259d829522b.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

Функция s2td - формирование тестовых данных

Детальное описание в процессе разработки
s2td(formula,xmin,xmax,po,kz)

Функция s2ur - одновременное построение линейной, степенной и экспоненциальной регрессии

Детальное описание в процессе разработки
s2ur(vx,vy,p)

Линейный тест

Разметка
~t=s2td('2+0.3*x',0,10,30,50)
~l=s2ur(t('x'),t('y'))
Вывод
sko
formula
lr
21,9
2,0677389969303+0,29846097614095*x
er
24,2
2,1593764250275*exp(0,090918596154219*x)
sr
23,1
2,2961738437303*pow(x,0,28459851977625)
sko: Сумма квадратов отклонений расчётных данных от фактических

FZ Фактические значения
LR Линейная регрессия
ER Экспоненциальная регрессия
SR Степенная регрессия

Экспоненциальный тест

Разметка
~t=s2td('2*exp(x*0.1)',0,10,30,50)
~e=s2ur(t('x'),t('y'))
Вывод
sko
formula
lr
20,7
1,7757948604182+0,31324569642439*x
er
19,9
1,9878670267824*exp(0,093212400119267*x)
sr
33,1
2,3437539210732*pow(x,0,2236256828378)
sko: Сумма квадратов отклонений расчётных данных от фактических

FZ Фактические значения
LR Линейная регрессия
ER Экспоненциальная регрессия
SR Степенная регрессия

Степенной тест

Разметка
~t=s2td('2*pow(x,0.2)',0,10,30,50)
~s=s2ur(t('x'),t('y'))
Вывод
sko
formula
lr
12,8
1,848821708721+0,14245031808392*x
er
14,0
1,8060002561525*exp(0,062947084515231*x)
sr
10,5
1,8626007985306*pow(x,0,21853752216706)
sko: Сумма квадратов отклонений расчётных данных от фактических

FZ Фактические значения
LR Линейная регрессия
ER Экспоненциальная регрессия
SR Степенная регрессия


Навигатор Статистика Код