%Регрессионный анализ в МатЛаб, Динамические ряды данных
% Относительные ошибки прогноза
clc; clear; %cla reset;
t=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18];% Вариант 6
Yt=[3 7 10 11 15 17 21 25 23 30 28 33 37 40 42 44 49 47];
%Параметры регрессии
m=1; n=size(t); format bank;
disp('Вариант 6, коэффициент корреляции')
Koeff_Regr=corrcoef(t, Yt)
Whichstats={'tstat', 'fstat', 'dwstat'}
stat=regstats(Yt', t', 'linear', Whichstats);
disp('Дисперсионный анализ')
fstat=stat.fstat % Расчетная ф-статистика
F_tabl=finv(0.95, m, n(2)-m-1) %Табличное значение
t_stat=stat.tstat;
t_tabl=tinv(0.95, n(2)-m-1) %Табличное значение стьюдента
CoeffTable=dataset({t_stat.beta, 'Coef'}, {t_stat.se, 'StdEr'}, {t_stat.t, 't_stat'})
kritDW=0;
dwstat=stat.dwstat;
if abs(t_stat.t)>t_tabl
    disp('Модель адекватна. Критерий Стьюдента выполняется')
    kritDW=1;
else 
    disp('Модель не адекватна. Критерий Стьюдента не выполняется')
    kritDW=0;
end
kritF=0;
if abs(fstat.f)>F_tabl
    disp('Модель адекватна. Критерий Фишера выполняется')
    kritF=1;
else 
    disp('Модель не адекватна. Критерий Фишера не выполняется')
    kritF=0;
end
if (kritDW==1)&(kritF==1)
    menu('Критерий Стьюдента и Фишеро выполняется. Модель адекватна', 'Да')
end
Yrasch=2.6852*t+1.2680
A=(100/n(2))*sum((abs(Yt-Yrasch)./Yt))

% Относительная ошиька прогноза
C=0;
H=0;
for i=1:1:n(2)
OtnosOshibkaPrognoza(i)=((abs(Yt(i)-Yrasch(i)))/Yrasch(i))*100
    if OtnosOshibkaPrognoza(i)>5
       H=H+1;
    else C=C+1;
    end
end
H=H
C=C

K=C/(C+H)
fprintf( '\n %s %s %s','Yt(i)' ,'Yrasch(i)', 'OtnosOshibkaPrognoza(i)')
for i=1:1:n(2)
fprintf('\n %6.2f %6.2f %6.2f',Yt(i), Yrasch(i), OtnosOshibkaPrognoza(i))
end


