Trend(KnownYs: Array; KnownXs: Array; NewXs: Array; HasConstant: Boolean): Array;
KnownYs. Множество значений Y, которые уже известны в соотношении y=mx+b. Значения в массиве данных должны быть больше нуля. Если массив KnownYs имеет один столбец, то каждый столбец массива KnownXs интерпретируется как отдельная переменная. Если массив KnownYs имеет одну строку, то каждая строка массива KnownXs интерпретируется как отдельная переменная. Массив KnownXs может содержать одно или несколько множеств переменных. Если используется только одна переменная, то KnownYs и KnownXs могут иметь любую форму, при условии, что они имеют одинаковую размерность. Если используется более одной переменной, то KnownYs должен быть вектором (то есть интервалом высотой в одну строку или шириной в один столбец);.
KnownXs. Множество значений X, которые уже известны для соотношения y=mx+b;
NewXs. Новые значения X, для которых Trend возвращает соответствующие значения Y. NewXs должен содержать столбец (или строку) для каждой независимой переменной, как и KnownXs. Таким образом, если KnownYs. это один столбец, то KnownXs и NewXs должны иметь такое же количество столбцов. Если KnownYs - это одна строка, то KnownXs и NewXs должны иметь такое же количество строк;
HasConstant. Логическое значение, которое указывает, требуется ли, чтобы константа b была равна нулю:
True. b вычисляется обычным образом;
False. b полагается равным нулю, а значения m подбираются так, чтобы y=mx.
Метод Trend возвращает значения в соответствии с линейным трендом. Аппроксимирует прямой линией (по методу наименьших квадратов) массивы KnownYs и KnownXs. Возвращает значения Y, в соответствии с этой прямой для заданного массива NewXs.
Sub Main;
Var
st: Statistics;
d0: Double;
x, y, nx: Array Of Double;
res: Array Of Double;
i: Integer;
Begin
y := New Double[12];
x := New Double[12];
nx := New Double[4];
x[00] := 1; y[00] := 33100;
x[01] := 2; y[01] := 47300;
x[02] := 3; y[02] := 69000;
x[03] := 4; y[03] := 102000;
x[04] := 5; y[04] := 150000;
x[05] := 6; y[05] := 220000;
x[06] := 7; y[06] := 220100;
x[07] := 8; y[07] := 247300;
x[08] := 9; y[08] := 269000;
x[09] := 10; y[09] := 270020;
x[10] := 11; y[10] := 275210;
x[11] := 12; y[11] := 276030;
nx[0] := 13;
nx[1] := 14;
nx[2] := 15;
nx[3] := 16;
st := New Statistics.Create;
res := st.Trend(y,x,x,True);
Debug.WriteLine("Рассчитанные значения, соответствующие имеющимся значениям Y");
For i := 0 To res.Length - 1 Do
d0 := res[i];
Debug.WriteLine(d0.ToString);
End For;
res := st.Trend(y,x,nx,True);
Debug.WriteLine("Предсказываемые значения Y для новых значений X (nx)" );
For i := 0 To 3 Do
d0 := res[i];
Debug.WriteLine(d0.ToString);
End For;
End Sub Main;
После выполнения примера в окно консоли будут выведены результаты расчетов:
Module execution started
Рассчитанные значения, соответствующие имеющимся значениям Y
42019.871794871789
67395.955710955706
92772.03962703963
118148.12354312354
143524.20745920745
168900.29137529139
194276.3752913753
219652.45920745921
245028.54312354312
270404.62703962706
295780.71095571097
321156.79487179487
Предсказываемые значения Y для новых значений X (nx)
346532.87878787878
371908.96270396269
397285.0466200466
422661.13053613051
Module execution finished
См. также: