Приложения
Приложение 1. Формулы для определения коэффициентов регрессии при
учете локальных трендов в методе Пенга.
Задача состоит в отыскании коэффициентов линейной аппроксимации a + bt временного ряда xt на промежутке времени t є [tltt2].
*
Используя метод наименьших квадратов [8, 25, 31], получаем в случае единичного шага по оси времени следующие соотношения для коэффициентов:
t=h
где
W = ((2
t=t,
Приложение 2. Программа расчета функции Пенга на языке Object Pascal
{------------------------------------------------------------------------------------------------------ }
const
NmP_Single=l 000000;
type
XYarr=record
x:array [0.. 10000] of double; y:array [0.. 10000] of double; countdongint;
end;
P_XYarr=AXYarr;
TArray= array [O..NmP_Single] of single;
PJSingle = ЛТArray;
{------------------------------------------------------------------------------------------------------ }
procedure PrepareData(Data:P_Single; DataSeries:TLineSeries; nl,n2:longint); var i,k:longint; D_aver:double;
begin
D_aver:=0; for i:=nl to n2 do
D_aver:=D_avert-DataSeries.Yvalues.value[i]/(n2- nl+1);
DataA[0]:=0;
for i:=nl+l to n2 do
begin
k:=i-nl;
DataA[k]:=DataA[k-l]+DataSeries.Yvalues.value[i]-D_aver;
end;
end;
{------------------------------------------------------------------------------------------------------ }
procedure RegressionTrend(Data:P_Single;nl,n2:longint; var a, b :double); var
n,Imax:longint;
Yavr,Xavr, SumA,SumB,SumC: double; begin
Imax:=n2-nl+l;
Xavr:=0; Yavr:=0;
For n:=nl to n2 do
Y avr:=Y avr+DataA[n];
Xavr:=(n2+nl)/2; Yavr:=Yavr/Imax;
SumA:=0; SumB:=0; SumC:=0;
For n:=nl to n2 do
begin
SumA:=SumA+(n-Xavr)*(DataA[n]-Yavr);
SumB:=SumB+Sqr(n-Xavr);
SumC:=SumC+Yavr*Sqr(n) - Xavr*n*DataA[n]; end;
b:=SumA/SumB;
a:=SumC/SumB;
end;
{-------------------------------------------------------------------------------------------------- }
procedure TakeDFA(DataSeries:TLineSenes; Datanl ,Data_n2:longint;
Tmin, Tmax: longint; ScaleFactor:double;
TStep,SlideStep: longint;
DFASeries:TLineSeries);
Var
Data: PSingle; n,L,Lo,Fmax:longint; dl,dl2: double;
Lmax,Nparts,i,k,DataCount:longint;
nl,n2:longint;
F2:double;
a,b:double;
begin
{
і - number of SCALING STEP; к-number of PART; n - number of POINT within the part }
DataCount:=Data_n2 - Data_nl + 1;
GetMem(Data,(DataCount)*SizeOf(single) );
PrepareData(Data,DataSeries, Data_nl, Data_n2); i:=0;
L:=Tmin;
~ while L
Еще по теме Приложения:
- Приложения Приложение 1 Нормативно-правовые акты, регламентирующие инвестиционную деятельность на территории Калининградской области
- Приложения Приложение 1 Налоговые последствия управления задолженностью
- Приложения Приложение 1 Теоретические основы
- Приложения Приложение 1 Гражданский кодекс Российской Федерации (часть вторая) Глава 34. Аренда § 6. Финансовая аренда (лизинг)
- Приложения
- Приложения
- Приложения
- Приложения
- Приложения
- Приложения
- Приложения
- Содержание и техника составления приложения к бухгалтерскому балансу
- Приложения
- Приложение
- Приложения
- Приложения
- Приложения
- Приложения