Скачиваний:
0
Добавлен:
13.06.2019
Размер:
4.28 Кб
Скачать
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


Соседние файлы в папке Курсовая 4 сем (Болотов М.А.)