Multivariata och högdimensionella data

Variabler vs observationer

  • Hitta samspel mellan variabler
  • Hitta grupper av liknande observationer

Hur hittar vi liknande observationer?

mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Glyfer stars(mtcars)

Glyfer aplpack::faces(mtcars)

## effect of variables:
##  modified item       Var   
##  "height of face   " "mpg" 
##  "width of face    " "cyl" 
##  "structure of face" "disp"
##  "height of mouth  " "hp"  
##  "width of mouth   " "drat"
##  "smiling          " "wt"  
##  "height of eyes   " "qsec"
##  "width of eyes    " "vs"  
##  "height of hair   " "am"  
##  "width of hair   "  "gear"
##  "style of hair   "  "carb"
##  "height of nose  "  "mpg" 
##  "width of nose   "  "cyl" 
##  "width of ear    "  "disp"
##  "height of ear   "  "hp"

Heatmap (standardiserade var.)

Linjer

Linjer

Samspel GGally::scatmat(trees)

Samspel GGally::scatmat(mtcars)

Samspel GGally::scatmat(randu)

Samspel rgl::plot3d(randu)

Samspel rgl::plot3d(randu)

Samspel corrplot::corrplot

Singulärvärdesuppdelning

Låt \(X\) vara matrisen med \(d\) variabler i kolumner och \(n\) observationer på rader. Antag centrerad. Om \(n\geq d\) kan vi göra en singulärvärdesuppdelning (SVD) av \(X\)

\[ X = UD V^T \] där

  • \(U\) av dim (\(n\times p\)) har ortonormala kolumner
  • \(D\) är en diagonalmatris med diagonal \(d=(d_1,\ldots, d_p)\), \(d_1\geq \ldots \geq d_p\geq 0\)
  • \(V\) av dim \((p\times p)\) är en ortogonal matris

Singulärvärdesuppdelning

\[ \begin{align*} X & = UD V^T = \sum_{i=1}^p u_id_iv_i^T\\ & \approx \sum_{i=1}^q u_id_iv_i^T = U_{1:n,1:q}D_{1:q}V_{1:q}, \end{align*} \] för \(q<p\).

Data trees (normaliserade)

\(u_1\) och \(u_2\)

Projicerade

Tillbaka

mtcars utan cyl

mtcars utan cyl

Principalkomponenter

  1. Bestäm \(v_1\) så att \(|v_1|=1\) och $variansen hos \(X\times v_1\) maximeras.
  2. Bestäm \(v_2\) så att \(|v_2|=1\), \(v_1\perp v_2\) och variansen hos \(X\times v_2\) maximeras.
  3. Bestäm \(v_3\) så att \(|v_3|=1\), \(v_1\perp v_3\), \(v_2\perp v_3\) och variansen hos \(X\times v_3\) maximeras.

Principalkomponenter

  • Vektorerna \(v_i\) ges av egenvektorerna till kovariansmatrisen \(X^TX/n\).
  • Men \(X^TX=(UD V^T)^TUD V^T=V D U U^TU D V^T=VD^2V^T\) (spektraluppdelning).
  • Kolonnerna i \(V\) är egenvektorer till \(X^TX/n\).

Tiokamp

library(GDAdata)
head(Decathlon)
##   Totalpoints   DecathleteName Nationality  m100 Longjump Shotput Highjump
## 1        8559     Torsten Voss         DDR 10.66     8.00   14.73     2.06
## 2        8504     Uwe Freimuth         DDR 11.10     7.66   16.30     1.94
## 3        8440  Siegfried Wentz         BRD 11.21     7.22   15.84     2.09
## 4        8409 Aleksandr Nevski          SU 10.95     7.35   14.99     2.08
## 5        8381       John Sayre         USA 10.86     7.41   14.22     2.00
## 6        8366  Vadim Podmaryov          SU 11.09     7.56   15.28     2.08
##    m400 m110hurdles Discus Polevault Javelin  m1500 yearEvent P100m  Plj
## 1 48.28       14.50  43.28       4.9   61.28 268.80      1985   938 1061
## 2 48.46       14.77  47.72       4.9   68.26 270.56      1985   839  975
## 3 47.75       14.28  45.52       4.7   69.66 278.38      1985   814  866
## 4 49.29       14.76  46.12       4.6   68.16 261.09      1985   872  898
## 5 49.98       14.84  46.08       5.3   67.68 277.07      1985   892  913
## 6 50.00       14.89  48.58       4.6   67.46 272.31      1985   841  950
##   Psp Phj P400m P110h  Ppv Pdt Pjt P1500
## 1 773 859   896   911  880 732 757   752
## 2 870 749   887   878  880 823 863   741
## 3 841 887   921   939  819 778 884   691
## 4 789 878   848   879  790 790 861   804
## 5 742 803   816   869 1004 789 854   699
## 6 807 878   815   863  790 841 851   730

Tiokamp

biplot

biplot

Klusteranalys

Vi vill hitta kluster av observationer/variabler som liknar varandra

  • Om två kolumnerna är nära varandra mäter variablerna samma storhet
  • Om två rader är nära varandra är observationerna lika
  • Vi begränsar oss till euklidiskt avstånd, kräver standardisering (scale)

Hierarkisk linkage

  1. Varje observation utgör ett kluster
  2. Slå ihop de två närmaste klustren, bestäm ny avståndsmatris.
  3. Upprepa steg 2 tills det bara finns ett kluster.

Avstånd mellan kluster

  • Complete: Största avståndent
  • Single: Minsta avståndet
  • Average: Medelavståndet

Visualisera med dendrogram

Visualisera med dendrogram

Visualisera med dendrogram

Heatmap sorterad efter klustring