IStatistics.Trend

Синтаксис

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 была равна нулю:

Описание

Метод 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

См. также:

IStatistics