Обработка данных. Выбор экземпляров

1. Выполните классификацию k-ближайших соседей с использованием функции knn() из пакета class на наборе данных iris. Проведите нормализацию данных, разделите выборку на обучающую и тестовую. Оцените построенную модель с использованием функции CrossTable() из пакета gmodels. Постройте матрицу ошибок и диагональную оценку качества прогноза (diagonal mark quality prediction).

str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
table(iris$Species)
## 
##     setosa versicolor  virginica 
##         50         50         50
round(prop.table(table(iris$Species)) * 100, digits = 1)
## 
##     setosa versicolor  virginica 
##       33.3       33.3       33.3
plot(iris$Sepal.Length, iris$Sepal.Width, col=iris$Species, pch=19)
legend("topright", legend=levels(iris$Species), bty="n", pch=19, col=palette())

normMinMax = function(x) {
  return((x-min(x))/max(x)-min(x))
}

iris_norm <- as.data.frame(lapply(iris[1:4], normMinMax))
set.seed(1234)
indexes = sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0.3))
iris_train = iris[indexes==1, 1:4]
iris_test = iris[indexes==2, 1:4]
iris_train_labels = iris[indexes==1, 5]
iris_test_labels = iris[indexes==2, 5]
#install.packages("class")
library("class")

iris_mdl = knn(train=iris_train, test=iris_test, cl=iris_train_labels, k=3)
#install.packages("gmodels")
library("gmodels")
## Warning: пакет 'gmodels' был собран под R версии 4.2.2
CrossTable(x=iris_test_labels, y=iris_mdl, prop.chisq = FALSE)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## |           N / Row Total |
## |           N / Col Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  38 
## 
##  
##                  | iris_mdl 
## iris_test_labels |     setosa | versicolor |  virginica |  Row Total | 
## -----------------|------------|------------|------------|------------|
##           setosa |         10 |          0 |          0 |         10 | 
##                  |      1.000 |      0.000 |      0.000 |      0.263 | 
##                  |      1.000 |      0.000 |      0.000 |            | 
##                  |      0.263 |      0.000 |      0.000 |            | 
## -----------------|------------|------------|------------|------------|
##       versicolor |          0 |         12 |          0 |         12 | 
##                  |      0.000 |      1.000 |      0.000 |      0.316 | 
##                  |      0.000 |      0.923 |      0.000 |            | 
##                  |      0.000 |      0.316 |      0.000 |            | 
## -----------------|------------|------------|------------|------------|
##        virginica |          0 |          1 |         15 |         16 | 
##                  |      0.000 |      0.062 |      0.938 |      0.421 | 
##                  |      0.000 |      0.077 |      1.000 |            | 
##                  |      0.000 |      0.026 |      0.395 |            | 
## -----------------|------------|------------|------------|------------|
##     Column Total |         10 |         13 |         15 |         38 | 
##                  |      0.263 |      0.342 |      0.395 |            | 
## -----------------|------------|------------|------------|------------|
## 
## 
CM = table(iris_test_labels, iris_mdl)
CM
##                 iris_mdl
## iris_test_labels setosa versicolor virginica
##       setosa         10          0         0
##       versicolor      0         12         0
##       virginica       0          1        15
accuracy = (sum(diag(CM)))/sum(CM)
accuracy
## [1] 0.9736842

2. Рассмотрите пример реализации метода опорных векторов с использованием функции svm() из пакета e1071. Постройте линейный классификатор для прогнозирования. Для подбора параметров модели выполните перекрестную проверку с делением исходной выборки на 10 равных частей (cross=10).

#install.packages("e1071")
library("e1071")
## Warning: пакет 'e1071' был собран под R версии 4.2.2
DGlass <- read.table(file="Glass.txt", sep=",", header=TRUE, row.names=1)
DGlass$F <- as.factor(ifelse(DGlass$Class==2,2,1))
svm.all <- svm(formula = F ~ ., data=DGlass[,-10], cross=10, kernel = "linear")
table(Факт=DGlass$F, Прогноз=predict(svm.all))
##     Прогноз
## Факт  1  2
##    1 72 15
##    2 27 49
Acc = mean(predict(svm.all) == DGlass$F)
paste("Точность=", round(100*Acc, 2), "%", sep="")
## [1] "Точность=74.23%"
library(e1071)
CVsvm <- function(x, y) {
  n <- nrow(x) ; Err_S <- 0
  for(i in 1:n) {
    svm.temp <- svm(x=x[-i,], y = y[-i], kernel = "linear")
    if (predict(svm.temp, newdata=x[i,]) != y[i])
      Err_S <- Err_S +1 }
  Err_S/n }
Acc <- 1-CVsvm(DGlass[,1:9],DGlass$F)
paste("Точность=", round(100*Acc, 2), "%", sep="")
## [1] "Точность=71.17%"

3. Выполните расчет главных компонент с использованием пакета vegan() и его функции rda(). Постройте ординационную диаграмму методом PCA [3, c. 49] и сделайте выводы.

#install.packages("vegan")
library(vegan)
## Warning: пакет 'vegan' был собран под R версии 4.2.2
## Загрузка требуемого пакета: permute
## Warning: пакет 'permute' был собран под R версии 4.2.2
## Загрузка требуемого пакета: lattice
## This is vegan 2.6-4
Y <- as.data.frame(DGlass[,1:9])
mod.pca <- rda(Y ~ 1)
summary(mod.pca)
## 
## Call:
## rda(formula = Y ~ 1) 
## 
## Partitioning of variance:
##               Inertia Proportion
## Total           3.656          1
## Unconstrained   3.656          1
## 
## Eigenvalues, and their contribution to the variance 
## 
## Importance of components:
##                          PC1    PC2     PC3     PC4     PC5      PC6      PC7
## Eigenvalue            2.6056 0.5828 0.21129 0.18895 0.04308 0.014033 0.008907
## Proportion Explained  0.7126 0.1594 0.05779 0.05168 0.01178 0.003838 0.002436
## Cumulative Proportion 0.7126 0.8721 0.92984 0.98152 0.99330 0.997137 0.999573
##                             PC8       PC9
## Eigenvalue            0.0015623 6.952e-07
## Proportion Explained  0.0004273 1.901e-07
## Cumulative Proportion 0.9999998 1.000e+00
## 
## Scaling 2 for species and site scores
## * Species are scaled proportional to eigenvalues
## * Sites are unscaled: weighted dispersion equal on all dimensions
## * General scaling constant of scores:  4.93332 
## 
## 
## Species scores
## 
##          PC1       PC2       PC3        PC4        PC5        PC6
## RI -0.006663  0.003040 -0.001587 -0.0007297  0.0005398  9.075e-05
## Na  0.461583  1.180084  0.833131  0.0499341  0.0109644  2.782e-03
## Mg  2.037591  0.659746 -0.616211 -0.5223737 -0.0598691  4.080e-02
## Al  0.240546 -0.337483 -0.107770  0.6588300 -0.2282742  1.616e-01
## Si  0.691702 -1.339222  0.458279 -0.4986449  0.0521649  4.062e-02
## K   0.265988 -0.302647 -0.111021  0.2512089 -0.1346813 -2.370e-01
## Ca -3.512043  0.228783 -0.158561 -0.3491594 -0.0734353  2.515e-02
## Ba -0.190199 -0.009844 -0.267021  0.3372595  0.4523324  1.708e-02
## Fe -0.039086 -0.017137 -0.046526  0.0299297  0.0074709 -8.279e-02
## 
## 
## Site scores (weighted sums of species scores)
## 
##            PC1       PC2       PC3        PC4        PC5       PC6
## 1    0.1468069  0.653541 -0.452476 -0.2986962 -0.0429202  0.936689
## 2    0.2831309  0.140664  0.445786  0.1797183  0.1566509  0.104893
## 3    0.2892866 -0.078679  0.338106  0.1733055  0.1124002  0.711760
## 4    0.1922588  0.012620 -0.081285  0.0359569  0.0035938 -0.172746
## 5    0.2337499 -0.146211  0.160402 -0.1074701  0.1936305 -0.073273
## 6    0.2214789 -0.297171 -0.200230  0.1444547 -0.1806841  0.058841
## 7    0.2114214 -0.131683  0.184216 -0.1760887  0.2406837 -0.298989
## 8    0.1990103 -0.214651  0.139648 -0.3142412  0.3185712 -0.345347
## 9    0.1650442  0.427873  0.271529  0.3424207 -0.1176032 -0.241228
## 10   0.1555260 -0.193697 -0.071725 -0.0963416 -0.0154747  0.019020
## 11   0.2067898 -0.419220 -0.100392  0.0813228 -0.0821635 -0.065561
## 12   0.1251108 -0.235822 -0.219846 -0.2253187 -0.0182958 -0.043307
## 13   0.2169013 -0.393270  0.048795 -0.0002951  0.0730060 -0.377453
## 14   0.1580811 -0.310301 -0.055911 -0.2186649  0.1199783 -0.045091
## 15   0.1353949 -0.407632 -0.205212 -0.2811839  0.0329116  0.146036
## 16   0.1540141 -0.337567 -0.062588 -0.2440226  0.1337667 -0.059614
## 17   0.0973589 -0.288098 -0.270874 -0.3683717  0.0402427 -0.177028
## 18  -0.0084986  0.943531  0.081491 -0.0408565  0.0643035  0.011934
## 19   0.0507622  0.487314  0.123418 -0.1044787  0.0880175  0.936470
## 20   0.1347476 -0.131896 -0.144416  0.1872670 -0.3094050  0.573642
## 21   0.1121537 -0.176349 -0.258422  0.0431257 -0.1736372  0.149900
## 22   0.0371994  0.876116  0.655614 -0.5413318  0.7933986 -0.506454
## 23   0.0828807 -0.165469 -0.302383 -0.1526636 -0.0978158 -0.059376
## 24   0.1105440 -0.258288 -0.182322 -0.1539343 -0.0780710  0.017767
## 25   0.1384949 -0.020805  0.173453 -0.1191470  0.1839849 -0.154338
## 26   0.1214141 -0.198476 -0.059864 -0.1774827  0.0437900 -0.333474
## 27   0.1282319 -0.033062 -0.013949  0.1198376 -0.1058145 -0.038016
## 28   0.1335665 -0.265261 -0.076520 -0.1001442  0.0317380  0.063529
## 29   0.1136685 -0.393717 -0.262697 -0.1488337 -0.0809386  0.296854
## 30   0.1209217 -0.132781 -0.021245 -0.0594555  0.0105849 -0.175989
## 31   0.0860924 -0.318960 -0.264456 -0.2325393 -0.0486448 -0.123568
## 32   0.1173561 -0.326776 -0.027078 -0.3336688  0.1887918 -0.125028
## 33   0.1018155 -0.235916 -0.146484 -0.1223026  0.1887853 -0.410948
## 34   0.1152386 -0.479691 -0.158309 -0.2443691 -0.0017352  0.166560
## 35   0.0677300 -0.261521 -0.276400 -0.1781288 -0.0986615  0.123308
## 36   0.0992427 -0.020357  0.081085 -0.0537938  0.0591605 -0.237457
## 37   0.0445475  0.503223  0.049375  0.3243428 -0.0481309 -0.195238
## 38   0.0777972 -0.270426 -0.215633 -0.1165364 -0.1053155 -0.076241
## 39  -0.0911489  0.815696  0.127367 -0.5414945  0.3850218 -0.339415
## 40  -0.0911489  0.815696  0.127367 -0.5414945  0.3850218 -0.339415
## 41   0.0628550 -0.250665 -0.164489 -0.2960750  0.0652168 -0.409279
## 42   0.0847742 -0.358011 -0.108959 -0.2654146  0.1028795 -0.142373
## 43   0.0889362 -0.073396  0.052679  0.0233180 -0.0424783 -0.120474
## 44  -0.1320087  0.660142 -0.212061 -0.4691470  0.0899143 -0.023284
## 45   0.0518571 -0.259647 -0.208012 -0.1950786  0.0270265 -0.573156
## 46  -0.0087009  0.332246 -0.129429  0.2068569 -0.3000674 -0.178591
## 47   0.0331130 -0.041018  0.017281 -0.0986988  0.0251734 -0.433167
## 48  -0.1679795  0.797858 -0.058337 -0.3803800  0.1550659  0.136950
## 49  -0.2012391  0.424215 -0.448261 -0.6009582  0.0178371  0.328678
## 50   0.0007798  0.294650  0.039392  0.1829980 -0.1460324 -0.509506
## 51  -0.2160692  0.682819 -0.187630 -0.6267501  0.2397490 -0.296316
## 52  -0.0464905  0.086955 -0.119905  0.0321635 -0.2059905 -0.382238
## 53  -0.0547600 -0.081275  0.401190  0.0128336  0.1066234 -0.328492
## 54  -0.0724550 -0.183510  0.234393  0.0458549  0.0217208 -0.179401
## 55  -0.0594847 -0.213291  0.336418  0.0228252  0.0802899 -0.108306
## 56  -0.0704153 -0.712215  0.151214 -0.2488176  0.1732766 -0.110566
## 57   0.1467028 -0.202253 -0.010477 -0.1358693  0.1950615 -0.775254
## 58   0.1300355 -0.233834 -0.105940 -0.0774267  0.0284228 -0.146323
## 59   0.2575892 -0.030250  0.209615 -0.1308647  0.2074165 -0.287136
## 60   0.1889440  0.011296  0.095530 -0.0794457  0.1191626 -0.359259
## 61   0.0771736  0.190036  0.177048 -0.2614640  0.2455654  0.746507
## 62   0.0546356  0.540926 -0.116183  0.4442499  1.0483509  0.851199
## 63  -0.0909277  0.555389 -0.339461 -0.3441461 -0.0186931 -0.034835
## 64  -0.1318250  0.935502 -0.057407 -0.2653125  0.0833017  0.320174
## 65  -0.1116236  0.456380 -0.237121 -0.4026143  0.0338339  0.223323
## 66  -0.0812986  0.487817 -0.047051 -0.1582556 -0.0168286  0.756854
## 67  -0.1743517  0.253329 -0.412842 -0.5435280  0.0347130  0.161232
## 68  -0.1703635  0.218810 -0.380257 -0.5831745  0.0529063  0.204720
## 69  -0.1743832  0.262167 -0.348965 -0.4719521  0.0131173  0.075231
## 70  -0.2510780  0.429206 -0.325188 -0.5452860  0.0045123  0.339750
## 71   0.3781360  0.708146  0.754661  0.7985880 -0.0060587  1.026982
## 72   0.1772181  0.406967 -0.135191  0.1993558 -0.1230611 -0.579174
## 73   0.2805550 -0.260841  0.069565  0.1271804 -0.0211697  0.032264
## 74   0.2633097 -0.104933  0.145619  0.2341497 -0.0762680  0.185875
## 75   0.2624362 -0.292199  0.031129  0.1339269 -0.0730998 -0.052011
## 76   0.2521590 -0.283762  0.023527  0.0832923 -0.0528479  0.001452
## 77   0.2235291  0.104945  0.013489  0.3672157 -0.2035813 -0.143518
## 78   0.2230509 -0.181389 -0.087822  0.1750000 -0.1131681  0.151199
## 79   0.2547114  0.108423  0.547569  0.0478701  0.3165085  0.130437
## 80   0.2328024 -0.298385 -0.184396  0.4048680 -0.4083247  0.533670
## 81   0.2289419 -0.236317 -0.242730  0.6009904 -0.6183316  0.828517
## 82   0.2629144 -0.245865  0.256749  0.0964700  0.1190682  0.010953
## 83   0.2145421 -0.031571  0.171617  0.0570823  0.0877684 -0.521617
## 84   0.2189771 -0.184163 -0.005580  0.2062197 -0.1309796 -0.092345
## 85   0.3862146  0.163549  0.716313  1.2934362 -0.4773278 -0.832405
## 86   0.1906738 -0.007059  0.086890  0.1275616 -0.0479922  0.479376
## 87   0.2331419 -0.245233  0.255292 -0.0244364  0.1575381  0.761558
## 88   0.2082620 -0.013912  0.118891  0.2924066 -0.1317270 -0.219202
## 89   0.1991266 -0.201947 -0.030927  0.1292000 -0.0531897  0.085757
## 90   0.2118602 -0.501657 -0.214594  0.2079756 -0.3167420  0.719267
## 91   0.0257571  0.102732 -0.459035 -0.1455973 -0.1509585 -0.787595
## 92   0.1626865 -0.280356 -0.016387 -0.0069597  0.0466821  0.524716
## 93   0.1443948 -0.263786  0.191686 -0.0996536  0.1422599  1.632912
## 94   0.1712175 -0.208537  0.249926  0.0465840  0.1082097  0.656590
## 95   0.1636377 -0.455989 -0.026896  0.0191808 -0.0297872  0.044148
## 96   0.0758216  0.149762 -0.041392  0.2445195 -0.1806563  0.062746
## 97  -0.0185118  0.103673 -0.346609 -0.1910232 -0.1171016 -0.789928
## 98   0.0119047 -0.647457 -0.259098 -0.4352474  0.1399667 -0.367660
## 99   0.0501388 -0.526643  0.068348  0.2761857 -0.2302582  0.125117
## 100 -0.0023463 -0.275835  0.087541  0.1649489  0.1521819 -0.019062
## 101 -0.0073871 -0.478662  0.125407  0.0599733  0.1953284 -0.028196
## 102 -0.1320233 -0.483833 -0.231198  0.2252823 -0.3698801  0.021329
## 103 -0.1380376 -0.612170  0.278419 -0.6902410  0.5609710 -0.166406
## 104 -0.6456153  1.099167 -0.458552 -0.2848663 -0.3764022 -0.203957
## 105 -0.4718632  0.771074 -0.085493  0.0933298 -0.4058715  0.593518
## 106 -1.3102496 -0.780759 -0.285356  0.6366394 -1.2289235 -0.557524
## 107 -1.4713648 -0.183581 -2.088964  2.4475244  3.1958580 -0.004478
## 108 -1.9885037  0.483326 -0.650701  0.0550906 -1.2991646 -0.303698
## 109 -0.8860189 -0.008354  1.962377  0.4331774  0.4401990 -0.213398
## 110 -0.7340592 -0.823594  2.225817 -0.4059408  1.2678094 -0.039731
## 111 -1.5940657 -0.953610 -0.085414 -0.9275683 -0.1652429  0.703606
## 112 -1.6618145 -0.954359 -0.282213 -0.9725733 -0.2527127  0.681596
## 113 -1.5477689 -0.126432  0.396581 -0.3624646 -0.2046791 -0.172564
## 114  0.2142594  0.134586 -0.015287  0.0019161  0.0031011 -0.308931
## 115  0.1719956  0.104202 -0.342907 -0.1219932 -0.0782661 -0.320273
## 116  0.1993896  0.191601 -0.130478  0.0443299 -0.0913907  0.058157
## 117  0.1894690  0.150099 -0.267837  0.0971972 -0.1966340 -0.007936
## 118  0.2598551  0.285161  0.038955  0.6591716 -0.4346719  0.229392
## 119  0.2279653  0.019504 -0.045009  0.2933579 -0.1695131 -0.322663
## 120  0.2373132  0.117454  0.136488  0.3435757 -0.0966723 -0.220522
## 121  0.1532426  0.117587 -0.182327  0.0539188 -0.1275014 -0.151936
## 122  0.2247944 -0.265176 -0.083721  0.1929649 -0.1535907  0.061639
## 123  0.2111228 -0.109025  0.070992  0.1387069 -0.0383132  0.184159
## 124  0.2243494  0.036104  0.131145  0.4634214 -0.2575650  0.242295
## 125  0.1332503 -0.008237 -0.057939 -0.1784048  0.0794937 -0.201848
## 126  0.1140993 -0.048467 -0.329250  0.1316202 -0.3200861  0.186569
## 127  0.1037421 -0.105641 -0.200311 -0.1202447 -0.0333008 -0.079069
## 128 -0.3126771  0.249680  0.478328  0.4989058 -0.2799120 -0.307813
## 129 -0.2758630  0.040628  0.445996  0.7771977  0.0733266 -0.027311
## 130 -0.5683353  0.263987  0.841529  0.8722168 -0.4137612 -0.025969
## 131 -0.7189561  0.050941  0.960357  0.5151030 -0.1834270  0.006499
## 132 -1.3449351  0.338028  0.812137  0.6451526 -0.6679765  0.036613
## 133  0.2401993  0.174939 -0.101594 -0.0643698  0.0304291 -0.326262
## 134  0.2065498  0.461018 -0.171555  0.4046095 -0.3514169 -0.027916
## 135  0.2399565  0.019130 -0.006621 -0.0963094  0.0866466  0.005394
## 136  0.1598833  0.151330 -0.309638  0.0057856 -0.1395767 -0.324282
## 137  0.1822030 -0.163387 -0.109118 -0.3540032  0.1903190 -0.332152
## 138  0.2162485 -0.251403 -0.138341  0.0987608 -0.1438860  0.292678
## 139  0.2606658 -0.450579 -0.001395  0.0303083  0.0001248  0.184652
## 140  0.2417294 -0.346111 -0.060238  0.1294935 -0.1431601  0.331452
## 141  0.2034381  0.004872  0.011912  0.3509053 -0.2514941 -0.020241
## 142  0.1508226 -0.047205 -0.016507 -0.1665515  0.3286651 -0.567277
## 143  0.1780054 -0.287868 -0.126302  0.0576450  0.0277000 -0.315677
## 144  0.1816259 -0.179515 -0.114358  0.3663742 -0.3685873  0.398663
## 145  0.0201565 -0.227126  0.058505 -0.0911967  0.0653796 -0.428547
## 146  0.0848711 -0.060447 -0.362373 -0.0897477 -0.1056451 -0.609365
## 147  0.1203272  0.160076  0.251911 -0.2892059  0.3178440  0.855055
## 148  0.1573150  0.004117  0.064015  0.0770438 -0.0107786 -0.071461
## 149  0.1388705 -0.024247 -0.015826  0.0377586 -0.0745257 -0.033439
## 150  0.0935700 -0.419268 -0.577115 -0.1007629 -0.0772871  0.030768
## 151  0.1312131 -0.039152 -0.122003  0.3962154 -0.3974487  0.293251
## 152 -0.0700853  0.928509  0.059614 -0.2744927  0.1089498  0.461842
## 153  0.0540899  0.139315  0.327306 -0.7191940  0.6665850  0.370274
## 154  0.1460560  0.009990  0.188761  0.0725898  0.1074519 -0.403299
## 155  0.0554919 -0.083795 -0.309378 -0.0720243 -0.1675207 -0.144663
## 156  0.0955381 -0.198745  0.041074 -0.1345727  0.0855845  0.041386
## 157  0.0755571  0.042210  0.134649  0.0220057  0.0006557 -0.059419
## 158 -0.1168639  0.738986  0.036095 -0.4962379  0.2862393 -0.150431
## 159  0.0330710  0.271928 -0.037453  0.3551775 -0.3632008 -0.007375
## 160  0.0195299  0.280813 -0.078775  0.4666121 -0.4577559  0.067714
## 161 -0.0170152  0.176284 -0.115178  0.2876232 -0.3957898  0.138785
## 162  0.0360425  0.221129  0.213986 -0.4053523  0.7524278 -0.106796
## 163 -0.0185512  0.869712 -0.007506  0.0195031  0.0311207 -0.522748
library(ggplot2)
F <- as.factor(ifelse(DGlass$Class == 2, 2, 1))
pca.scores <- as.data.frame(summary(mod.pca)$sites[,1:2])
pca.scores <- cbind(pca.scores, F)
l <- lapply(unique(pca.scores$F), function(c)
{ f <- subset(pca.scores, F == c); f[chull(f), ]})
hull <- do.call(rbind, l)
axX <- paste("PC1 (",
             as.integer(100*mod.pca$CA$eig[1]/sum(mod.pca$CA$eig)),"%)")
axY <- paste("PC2 (",
             as.integer(100*mod.pca$CA$eig[2]/sum(mod.pca$CA$eig)),"%)")
ggplot() +
  geom_polygon(data=hull,aes(x=PC1,y=PC2, fill=F),
               alpha=0.4, linetype=0) +
  geom_point(data=pca.scores,aes(x=PC1,y=PC2,shape=F,
                                 colour=F),size=3) +
  scale_colour_manual( values = c('red', 'orange'))+
  xlab(axX) + ylab(axY) + coord_equal() + theme_bw()