1 PENDAHULUAN

1.1 Latar Belakang

Kajian mengenai perilaku menabung telah menjadi salah satu fokus utama dalam ekonomi makro, khususnya dalam memahami bagaimana faktor demografis dan ekonomi memengaruhi tingkat tabungan suatu negara. Salah satu teori paling berpengaruh dalam menjelaskan pola tabungan adalah Life-Cycle Hypothesis (Modigliani & Brumberg, 1954). Menurut teori ini, individu merencanakan konsumsi dan tabungan mereka berdasarkan fase kehidupan, sehingga komposisi usia populasi menjadi determinan penting dalam variasi tingkat tabungan antarnegara. Dataset LifeCycleSavings (Belsley, Kuh, & Welsch, 1980), memuat data dari 50 negara terkait tingkat tabungan (sr), komposisi umur penduduk (pop15 dan pop75), pendapatan per kapita (dpi), serta pertumbuhan pendapatan (ddpi). Variabel-variabel tersebut merepresentasikan dua kelompok konsep utama: demografi dan kondisi ekonomi. Karena variabel-variabel dalam dataset ini mencerminkan dua blok yang saling berkaitan secara teoretis, dataset ini sangat sesuai untuk analisis hubungan multivariat seperti Canonical Correlation Analysis (CCA), yang bertujuan mengukur hubungan linear antara dua set variabel (Hotelling, 1936). Dengan demikian, LifeCycleSavings menjadi contoh ideal untuk menguji hubungan antara struktur demografi dan indikator ekonomi sesuai kerangka teori LCH.

1.2 Rumusan Masalah

Berdasarkan latar belakang mengenai hubungan antara faktor demografis dan faktor ekonomi dalam memengaruhi tingkat tabungan menurut kerangka Life-Cycle Hypothesis (LCH), maka rumusan masalah dalam penelitian ini adalah: 1. Apakah terdapat hubungan yang signifikan antara variabel demografi (pop15 dan pop75) dengan variabel ekonomi (sr, dpi, dan ddpi) pada dataset LifeCycleSavings? 2. Seberapa kuat hubungan linear antara kedua kelompok variabel tersebut ketika dianalisis menggunakan Canonical Correlation Analysis (CCA)? 3. Variabel demografi dan variabel ekonomi manakah yang memberikan kontribusi terbesar dalam membentuk variat kanonik pada analisis CCA?

1.3 Tujuan Penelitian

Sesuai dengan rumusan masalah di atas, penelitian ini bertujuan untuk: 1. Menganalisis keberadaan hubungan yang signifikan antara kelompok variabel demografi dan kelompok variabel ekonomi pada dataset LifeCycleSavings. 2. Mengetahui besarnya korelasi kanonik antara set variabel demografi dan set variabel ekonomi melalui penerapan Canonical Correlation Analysis (CCA). 3. Mengidentifikasi variabel-variabel yang memiliki kontribusi dominan dalam pembentukan variat kanonik, baik pada blok demografi maupun pada blok ekonomi.

2 SOURCE CODE

2.1 Library

> library(knitr)
> library(rmarkdown)
> library(prettydoc)

2.2 Analisis Korelasi Kanonik (CCA)

2.2.1 Load Dataset

> data(LifeCycleSavings)
> head(LifeCycleSavings)
             sr pop15 pop75     dpi ddpi
Australia 11.43 29.35  2.87 2329.68 2.87
Austria   12.07 23.32  4.41 1507.99 3.93
Belgium   13.17 23.80  4.43 2108.47 3.82
Bolivia    5.75 41.89  1.67  189.13 0.22
Brazil    12.88 42.19  0.83  728.47 4.56
Canada     8.79 31.72  2.85 2982.88 2.43

2.2.2 Bentuk 2 Set Variabel

> X <- LifeCycleSavings[, c("pop15", "pop75")]
> Y <- LifeCycleSavings[, c("sr", "dpi", "ddpi")]

Perintah ini digunakan untuk membagi dataset menjadi dua kelompok variabel. Objek X berisi variabel demografi (pop15 dan pop75), sedangkan objek Y berisi variabel ekonomi (sr, dpi, dan ddpi). Pembagian ini dilakukan untuk keperluan analisis korelasi kanonik yang membutuhkan dua set variabel terpisah.

2.2.3 Melakukan Analisis Korelasi Kanonik

> library(CCA)
> cca_result <- cc(X, Y)

Perintah library(CCA) digunakan untuk memanggil paket CCA yang menyediakan fungsi untuk melakukan analisis korelasi kanonik. Perintah cca_result <- cc(X, Y) menjalankan analisis korelasi kanonik antara dua set variabel, yaitu X (variabel demografi) dan Y (variabel ekonomi), serta menyimpan hasil analisis tersebut ke dalam objek cca_result.

2.2.4 Hasil Analisis Korelasi Kanonik

> cca_result$cor
[1] 0.8247966 0.3652762

Perintah ini digunakan untuk menampilkan nilai korelasi kanonik yang dihasilkan dari analisis CCA. Nilai tersebut menunjukkan kekuatan hubungan linear antara kombinasi variabel pada set X dan set Y untuk setiap pasangan variat kanonik yang terbentuk.

2.2.5 Koefisien Pembobot

> cca_result$xcoef   
             [,1]       [,2]
pop15  0.06377599 -0.2535544
pop75 -0.34053260 -1.8221811
> cca_result$ycoef
              [,1]          [,2]
sr   -0.0592971550  0.2336554912
dpi  -0.0009151786 -0.0005311762
ddpi -0.0291942000 -0.0858752749

Perintah tersebutdigunakan untuk menampilkan koefisien kanonik yang membentuk variat kanonik dari set variabel X dan menampilkan koefisien kanonik untuk set variabel Y. Koefisien ini menunjukkan besarnya kontribusi masing-masing variabel dalam membentuk kombinasi linear (variat kanonik) pada analisis CCA.

2.2.6 Loadings Kanonik

> library(CCP)
> loadings_X <- cor(X, cca_result$scores$xscores)
> loadings_Y <- cor(Y, cca_result$scores$yscores)
> loadings_X
            [,1]       [,2]
pop15  0.9829821 -0.1837015
pop75 -0.9697929 -0.2439299
> loadings_Y
           [,1]       [,2]
sr   -0.4910379  0.8557760
dpi  -0.9545172 -0.2637266
ddpi -0.0473377  0.1407737

Perintah library(CCP) digunakan untuk memanggil paket CCP yang mendukung perhitungan statistik tambahan dalam analisis CCA. Perintah loadings_X menghitung canonical loadings untuk set variabel X, yaitu korelasi antara variabel asli X dengan variat kanonik X. Perintah loadings_Y melakukan hal yang sama untuk set variabel Y, yaitu korelasi antara variabel asli Y dan variat kanonik Y. Nilai loadings membantu menentukan variabel mana yang paling berkontribusi dalam setiap variat kanonik.

2.2.7 Uji Signifikansi Korelasi Kanonik

> N <- nrow(LifeCycleSavings)   
> p <- ncol(X)                  
> q <- ncol(Y) 
> rho <- cca_result$cor
> p.asym(rho, N, p, q, tstat = "Wilks")
Wilks' Lambda, using F-approximation (Rao's F):
              stat   approx df1 df2      p.value
1 to 2:  0.2770526 13.49772   6  90 7.300349e-11
2 to 2:  0.8665733  3.54132   2  46 3.711268e-02

Perintah N <- nrow(LifeCycleSavings) menyimpan jumlah observasi dalam dataset ke variabel N. Perintah p <- ncol(X) dan q <- ncol(Y) masing-masing menyimpan jumlah variabel pada set X dan Y, yang diperlukan untuk pengujian signifikansi. Fungsi p.asym(rho, N, p, q, tstat = “Wilks”) digunakan untuk melakukan uji signifikansi terhadap korelasi kanonik menggunakan statistik Wilks Lambda. Uji ini menentukan apakah pasangan variat kanonik yang terbentuk memiliki hubungan yang signifikan secara statistik antara kedua set variabel.

2.2.8 Visualisasi Plot

> par(mfrow = c(1, 1))
> 
> # Membuat vektor nama variabel
> var_names_X <- colnames(X)
> var_names_Y <- colnames(Y)
> 
> # Menyiapkan area plot
> plot(c(loadings_X[,1], loadings_Y[,1]),
+      c(loadings_X[,2], loadings_Y[,2]),
+      xlim = c(min(loadings_X[,1], loadings_Y[,1]) - 0.1,
+               max(loadings_X[,1], loadings_Y[,1]) + 0.1),
+      ylim = c(min(loadings_X[,2], loadings_Y[,2]) - 0.1,
+               max(loadings_X[,2], loadings_Y[,2]) + 0.1),
+      xlab = "Canonical Loading Variat 1",
+      ylab = "Canonical Loading Variat 2",
+      main = "Biplot Canonical Loadings",
+      type = "n")
> 
> # Tambahkan garis sumbu
> abline(h = 0, v = 0, lty = 2)
> 
> # Variabel X (biru)
> arrows(0, 0, loadings_X[,1], loadings_X[,2], col = "blue", length = 0.1)
> text(loadings_X[,1], loadings_X[,2],
+      labels = rownames(loadings_X), col = "blue", pos = 3)
> 
> # Variabel Y (merah)
> arrows(0, 0, loadings_Y[,1], loadings_Y[,2], col = "red", length = 0.1)
> text(loadings_Y[,1], loadings_Y[,2],
+      labels = rownames(loadings_Y), col = "red", pos = 3)

Perintah tersebut digunakan untuk membuat biplot canonical loadings dari hasil Canonical Correlation Analysis (CCA), yaitu visualisasi hubungan antara variabel-variabel pada dua set data: X dan Y.

3 HASIL DAN PEMBAHASAN

3.1 Hasil Analisis

3.1.1 Pembentukan Set Variabel X dan Y

Pada penelitian ini, variabel dibagi menjadi dua kelompok sesuai dengan tujuan analisis Canonical Correlation Analysis (CCA): • Set X (Demografi): pop15, pop75 • Set Y (Ekonomi): sr, dpi, ddpi Pembagian ini konsisten dengan kerangka teori Life-Cycle Hypothesis yang menekankan hubungan antara struktur demografi dan perilaku ekonomi.

3.1.2 Hasil Korelasi Kanonik

> cca_result$cor
[1] 0.8247966 0.3652762

Pasangan variat kanonik pertama (ρ = 0.825) memiliki hubungan kuat dan menjadi fokus utama analisis. Pasangan variat kedua (ρ = 0.365) memiliki hubungan lemah sehingga tidak terlalu relevan dalam menjelaskan keterkaitan antarset variabel. Hasil ini menunjukkan bahwa struktur usia penduduk lebih berpengaruh dalam menjelaskan variasi indikator ekonomi dibandingkan variat kedua.

3.1.3 Koefisien Kanonik

> cca_result$xcoef   
             [,1]       [,2]
pop15  0.06377599 -0.2535544
pop75 -0.34053260 -1.8221811
> cca_result$ycoef
              [,1]          [,2]
sr   -0.0592971550  0.2336554912
dpi  -0.0009151786 -0.0005311762
ddpi -0.0291942000 -0.0858752749

Variat kanonik 1 untuk set X didominasi oleh pop75 (penduduk usia ≥ 75 tahun), karena koefisiennya lebih besar secara absolut. Tanda negatif menunjukkan bahwa variat kanonik X1 bergerak ke arah nilai lebih rendah pada negara dengan populasi lansia yang besar. Variat kanonik 2 juga sangat dipengaruhi oleh pop75, jauh lebih kuat dibanding pop15. Kedua variabel berkontribusi negatif, namun pop75 mendominasi variat kanonik kedua. Variat kanonik yang terbentuk dari variabel demografi lebih banyak mencerminkan pengaruh proporsi penduduk usia tua, khususnya pada variat kedua yang menunjukkan bobot sangat besar. Artinya, perbedaan antar negara dalam faktor ekonomi kemungkinan besar lebih banyak dijelaskan oleh struktur usia tua dibanding usia muda. Semua variabel ekonomi berkontribusi kecil pada variat Y1. sr dan ddpi sedikit lebih dominan dibanding dpi, namun tetap kecil. Variat kanonik 1 untuk set Y tidak memiliki satu variabel yang benar-benar dominan berdasarkan koefisien. Variat kanonik 2 didominasi oleh sr (saving rate), dengan kontribusi yang jauh lebih besar dibanding variabel lainnya. ddpi juga memberi sedikit kontribusi, tetapi jauh lebih lemah. dpi praktis tidak berpengaruh pada variat ini.

3.1.4 Uji Signifikansi Korelasi Kanonik

> N <- nrow(LifeCycleSavings)   
> p <- ncol(X)                  
> q <- ncol(Y) 
> rho <- cca_result$cor
> p.asym(rho, N, p, q, tstat = "Wilks")
Wilks' Lambda, using F-approximation (Rao's F):
              stat   approx df1 df2      p.value
1 to 2:  0.2770526 13.49772   6  90 7.300349e-11
2 to 2:  0.8665733  3.54132   2  46 3.711268e-02

Pasangan variat kanonik pertama menjelaskan hubungan yang nyata dan signifikan antara variabel demografi (pop15, pop75) dan variabel ekonomi (sr, dpi, ddpi).Ini mendukung hasil korelasi kanonik pertama (ρ = 0.8248) yang sangat tinggi Walaupun signifikan pada tingkat 5%, variat kanonik kedua tidak menjelaskan hubungan yang kuat, sesuai dengan korelasi kanoniknya yang rendah (ρ=0.3653). Signifikansi ini sering dianggap sebagai efek kecil yang kurang substantif secara praktis. Analisis CCA menunjukkan bahwa struktur umur penduduk memiliki hubungan signifikan dan kuat terhadap indikator ekonomi pada variat kanonik pertama, sedangkan variat kedua hanya memberikan kontribusi minimal.

3.1.5 Biplot Canonical Loadings

> par(mfrow = c(1, 1))
> 
> # Membuat vektor nama variabel
> var_names_X <- colnames(X)
> var_names_Y <- colnames(Y)
> 
> # Menyiapkan area plot
> plot(c(loadings_X[,1], loadings_Y[,1]),
+      c(loadings_X[,2], loadings_Y[,2]),
+      xlim = c(min(loadings_X[,1], loadings_Y[,1]) - 0.1,
+               max(loadings_X[,1], loadings_Y[,1]) + 0.1),
+      ylim = c(min(loadings_X[,2], loadings_Y[,2]) - 0.1,
+               max(loadings_X[,2], loadings_Y[,2]) + 0.1),
+      xlab = "Canonical Loading Variat 1",
+      ylab = "Canonical Loading Variat 2",
+      main = "Biplot Canonical Loadings",
+      type = "n")
> 
> # Tambahkan garis sumbu
> abline(h = 0, v = 0, lty = 2)
> 
> # Variabel X (biru)
> arrows(0, 0, loadings_X[,1], loadings_X[,2], col = "blue", length = 0.1)
> text(loadings_X[,1], loadings_X[,2],
+      labels = rownames(loadings_X), col = "blue", pos = 3)
> 
> # Variabel Y (merah)
> arrows(0, 0, loadings_Y[,1], loadings_Y[,2], col = "red", length = 0.1)
> text(loadings_Y[,1], loadings_Y[,2],
+      labels = rownames(loadings_Y), col = "red", pos = 3)

Biplot canonical loadings menunjukkan bahwa variat kanonik pertama yang paling informatif didominasi oleh pop15 dan pop75 yang berkontribusi besar namun berlawanan arah. Dimensi ini terutama menggambarkan perbedaan struktur umur negara: negara dengan proporsi penduduk muda tinggi berada pada sisi berbeda dari negara dengan proporsi penduduk tua tinggi. Pada sisi ekonomi, dpi dan sr searah dengan pop75 sehingga menunjukkan hubungan negatif dengan pop15 dan hubungan positif dengan proporsi penduduk lanjut usia. Variabel ddpi hampir tidak berkontribusi. Variat kedua memiliki peran jauh lebih kecil dan terutama dipengaruhi oleh sr. Secara keseluruhan, struktur umur penduduk menjadi faktor utama yang menghubungkan karakteristik demografi dengan indikator ekonomi seperti pendapatan per kapita dan tingkat tabungan.

4 KESIMPULAN

Analisis CCA pada dataset LifeCycleSavings menunjukkan adanya hubungan linear yang signifikan antara variabel demografi (pop15, pop75) dan variabel ekonomi (sr, dpi, ddpi), dengan variat kanonik pertama sebagai dimensi paling informatif. Pop15 menjadi kontributor utama dari sisi demografi, sedangkan sr dan ddpi paling berpengaruh dari sisi ekonomi. Temuan ini menegaskan bahwa struktur umur penduduk, terutama proporsi usia muda, memiliki peran penting dalam menjelaskan variasi tingkat tabungan dan pertumbuhan pendapatan. Secara keseluruhan, hasil CCA mendukung Life-Cycle Hypothesis dan memberikan bukti empiris mengenai keterkaitan kuat antara dinamika demografi dan indikator ekonomi.

5 DAFTAR PUSTAKA

Belsley, D. A., Kuh, E., & Welsch, R. E. (1980). Regression Diagnostics; Identifying Influence Data and Source of Collinearity. Hotelling. (1936). Relations Between Two Sets of Variates. Modigliani, F., & Brumberg, R. H. (1954). Utility Analysis and the Consumption Function:. Utility Analysis and the Consumption Function: An Interpretation of Cross-Section Data. R. (1970). Rdatasets. Retrieved from Github: https://vincentarelbundock.github.io/Rdatasets/csv/datasets/LifeCycleSavings.csv