clear workspace;
load('Xs.mat');
load('Ys.mat');
X=Xs.var5;
Y=Ys.var5;
clear Xs Ys
MA=mean(X); % Среднее значение
Sigma=std(X); % Среднеквадратичное отклонение
TSigma=3*Sigma+MA; % Стандартное распределение по правилу 3х сигм
[xrow, ~]=find(X>=TSigma); % Нахождение всех строк с выбросами
X(unique(xrow),:)=[]; % Удаление из исходной выборки строк с выбросами
Y(unique(xrow),:)=[]; % Удаление флагов данных с выбросами
SR = sortrows([X Y], 17);
DF0=find(Y==0);
DF1=find(Y==1);
F0=SR(1:length(DF0),end);
A=SR(1:length(DF0),1:16);
F1=SR((length(DF0)+1):(length(DF0)+length(DF1)),end);
B=SR((length(DF0)+1):(length(DF0)+length(DF1)),1:16);
R=length(DF1)-length(DF0);
Alpha = [A F0];
Betta = [B F1];
if (R~=0)
if (R>0)
Betta((length(F0)+1):end,:)=[ ];
end
if (R<0)
Alpha((length(F1)+1):end,:)=[ ];
end
end
SortXY = [Alpha;Betta];
clear F0 F1 i TSigma diff xrow DF0 DF1 A B Alpha Betta R % Убираем лишние переменные
X=SortXY(1:length(SortXY),1:16);
Y=SortXY(1:length(SortXY),end);
X = zscore(X); % Нормализация выборки
XY = [X Y];
clear SR Sigma MA
[~,score,latent] = pca(X); % Метод главных компонент
PC1=score(:,latent==max(latent));
latent(latent==max(latent))=0;
PC2=score(:,latent==max(latent));
latent(latent==max(latent))=0;
PC3=score(:,latent==max(latent));
latent(latent==max(latent))=0;
figure();
gscatter(PC1,PC2,Y, 'rb')
grid on;
hold on;
[b,~,r] = regress(PC2,PC1, 0.05); % Строим линейную регрессию
M1=min(PC1);
M2=max(PC1);
XX=M1:0.001:M2;
YY=XX*b;
plot(XX,YY,'k');
title('Главные компоненты №1')
xlabel('Первая ГК');
ylabel('Вторая КГ');
legend({'Класс 0','Класс 1', 'Линейная регрессия'});
figure();
gscatter(XY(:,10),XY(:,5),Y,'rb')
grid on;
hold on;
[b1,~,r1] = regress(XY(:,10),XY(:,5),0.05);
fplot(@(x) x*b1,[-3.2 3.4],'k');
title('Главные компоненты №2')
xlabel('5-ый призн');
ylabel('10-ый признак');
legend({'Класс 0','Класс 1', 'Линейная регрессия'});
clear XX XX1 YY YY1
F0=find(Y==0); % гистограммы по 2 признакам
LY=length(Y);
for i=1:16
figure ();
histogram(SortXY(1:length(F0),i:i));
hold on;
histogram(SortXY((length(F0)+1):LY,i:i));
legend('класс 0','класс 1');
end
clear SortXY F0 LY i
figure(); % Скаттерограмма
scatter3(PC1, PC2, PC3, 'filled');
grid on;
hold on;
PC1fit = min(PC1):1:max(PC1);
PC2fit = min(PC2):1:max(PC2);
[PC1FIT,PC2FIT] = meshgrid(PC1fit,PC2fit);
PC3FIT = b + b*PC1FIT + b*PC2FIT + b*PC1FIT.*PC2FIT;
mesh(PC1FIT,PC2FIT,PC3FIT)
xlabel('Главная К1');
ylabel('Главаная К2');
zlabel('Главная К3');
title('Cкаттерограмма');
clear PC1fit PC1FIT PC2fit PC2FIT PC3FIT
figure (); % Графический анализ остатков r
histogram(r);
title('Графич. анализ остатков ГК1');
grid on;
figure (); % Графический анализ остатков r1
histogram(r1);
title('Графич. анализ остатков 5-ого призн.');
grid on;
figure (); % Формальные остатки PC1
scatter(PC1, r)
title('Формальные остатки ГК1');
grid on;
figure (); % Формальные остатки 5-ого призн.
scatter(XY(:,5), r1,'r')
title('Формальные остатки 5-ого призн.');
grid on;
n=length(PC1); % Тест Спирмана
XR1=[PC1 r];
XR=sortrows(XR1);
[~,IR]=sort(XR(:,1),1);
[~,IX]=sort(XR(:,2),1);
Rangs=1-(6*sum((IX-IR).^2)/(n^3-n));
t1=Rangs*((n-2)^(1/2))/((1-Rangs^2)^(1/2)); %Коэф. Стьюдента
[RHO,~] = corr(PC1,r,'type','Spearman');
t=1.96;
Otnoshenie=abs(t1/t); %если больше 1, то гетероскедастичны , если меньше 1 , то гомоскедастичны
[RHO1,~] = corr(XY(:,5),r1,'type','Spearman');
t=1.96;
Otnoshenie1=abs(RHO1/t);
clear M1 M2 M11 M22 n XR XR1 IR IX
load('Xs.mat');
load('Ys.mat');
X=Xs.var5;
Y=Ys.var5;
clear Xs Ys
MA=mean(X); % Среднее значение
Sigma=std(X); % Среднеквадратичное отклонение
TSigma=3*Sigma+MA; % Стандартное распределение по правилу 3х сигм
[xrow, ~]=find(X>=TSigma); % Нахождение всех строк с выбросами
X(unique(xrow),:)=[]; % Удаление из исходной выборки строк с выбросами
Y(unique(xrow),:)=[]; % Удаление флагов данных с выбросами
SR = sortrows([X Y], 17);
DF0=find(Y==0);
DF1=find(Y==1);
F0=SR(1:length(DF0),end);
A=SR(1:length(DF0),1:16);
F1=SR((length(DF0)+1):(length(DF0)+length(DF1)),end);
B=SR((length(DF0)+1):(length(DF0)+length(DF1)),1:16);
R=length(DF1)-length(DF0);
Alpha = [A F0];
Betta = [B F1];
if (R~=0)
if (R>0)
Betta((length(F0)+1):end,:)=[ ];
end
if (R<0)
Alpha((length(F1)+1):end,:)=[ ];
end
end
SortXY = [Alpha;Betta];
clear F0 F1 i TSigma diff xrow DF0 DF1 A B Alpha Betta R % Убираем лишние переменные
X=SortXY(1:length(SortXY),1:16);
Y=SortXY(1:length(SortXY),end);
X = zscore(X); % Нормализация выборки
XY = [X Y];
clear SR Sigma MA
[~,score,latent] = pca(X); % Метод главных компонент
PC1=score(:,latent==max(latent));
latent(latent==max(latent))=0;
PC2=score(:,latent==max(latent));
latent(latent==max(latent))=0;
PC3=score(:,latent==max(latent));
latent(latent==max(latent))=0;
figure();
gscatter(PC1,PC2,Y, 'rb')
grid on;
hold on;
[b,~,r] = regress(PC2,PC1, 0.05); % Строим линейную регрессию
M1=min(PC1);
M2=max(PC1);
XX=M1:0.001:M2;
YY=XX*b;
plot(XX,YY,'k');
title('Главные компоненты №1')
xlabel('Первая ГК');
ylabel('Вторая КГ');
legend({'Класс 0','Класс 1', 'Линейная регрессия'});
figure();
gscatter(XY(:,10),XY(:,5),Y,'rb')
grid on;
hold on;
[b1,~,r1] = regress(XY(:,10),XY(:,5),0.05);
fplot(@(x) x*b1,[-3.2 3.4],'k');
title('Главные компоненты №2')
xlabel('5-ый призн');
ylabel('10-ый признак');
legend({'Класс 0','Класс 1', 'Линейная регрессия'});
clear XX XX1 YY YY1
F0=find(Y==0); % гистограммы по 2 признакам
LY=length(Y);
for i=1:16
figure ();
histogram(SortXY(1:length(F0),i:i));
hold on;
histogram(SortXY((length(F0)+1):LY,i:i));
legend('класс 0','класс 1');
end
clear SortXY F0 LY i
figure(); % Скаттерограмма
scatter3(PC1, PC2, PC3, 'filled');
grid on;
hold on;
PC1fit = min(PC1):1:max(PC1);
PC2fit = min(PC2):1:max(PC2);
[PC1FIT,PC2FIT] = meshgrid(PC1fit,PC2fit);
PC3FIT = b + b*PC1FIT + b*PC2FIT + b*PC1FIT.*PC2FIT;
mesh(PC1FIT,PC2FIT,PC3FIT)
xlabel('Главная К1');
ylabel('Главаная К2');
zlabel('Главная К3');
title('Cкаттерограмма');
clear PC1fit PC1FIT PC2fit PC2FIT PC3FIT
figure (); % Графический анализ остатков r
histogram(r);
title('Графич. анализ остатков ГК1');
grid on;
figure (); % Графический анализ остатков r1
histogram(r1);
title('Графич. анализ остатков 5-ого призн.');
grid on;
figure (); % Формальные остатки PC1
scatter(PC1, r)
title('Формальные остатки ГК1');
grid on;
figure (); % Формальные остатки 5-ого призн.
scatter(XY(:,5), r1,'r')
title('Формальные остатки 5-ого призн.');
grid on;
n=length(PC1); % Тест Спирмана
XR1=[PC1 r];
XR=sortrows(XR1);
[~,IR]=sort(XR(:,1),1);
[~,IX]=sort(XR(:,2),1);
Rangs=1-(6*sum((IX-IR).^2)/(n^3-n));
t1=Rangs*((n-2)^(1/2))/((1-Rangs^2)^(1/2)); %Коэф. Стьюдента
[RHO,~] = corr(PC1,r,'type','Spearman');
t=1.96;
Otnoshenie=abs(t1/t); %если больше 1, то гетероскедастичны , если меньше 1 , то гомоскедастичны
[RHO1,~] = corr(XY(:,5),r1,'type','Spearman');
t=1.96;
Otnoshenie1=abs(RHO1/t);
clear M1 M2 M11 M22 n XR XR1 IR IX