Anda di halaman 1dari 37

Metode Multivariat Terapan

Pertemuan X
ANALISIS KOMPONEN UTAMA
What is Principal Components?
• Principal components atau komponen utama adalah
kombinasi linier dari variabel-variabel original, dimana
antar komponen utama dibuat sedemikian hingga saling
tidak berkorelasi.
• Analisis komponen utama  menjelaskan struktur
varians kovarians dari sekelompok variabel melalui
kombinasi linier dari variabel-variabel tersebut dalam
dimensi yang lebih kecil.
• Tujuan analisis komponen utama:
A) data reduction, dan
B) interpretation.
Dari gambar di atas, meski untuk mendapatkan gambaran 100%
mengenai keragaman data, kita butuh 2 komponen utama (KU).
Namun hanya dengan melihat KU 1 kita sudah cukup
mendapatkan gambaran mengenai keragaman data.

Komponen utama pertama (KU 1) adalah komponen utama yang


menyumbangkan keragaman terbesar terhadap total varians. KU
2 adalah yang terbesar berikutnya, dst.
Membentuk komponen utama

Misalkan Y adalah komponen utama, yang merupakan suatu variabel


komposit, yang diperoleh dari kombinasi linier berikut:

Bobot a’i pada kombinasi linier di atas berasal dari nilai-


nilai elemen dari eigen vektor.
Jika setiap eigenvector memiliki elemen eik :

Maka komponen utama Y dibentuk dengan:


• Analisis komponen utama bisa digunakan sebagai analisis
tunggal  interpretasi dan eksplorasi data.

• Namun Analisis Komponen Utama lebih sering digunakan


sebagai input bagi analisis lainnya. Misal dalam analisis
regresi, dua situasi dimana analisis komponen utama bisa
menjadi solusi:
1) Jika banyaknya variabel independen relatif besar
dibandingkan banyaknya observasi, dan
2) Jika antar variabel independen terdapat korelasi yang
signifikan.
Asumsi dalam Analisis Komponen Utama
1. Variabel harus continous atau ordinal
2. Kecukupan sampel
3. Normalitas dan linieritas
4. Korelasi yang cukup tinggi dalam kelompok variabel.
5. No significant outliers
Contoh: Polusi udara di kota-kota di US
Data dikumpulkan dari 41 kota di Amerika Serikat untuk
meneliti determinan dari polusi. Variabel-variabelnya adalah
sebagai berikut:
• SO2: SO2 content of air in micrograms per cubic metre;
• temp: average annual temperature in degrees Fahrenheit;
• manu: number of manufacturing enterprises employing 20
or more workers;
• popul: population size (1970 census) in thousands;
• wind: average annual wind speed in miles per hour;
• precip: average annual precipitation in inches;
• predays: average number of days with precipitation per
year.
• Tujuan analisis adalah untuk menentukan variabel-
variabel apakah yang berpengaruh terhadap tingkat
polusi (dalam hal ini diukur dengan kadar SO2 di udara),
sehingga variabel-variabel tersebut bisa menjadi best
predictor.

• Namun, apakah kita bisa melakukan analisis dengan


menggunakan analisis regresi berganda?
• Masalah: Terdapat korelasi sangat tinggi antara
variabel manu dan popul
> data_awal<-read.csv("air_pollution.csv“,
row.names=1)
> round(cor(data_awal),digits=3)

SO2 temp manu popul wind precip predays


SO2 1.000 -0.434 0.645 0.494 0.095 0.054 0.370
temp -0.434 1.000 -0.190 -0.063 -0.350 0.386 -0.430
manu 0.645 -0.190 1.000 0.955 0.238 -0.032 0.132
popul 0.494 -0.063 0.955 1.000 0.213 -0.026 0.042
wind 0.095 -0.350 0.238 0.213 1.000 -0.013 0.164
precip 0.054 0.386 -0.032 -0.026 -0.013 1.000 0.496
predays 0.370 -0.430 0.132 0.042 0.164 0.496 1.000
So what???

We might, of course, deal with this problem by simply


dropping either manu or popul, but here we will consider a
possible alternative approach, and that is regressing the
SO2 levels on the principal components derived from the
six other variables in the data.
Analisis Komponen Utama hanya dilakukan pada variabel
independen, yaitu variabel-variabel human ecology (popul,
manu) dan variabel-variabel terkait iklim (temp, Wind, precip,
predays).
> data_polusi<-data_awal[,-1]

Untuk interpretasi data yang lebih menarik, maka variabel


temp kita ubah menjadi negtemp (dikali -1)  tidak harus

> data_polusi$negtemp<-(-1)*data_polusi$temp
> data_polusi$temp<-NULL
Eksplorasi data: fungsi panel.hist adalah untuk
menampilkan histogram pada diagonal utama dari matriks
scatter plot.
> panel.hist <- function(x, ...) {
+ usr <- par("usr"); on.exit(par(usr))
+ par(usr = c(usr[1:2], 0, 1.5) )
+ h <- hist(x, plot = FALSE)
+ breaks <- h$breaks; nB <- length(breaks)
+ y <- h$counts; y <- y/max(y)
+ rect(breaks[-nB], 0, breaks[-1], y, col="grey", ...)
+ }
> pairs(data_polusi, diag.panel = panel.hist,
+ pch = ".", cex = 1.5)
• A clear message from Figure above is that there is at least
one city, and probably more than one, that should be
considered an outlier.

• But for the moment we shall carry on with a principal


components analysis of the data for all 41 cities
• From the data, it seems necessary to extract the principal
components from the correlation rather than the
covariance matrix, since the six variables to be used are
on very different scales.

• Correlation matrix of the data:


> round(cor(data_polusi),digits=3)
manu popul wind precip predays negtemp
manu 1.000 0.955 0.238 -0.032 0.132 0.190
popul 0.955 1.000 0.213 -0.026 0.042 0.063
wind 0.238 0.213 1.000 -0.013 0.164 0.350
precip -0.032 -0.026 -0.013 1.000 0.496 -0.386
predays 0.132 0.042 0.164 0.496 1.000 0.430
negtemp 0.190 0.063 0.350 -0.386 0.430 1.000
R syntax for principal component analysis:
> polusi_pca <- princomp(data_polusi, cor = TRUE)
> summary(polusi_pca, loadings = TRUE)

OUTPUT:
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6
Standard deviation 1.4819456 1.2247218 1.1809526 0.8719099 0.33848287 0.185599752
Proportion of Variance 0.3660271 0.2499906 0.2324415 0.1267045 0.01909511 0.005741211
Cumulative Proportion 0.3660271 0.6160177 0.8484592 0.9751637 0.99425879 1.000000000
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6
manu -0.612 0.168 0.273 -0.137 0.102 0.703
popul -0.578 0.222 0.350 -0.695
wind -0.354 -0.131 -0.297 0.869 -0.113
precip -0.623 0.505 0.171 0.568
predays -0.238 -0.708 -0.311 -0.580
negtemp -0.330 -0.128 -0.672 -0.306 0.558 -0.136
Screeplot:
> screeplot(polusi_pca,type = "lines",col=4)
Interpretation??
• Dari bagian importance of components terlihat bahwa tiga
komponen utama pertama memiliki nilai eigen lebih besar
dari 1, dan ketiganya telah menyumbangkan sekitar 85%
keragaman terhadap total varians.
• Sehingga tiga KU tersebut sudah cukup menggambarkan
struktur varians-kovarians data dalam dimensi yang lebih
sedikit dengan resiko kita hanya kehilangan sedikit informasi
keragaman.
• Setiap komponen utama bisa kita beri “label”.
1. Komponen utama pertama bisa kita pertimbangkan
untuk kita beri nama “quality of life", dengan nilai
yang besar mengindikasikan lingkungan yang relatif
buruk.
2. Komponen utama kedua terkait dengan precip dan
predays, sehingga bisa kita beri nama komponen
“wet weather".
3. Komponen ketiga merupakan kontras antara precip
dan negtemp sehingga akan memisahkan kota yang
memiliki temperatur dan curah hujan tinggi dengan
kota yang cenderung lebih dingin namun curah hujan
rendah. Maka komponen ini bisa kita beri label
“climate type".
Tapi … ingat!!!
It must be emphasized that no mathematical method is, or
could be, designed to give physically meaningful results. If a
mathematical expression of this sort has an obvious physical
meaning, it must be attributed to a lucky change, or to the
fact that the data have a strongly marked structure that
shows up in analysis. Even in the latter case, quite small
sampling fluctuations can upset the interpretation; for
example, the first two principal components may appear in
reverse order, or may become confused altogether.

Marriott (1974)
Visualisasi Komponen Utama

• Kita akan menggunakan matriks scatterplot dari tiga


komponen utama pertama, dan setiap panelnya dalam plot
tersebut menunjukkan boxplot bivariat yang relevan.
• Langkah-langkahnya dengan R adalah sebagai berikut:
> pairs(polusi_pca$scores[,1:3], ylim = c(-6, 4), xlim = c(-6, 4),
+ panel = function(x,y, ...) {
+ text(x, y, abbreviate(row.names(data_polusi)),
+ cex = 0.6)
+ bvbox(cbind(x,y), add = TRUE)
+ })
Scatterplot matrix of the first three principal components
Interpretasi Plot

• Chicago jelas adalah outlier


• Phoenix dan Philadelphia mungkin juga adalah outlier
(perlu diuji)
• Phoenix adalah kota yang menawarkan “quality of life”
terbaik, sedangkan Buffalo adalah kota yang harus
dihindari jika kita menginginkan linggkungan yang lebih
kering (curah hujan rendah).
Kembali ke permasalahan regresi kita pada contoh.

Kita akan meregresikan tingkat SO2 pada komponen-


komponen utama yang dibentuk dari keenam variabel asli.

Pertanyaan yang paling mendasar adalah :

“How many principal components should be used as


explanatory variables in the regression?"
• Jawaban pasti atas pertanyaan ini adalah kita gunakan saja
komponen utama hasil ekstraksi dari analisis komponen
utama.

• Namun contoh kita akan menunjukkan bahwa jawaban di


atas belum tentu akan memberikan hasil yang terbaik.

• Hal itu bisa terjadi karena komponen utama dengan varians


kecil bisa saja merupakan prediktor yang baik dalam
regresi, demikian juga sebaliknya.
Untuk itu kita akan lihat bagaimana SO2 diregresikan terhadap
keenam komponen utama:

> #add variable SO2 back to data


> data_polusi$SO2<-data_awal$SO2
>
> #plot
> par(mfcol=c(3,2))
> out <- sapply(1:6, function(i) {
+ plot(data_polusi$SO2,polusi_pca$scores[,i],
+ xlab = paste("PC", i, sep = ""),
+ ylab = "Sulphur dioxide concentration",
+ asp = 2)
+ })
> #regress
> polusi_reg <- lm(SO2 ~ polusi_pca$scores,
+ data = data_polusi)
> summary(polusi_reg)

Call:
lm(formula = SO2 ~ polusi_pca$scores, data = data_polusi)

Residuals:
Min 1Q Median 3Q Max
-23.004 -8.542 -0.991 5.758 48.758

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.049 2.286 13.146 6.91e-15 ***
polusi_pca$scoresComp.1 9.942 1.542 6.446 2.28e-07 ***
polusi_pca$scoresComp.2 -2.240 1.866 -1.200 0.23845
polusi_pca$scoresComp.3 0.375 1.935 0.194 0.84752
polusi_pca$scoresComp.4 -8.549 2.622 -3.261 0.00253 **
polusi_pca$scoresComp.5 -15.176 6.753 -2.247 0.03122 *
polusi_pca$scoresComp.6 39.271 12.316 3.189 0.00306 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 14.64 on 34 degrees of freedom


Multiple R-squared: 0.6695, Adjusted R-squared: 0.6112
F-statistic: 11.48 on 6 and 34 DF, p-value: 5.419e-07
EXERCISE
Six hematology variables were measured on 51 workers
(Royston 1983):
y1 = hemoglobin concentration y4 = lymphocyte count
y2 = packed cell volume y5 = neutrophil count
y3 = white blood cell count y6 = serum lead concentration

Data can be seen on next page. Carry out a principal


component analysis on the data. Use both S and R . Which
do you think is more appropriate here? Show the percent of
variance explained. Based on the average eigenvalue or a
scree plot, decide how many components to retain. Can you
interpret the components of either S or R?
Table Hematology Data
Observation
y1 y2 y3 y4 y5 y6
Number
1 13.4 39 4 100 14 25 17
2 14.6 46 5 000 15 30 20
3 13.5 42 4 500 19 21 18
4 15 46 4 600 23 16 18
5 14.6 44 5 100 17 31 19
6 14 44 4 900 20 24 19
7 16.4 49 4 300 21 17 18
8 14.8 44 4 400 16 26 29
9 15.2 46 4 100 27 13 27
10 15.5 48 8 400 34 42 36
11 15.2 47 5 600 26 27 22
12 16.9 50 5 100 28 17 23
13 14.8 44 4 700 24 20 23
14 16.2 45 5 600 26 25 19
15 14.7 43 4 000 23 13 17
16 14.7 42 3 400 9 22 13
17 16.5 45 5 400 18 32 17
(Continued)
Observation
y1 y2 y3 y4 y5 y6
Number
18 15.4 45 6 900 28 36 24
19 15.1 45 4 600 17 29 17
20 14.2 46 4 200 14 25 28
21 15.9 46 5 200 8 34 16
22 16 47 4 700 25 14 18
23 17.4 50 8 600 37 39 17
24 14.3 43 5 500 20 31 19
25 14.8 44 4 200 15 24 29
26 14.9 43 4 300 9 32 17
27 15.5 45 5 200 16 30 20
28 14.5 43 3 900 18 18 25
29 14.4 45 6 000 17 37 23
30 14.6 44 4 700 23 21 27
31 15.3 45 7 900 43 23 23
32 14.9 45 3 400 17 15 24
33 15.8 47 6 000 23 32 21
34 14.4 44 7 700 31 39 23
35 14.7 46 3 700 11 23 23
(Continued)
Observation
y1 y2 y3 y4 y5 y6
Number
36 14.8 43 5 200 25 19 22
37 15.4 45 6 000 30 25 18
38 16.2 50 8 100 32 38 18
39 15 45 4 900 17 26 24
40 15.1 47 6 000 22 33 16
41 16 46 4 600 20 22 22
42 15.3 48 5 500 20 23 23
43 14.5 41 6 200 20 36 21
44 14.2 41 4 900 26 20 20
45 15 45 7 200 40 25 25
46 14.2 46 5 800 22 31 22
47 14.9 45 8 400 61 17 17
48 16.2 48 3 100 12 15 18
49 14.5 45 4 000 20 18 20
50 16.4 49 6 900 35 22 24
51 14.7 44 7 800 38 34 16

Anda mungkin juga menyukai