%Регресионный анализ, динамические ряды данных
clc;
cla reset;
clear;
t=[1 2 3 4 5 6 7 8 9 10	11 12 13 14 15 16 17 18];%вариант 1
Yt=[12 17 20 21 25 27 24 28 31 33 35 40 41 45 47 45 51 53];
%параметры регрессии
m=1;
n=size(t);
format bank;
disp('Вариант #1 коэф корреляции')
Koeff_regr=corrcoef(t, Yt)
Whichstats={'tstat','fstat','dwstat'};

stats=regstats(Yt',t','linear',Whichstats);
disp('Дисперсионный анализ');
fstat=stats.fstat %расчетная эф статистика
F_tabl=finv(0.95,m,n(2)-m-1) %табличное значение f
tstat=stats.tstat;%расчетная эф статистика
T_tabl=tinv(0.95,n(2)-m-1) %табличное значение tстьюдента
CoeffTable=dataset({tstat.beta,'Coef'},{tstat.se,'StdEr'},{tstat.t,'tStat'})
kritDW=0;
kritF=0;
dwstat=stats.dwstat;
%Стьюдента
if abs(tstat.t)>T_tabl  
    disp('Модель адекватна, критерий стьюдента выполняется');
    kritDW=1;
else
    disp('Модель не адекватна, критерий стьюдента не выполняется');
    kritDW=0;
end
%Фишера
if abs(fstat.f)>F_tabl  
    disp('Модель адекватна, критерий фишера выполняется');
    kritF=1;
else
    disp('Модель не адекватна, критерий фишера не выполняется');
    kritF=0;
end
%Проверка выполнения
if (kritDW==1)&(kritF==1) 
    menu('Критерий Стьюдента и фишера выполняется Модель адекватна','Да')
end
%Ошибка апроксимации
%Yrasch=3.5036*t+9.549;
Yrash=CoeffTable.Coef(2)*t+CoeffTable.Coef(1);
A=(100/n(2))*sum((abs(Yt-Yrash)./Yt))
if A>=8 
    disp('Ошибка апроксимации в пределах нормы');
else
    disp('Ошибка апроксимации вне пределов нормы');
end    
plot(Yt, t)
hold on;  grid on;
plot(Yrash, t)
hold on; grid on;
PovTochki=0;
for i=2:1:(n(2)-1)
    
    if (Yt(i-1)-Yrash(i-1))>(Yt(i)-Yrash(i))&(Yt(i+1)-Yrash(i+1))>(Yt(i)-Yrash(i))
       PovTochki=PovTochki+1;
    end
    if (Yt(i-1)-Yrash(i-1))<(Yt(i)-Yrash(i))&(Yt(i+1)-Yrash(i+1))<(Yt(i)-Yrash(i))
        PovTochki=PovTochki+1;
    end
end

