## Rattle: A free graphical interface for data mining with R.
## Version 3.4.1 Copyright (c) 2006-2014 Togaware Pty Ltd.
## Type 'rattle()' to shake, rattle, and roll your data.
## Loading required package: ggplot2
#Считаем записанную таблицу и выберем столбцы со значениями SR-матрицы
raven_sr = read.csv(file="E://RDir/exp/resSR.csv")[,-(1:13)]
#Проводим анализ главных компонент
raven_PCA = princomp(raven_sr)
summary(raven_PCA)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4
## Standard deviation 0.0437179 0.03594045 0.03299787 0.03096558
## Proportion of Variance 0.1247180 0.08429027 0.07105295 0.06257038
## Cumulative Proportion 0.1247180 0.20900824 0.28006120 0.34263158
## Comp.5 Comp.6 Comp.7 Comp.8
## Standard deviation 0.02715458 0.02657244 0.02520520 0.02364566
## Proportion of Variance 0.04811679 0.04607586 0.04145631 0.03648492
## Cumulative Proportion 0.39074837 0.43682422 0.47828054 0.51476546
## Comp.9 Comp.10 Comp.11 Comp.12
## Standard deviation 0.02311168 0.02240072 0.02112174 0.02078720
## Proportion of Variance 0.03485568 0.03274418 0.02911185 0.02819696
## Cumulative Proportion 0.54962114 0.58236532 0.61147717 0.63967414
## Comp.13 Comp.14 Comp.15 Comp.16
## Standard deviation 0.01961338 0.01885879 0.01819860 0.01797349
## Proportion of Variance 0.02510241 0.02320801 0.02161156 0.02108022
## Cumulative Proportion 0.66477654 0.68798455 0.70959612 0.73067634
## Comp.17 Comp.18 Comp.19 Comp.20
## Standard deviation 0.01700800 0.01653077 0.01541902 0.01500106
## Proportion of Variance 0.01887631 0.01783185 0.01551401 0.01468433
## Cumulative Proportion 0.74955264 0.76738450 0.78289851 0.79758284
## Comp.21 Comp.22 Comp.23 Comp.24
## Standard deviation 0.01405790 0.01360008 0.01342297 0.01311042
## Proportion of Variance 0.01289588 0.01206961 0.01175731 0.01121615
## Cumulative Proportion 0.81047873 0.82254833 0.83430564 0.84552179
## Comp.25 Comp.26 Comp.27 Comp.28
## Standard deviation 0.01250554 0.012240871 0.012020588 0.011264495
## Proportion of Variance 0.01020506 0.009777663 0.009428917 0.008280068
## Cumulative Proportion 0.85572685 0.865504513 0.874933430 0.883213498
## Comp.29 Comp.30 Comp.31 Comp.32
## Standard deviation 0.011201929 0.010323205 0.010014649 0.009648703
## Proportion of Variance 0.008188342 0.006954076 0.006544582 0.006075028
## Cumulative Proportion 0.891401840 0.898355917 0.904900499 0.910975527
## Comp.33 Comp.34 Comp.35 Comp.36
## Standard deviation 0.009390832 0.009101021 0.008790048 0.008748815
## Proportion of Variance 0.005754645 0.005404937 0.005041884 0.004994694
## Cumulative Proportion 0.916730171 0.922135108 0.927176993 0.932171686
## Comp.37 Comp.38 Comp.39 Comp.40
## Standard deviation 0.008307515 0.008068756 0.007860782 0.007466816
## Proportion of Variance 0.004503526 0.004248382 0.004032199 0.003638156
## Cumulative Proportion 0.936675212 0.940923594 0.944955793 0.948593949
## Comp.41 Comp.42 Comp.43 Comp.44
## Standard deviation 0.007333108 0.007043632 0.006736550 0.006603951
## Proportion of Variance 0.003509026 0.003237455 0.002961321 0.002845890
## Cumulative Proportion 0.952102975 0.955340430 0.958301751 0.961147641
## Comp.45 Comp.46 Comp.47 Comp.48
## Standard deviation 0.006491314 0.006342372 0.006075960 0.005893793
## Proportion of Variance 0.002749638 0.002624906 0.002409019 0.002266732
## Cumulative Proportion 0.963897279 0.966522185 0.968931205 0.971197937
## Comp.49 Comp.50 Comp.51 Comp.52
## Standard deviation 0.005804064 0.005486887 0.005407149 0.005111946
## Proportion of Variance 0.002198238 0.001964547 0.001907863 0.001705230
## Cumulative Proportion 0.973396175 0.975360722 0.977268585 0.978973815
## Comp.53 Comp.54 Comp.55 Comp.56
## Standard deviation 0.004891384 0.004861248 0.004514164 0.004395381
## Proportion of Variance 0.001561255 0.001542076 0.001329735 0.001260676
## Cumulative Proportion 0.980535070 0.982077146 0.983406881 0.984667557
## Comp.57 Comp.58 Comp.59 Comp.60
## Standard deviation 0.004288865 0.004162577 0.004019648 0.0039089123
## Proportion of Variance 0.001200315 0.001130667 0.001054354 0.0009970622
## Cumulative Proportion 0.985867872 0.986998539 0.988052893 0.9890499555
## Comp.61 Comp.62 Comp.63 Comp.64
## Standard deviation 0.0038067786 0.0036820303 0.0034188568 0.0033125517
## Proportion of Variance 0.0009456396 0.0008846778 0.0007627324 0.0007160375
## Cumulative Proportion 0.9899955951 0.9908802729 0.9916430053 0.9923590428
## Comp.65 Comp.66 Comp.67 Comp.68
## Standard deviation 0.0031561657 0.0030933210 0.0029061849 0.0028214862
## Proportion of Variance 0.0006500249 0.0006243964 0.0005511336 0.0005194769
## Cumulative Proportion 0.9930090677 0.9936334640 0.9941845976 0.9947040745
## Comp.69 Comp.70 Comp.71 Comp.72
## Standard deviation 0.0027702148 0.0026522405 0.0026210571 0.0024797221
## Proportion of Variance 0.0005007688 0.0004590248 0.0004482945 0.0004012513
## Cumulative Proportion 0.9952048434 0.9956638682 0.9961121627 0.9965134139
## Comp.73 Comp.74 Comp.75 Comp.76
## Standard deviation 0.0024002958 0.0022467195 0.0020831977 0.0020566569
## Proportion of Variance 0.0003759585 0.0003293883 0.0002831857 0.0002760159
## Cumulative Proportion 0.9968893725 0.9972187607 0.9975019464 0.9977779623
## Comp.77 Comp.78 Comp.79 Comp.80
## Standard deviation 0.001948439 0.0018859930 0.0018174521 0.0017486758
## Proportion of Variance 0.000247733 0.0002321082 0.0002155442 0.0001995396
## Cumulative Proportion 0.998025695 0.9982578036 0.9984733478 0.9986728873
## Comp.81 Comp.82 Comp.83 Comp.84
## Standard deviation 0.0015676968 0.0015368000 0.0014409297 0.0013509339
## Proportion of Variance 0.0001603742 0.0001541151 0.0001354865 0.0001190909
## Cumulative Proportion 0.9988332616 0.9989873766 0.9991228631 0.9992419540
## Comp.85 Comp.86 Comp.87 Comp.88
## Standard deviation 0.0012936929 1.221531e-03 1.145541e-03 1.117366e-03
## Proportion of Variance 0.0001092126 9.736869e-05 8.563108e-05 8.147068e-05
## Cumulative Proportion 0.9993511666 9.994485e-01 9.995342e-01 9.996156e-01
## Comp.89 Comp.90 Comp.91 Comp.92
## Standard deviation 1.065997e-03 0.0009819074 8.580464e-04 8.167346e-04
## Proportion of Variance 7.415186e-05 0.0000629146 4.804321e-05 4.352837e-05
## Cumulative Proportion 9.996898e-01 0.9997527036 9.998007e-01 9.998443e-01
## Comp.93 Comp.94 Comp.95 Comp.96
## Standard deviation 7.571407e-04 6.970443e-04 6.600078e-04 5.605347e-04
## Proportion of Variance 3.740792e-05 3.170525e-05 2.842553e-05 2.050291e-05
## Cumulative Proportion 9.998817e-01 9.999134e-01 9.999418e-01 9.999623e-01
## Comp.97 Comp.98 Comp.99 Comp.100
## Standard deviation 5.174109e-04 4.566766e-04 3.181415e-04 1.270910e-10
## Proportion of Variance 1.746955e-05 1.360905e-05 6.604669e-06 1.053998e-18
## Cumulative Proportion 9.999798e-01 9.999934e-01 1.000000e+00 1.000000e+00
#Чтобы выбрать нужные главные компоненты, запишем графики факторных нагрузок в файлы для более удобного просмотра
create_loadings_plots <- function(path,n_components, loadings, size_of_SR, colours) {
for (i in 1:n_components) {
m = matrix(data = loadings[,i], ncol = size_of_SR, byrow=T)
filepath = paste(path,"//levelplot",i,".jpg", sep="")
jpeg(file = filepath, width = 1024, height = 768, bg = "transparent")
print(#Обязательно ставим "PRINT", иначе будут записаны пустые файлы
levelplot(m, col.regions = colours(100), ylim=c(10.5,0.5),
main = paste(i," component loadings",sep=""),
xlab = "", ylab = "", useRaster = T)
)
dev.off()
}
}
#Настроим цветовую шкалу
palette = colorRampPalette(colors = c("#0000FF","#FFFFFF","#FF0000"))
#Запишем полученные levelplot'ы
create_loadings_plots("E://RDir//Raven//Loadings",100,raven_PCA$loadings,10,palette)
#Функция для просмотра полученных графиков нагрузок
show_loading_plot <- function(path,number_of_component) {
filepath = paste(path,"//levelplot",number_of_component,".jpg", sep="")
loading <- readJPEG(filepath)
plot(1, type="n", xlim=c(0, 1024), ylim=c(768, 0))
rasterImage(loading,0, 768, 1024, 0, interpolate = FALSE)
}
#Первый компонент можно трактовать как приверженность "горизонтальной" стратегии
show_loading_plot("E://RDir//Raven//Loadings",1)

#Третий компонент можно трактовать как приверженность "вертикальной" стратегии
show_loading_plot("E://RDir//Raven//Loadings",3)

#Запишем, какие компоненты будем использовать для анализа
using_comps = c(1,3)
#Определим фрейм данных, включающий в себя нужные компоненты, интегральные показатели и результаты
df = cbind(predict(raven_PCA)[,using_comps], test_results$Ball, test_results$Total, test_results$PTOM, test_results$PTOA)
colnames(df) = c("Horis", "Vertic", "Ball", "Total","PTOM", "PTOA")
df = as.data.frame(df)
#Построим дерево решений для предсказания, пройдет испытуемый задание или нет
raven_tree_ball = rpart(formula = Ball ~ Horis + Vertic + PTOM + PTOA, data = df, method = "class")
fancyRpartPlot(raven_tree_ball)

#Определим вектор со значениями прохождения теста
predicted_ball = as.vector(ifelse(predict(raven_tree_ball)[,1]>0.5, 0, 1))
#Вычислим ошибку
paste("Ошибка составляет ",round(as.numeric(table(predicted_ball==test_results$Ball)[1]/120*100),2),"%",sep="")
## [1] "Ошибка составляет 18.33%"