ответвлено от main/it-labs
24 строки
2.8 KiB
Matlab
24 строки
2.8 KiB
Matlab
fp=fopen('prtcl_task.txt ','w');%открытие файла
|
|
XX=load('dan_vuz.txt');%считывание данных
|
|
size(XX);%размер матрицы
|
|
X=XX(:,14:15);%создание новой матрицы по заданным параметрам
|
|
[vect, lambda] = eig(X' * X);%расчет собственных векторов и собственных значений матрицы X'*X
|
|
Sobst = diag(lambda);%извлечение собственных значений из диагональной матрицы lambda в вектор
|
|
SobMax=Sobst(end);%выделение наибольшего собственного значения (последний элемент вектора)
|
|
GlComp=vect(:,end);%выделение соответствующего наибольшему собственному значению собственного вектора (главной компоненты)
|
|
Delt=100*SobMax/sum(Sobst);%расчет доли информации, содержащейся в главной компоненте
|
|
fprintf(fp,'Delta= %d \n ',round(Delt));%запись значения доли информации в файл
|
|
Res=X*GlComp;%расчет оценок результативности для каждого вуза
|
|
fprintf(fp, '%d %f\n', [XX(:,1)'; Res']);%запись в файл кодов вузов и соответствующих им оценок результативности
|
|
save res_task.mat Res -mat;%сохранение вектора оценок результативности в бинарный файл
|
|
CorFin=corr(Res,XX(:,2));%расчет коэффициента корреляции
|
|
fprintf(fp,'Correlation of Results and Money = %f \n', CorFin);% Запись значения корреляции в файл
|
|
X2 = XX(:, 3:13);%создание новой матрицы по заданным параметрам
|
|
[vect2, lambda2] = eig(X2' * X2);%расчет собственных векторов и собственных значений матрицы X2'*X2
|
|
Sobst2 = diag(lambda2);%извлечение собственных значений из диагональной матрицы lambda2 в вектор
|
|
GlComp2 = vect2(:, end);%выделение соответствующего наибольшему собственному значению собственного вектора (главной компоненты2)
|
|
Res2 = X2 * GlComp2;%расчет оценок результативности для каждого вуза
|
|
CorFin2 = corr(Res2, Res);%расчет коэффициента корреляции
|
|
fprintf(fp, 'Correlation of Results and Staff = %f\n', CorFin2);% Запись в файл корреляции между результативностью и кадровым обеспечением
|
|
fclose(fp);%закрытие файла
|