1. Pendahuluan

Analisis ini bertujuan untuk melakukan preprocessing, analisis deskriptif, dan analisis multivariat pada data SUSENAS 2019 menggunakan metode analisis faktor. Dataset mencakup informasi pengeluaran rumah tangga, konsumsi, dan variabel terkait lainnya.

2. Preprocessing Data

2.1 Muat Dataset

library(foreign)
library(dplyr)

# Baca dataset (file blok43.dbf)
susenas_raw <- read.dbf("D:/Nomor 6 - Multivariat/blok43.dbf")

# Tampilkan struktur awal dataset
str(susenas_raw)
## 'data.frame':    340032 obs. of  18 variables:
##  $ RENUM     : int  285340 285346 285337 285334 285331 285319 285322 285325 285343 285328 ...
##  $ R101      : int  11 11 11 11 11 11 11 11 11 11 ...
##  $ R102      : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R105      : int  2 2 2 2 2 2 2 2 2 2 ...
##  $ R203      : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ R301      : int  4 4 3 2 2 1 5 4 4 3 ...
##  $ FOOD      : num  1795114 2108331 1810200 1561971 1178940 ...
##  $ NONFOOD   : num  1183000 868198 1074350 790975 778892 ...
##  $ EXPEND    : num  2978114 2976530 2884550 2352946 1957832 ...
##  $ KAPITA    : num  744529 744132 961517 1176473 978916 ...
##  $ KALORI_KAP: num  2436 2451 2496 3385 3555 ...
##  $ PROTE_KAP : num  63.9 78.4 74.5 109.2 105.3 ...
##  $ LEMAK_KAP : num  49.3 48.2 45.3 82.6 59 ...
##  $ KARBO_KAP : num  397 404 419 506 612 ...
##  $ WERT      : num  35.2 36.6 35.5 35 31 ...
##  $ WEIND     : num  140.8 146.6 106.6 70 61.9 ...
##  $ WI1       : int  9976 9976 9976 9976 9976 9976 9976 9976 9976 9976 ...
##  $ WI2       : int  177146 60810 99379 141157 123223 154278 90478 206467 24522 279725 ...
##  - attr(*, "data_types")= chr [1:18] "N" "N" "N" "N" ...

2.2 Pembersihan Data

# Pilih variabel yang relevan
selected_vars <- c("FOOD", "NONFOOD", "EXPEND", "KAPITA", 
                   "KALORI_KAP", "PROTE_KAP", "LEMAK_KAP", "KARBO_KAP")
susenas_cleaned <- susenas_raw %>% select(all_of(selected_vars))

# Hapus data dengan nilai NA
susenas_cleaned <- na.omit(susenas_cleaned)

# Tampilkan ringkasan data setelah pembersihan
summary(susenas_cleaned)
##       FOOD             NONFOOD              EXPEND              KAPITA        
##  Min.   :  114857   Min.   :    38208   Min.   :   182190   Min.   :  114515  
##  1st Qu.: 1295486   1st Qu.:   857667   1st Qu.:  2277443   1st Qu.:  656004  
##  Median : 1916079   Median :  1403417   Median :  3429452   Median :  997299  
##  Mean   : 2226646   Mean   :  2142186   Mean   :  4368832   Mean   : 1308460  
##  3rd Qu.: 2785714   3rd Qu.:  2393183   3rd Qu.:  5212515   3rd Qu.: 1543848  
##  Max.   :31272857   Max.   :193333898   Max.   :201254112   Max.   :94740858  
##    KALORI_KAP     PROTE_KAP         LEMAK_KAP         KARBO_KAP      
##  Min.   :1000   Min.   :  4.166   Min.   :  2.023   Min.   :  25.66  
##  1st Qu.:1737   1st Qu.: 47.371   1st Qu.: 38.230   1st Qu.: 254.84  
##  Median :2116   Median : 59.678   Median : 51.136   Median : 312.18  
##  Mean   :2217   Mean   : 64.088   Mean   : 55.374   Mean   : 327.74  
##  3rd Qu.:2580   3rd Qu.: 75.468   3rd Qu.: 67.453   3rd Qu.: 382.61  
##  Max.   :4500   Max.   :364.666   Max.   :293.561   Max.   :1042.51

3. Analisis Deskriptif

3.1 Statistik Deskriptif

# Statistik deskriptif untuk variabel numerik
summary(susenas_cleaned)
##       FOOD             NONFOOD              EXPEND              KAPITA        
##  Min.   :  114857   Min.   :    38208   Min.   :   182190   Min.   :  114515  
##  1st Qu.: 1295486   1st Qu.:   857667   1st Qu.:  2277443   1st Qu.:  656004  
##  Median : 1916079   Median :  1403417   Median :  3429452   Median :  997299  
##  Mean   : 2226646   Mean   :  2142186   Mean   :  4368832   Mean   : 1308460  
##  3rd Qu.: 2785714   3rd Qu.:  2393183   3rd Qu.:  5212515   3rd Qu.: 1543848  
##  Max.   :31272857   Max.   :193333898   Max.   :201254112   Max.   :94740858  
##    KALORI_KAP     PROTE_KAP         LEMAK_KAP         KARBO_KAP      
##  Min.   :1000   Min.   :  4.166   Min.   :  2.023   Min.   :  25.66  
##  1st Qu.:1737   1st Qu.: 47.371   1st Qu.: 38.230   1st Qu.: 254.84  
##  Median :2116   Median : 59.678   Median : 51.136   Median : 312.18  
##  Mean   :2217   Mean   : 64.088   Mean   : 55.374   Mean   : 327.74  
##  3rd Qu.:2580   3rd Qu.: 75.468   3rd Qu.: 67.453   3rd Qu.: 382.61  
##  Max.   :4500   Max.   :364.666   Max.   :293.561   Max.   :1042.51

3.2 Visualisasi Deskriptif

library(ggplot2)

# Visualisasi distribusi pengeluaran makanan
ggplot(susenas_cleaned, aes(x = FOOD)) +
  geom_histogram(binwidth = 500000, fill = "blue", alpha = 0.7) +
  labs(title = "Distribusi Pengeluaran Makanan", x = "Pengeluaran Makanan", y = "Frekuensi") +
  theme_minimal()

Histogram di atas menggambarkan distribusi pengeluaran rumah tangga untuk kebutuhan makanan berdasarkan data SUSENAS 2019. Pada sumbu horizontal (X), tertera nilai pengeluaran makanan dalam satuan rupiah, sedangkan sumbu vertikal (Y) menunjukkan jumlah rumah tangga pada setiap rentang pengeluaran tersebut. Distribusi ini memperlihatkan pola yang cenderung miring ke kanan, di mana mayoritas rumah tangga memiliki pengeluaran makanan yang relatif rendah hingga menengah. Frekuensi rumah tangga menurun secara signifikan seiring dengan peningkatan jumlah pengeluaran, menunjukkan bahwa hanya sebagian kecil rumah tangga yang memiliki pengeluaran makanan sangat tinggi.

Pola distribusi ini mencerminkan karakteristik yang umum dalam survei sosial-ekonomi, di mana sebagian besar responden cenderung berada pada kelompok pengeluaran yang lebih rendah, sementara kelompok dengan pengeluaran tinggi biasanya berada pada rentang ekor distribusi. Hal ini dapat menunjukkan adanya kesenjangan dalam pola pengeluaran rumah tangga untuk makanan. Analisis lebih lanjut dapat dilakukan untuk mengidentifikasi faktor-faktor yang memengaruhi pengeluaran makanan, seperti ukuran rumah tangga, pendapatan, atau lokasi geografis. Diagram ini memberikan dasar deskriptif yang penting dalam memahami distribusi pengeluaran rumah tangga di Indonesia, khususnya dalam konteks kebutuhan pangan.

4. Analisis Multivariat: Analisis Faktor

4.1 Kelayakan Data untuk Analisis Faktor

library(psych)
library(corrplot)

# Matriks korelasi
cor_matrix <- cor(susenas_cleaned)
corrplot(cor_matrix, method = "circle", type = "lower", tl.cex = 0.8)

# KMO dan Bartlett's Test
kmo_result <- KMO(cor_matrix)
## Error in solve.default(r) : 
##   system is computationally singular: reciprocal condition number = 1.78784e-17
kmo_result
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = cor_matrix)
## Overall MSA =  0.5
## MSA for each item = 
##       FOOD    NONFOOD     EXPEND     KAPITA KALORI_KAP  PROTE_KAP  LEMAK_KAP 
##        0.5        0.5        0.5        0.5        0.5        0.5        0.5 
##  KARBO_KAP 
##        0.5
bartlett_test <- cortest.bartlett(cor_matrix, n = nrow(susenas_cleaned))
bartlett_test
## $chisq
## [1] 14651360
## 
## $p.value
## [1] 0
## 
## $df
## [1] 28

Diagram di atas menunjukkan matriks korelasi visual antarvariabel dalam dataset yang akan dianalisis menggunakan metode analisis faktor. Korelasi antarvariabel direpresentasikan oleh lingkaran dengan ukuran dan warna yang mencerminkan kekuatan serta arah hubungan. Warna biru tua menunjukkan korelasi positif yang kuat, sementara warna lebih terang atau lingkaran yang kecil menunjukkan korelasi yang lebih lemah. Sebaliknya, jika ada korelasi negatif, warna merah akan muncul sesuai tingkatannya.

Dari diagram tersebut, terlihat bahwa terdapat hubungan korelasi yang kuat antara beberapa variabel, seperti antara FOOD (pengeluaran makanan) dan EXPEND (total pengeluaran), serta antara KAPITA (pengeluaran per kapita) dan komponen konsumsi seperti KALORI_KAP (kalori per kapita) atau PROTE_KAP (protein per kapita). Korelasi yang kuat ini menunjukkan bahwa variabel-variabel tersebut memiliki pola hubungan linier yang signifikan, yang menjadi prasyarat penting untuk analisis faktor. Sebaliknya, beberapa variabel menunjukkan korelasi yang lebih rendah, sehingga kontribusinya dalam membentuk faktor dapat lebih kecil.

Analisis ini untuk menilai kelayakan dataset dalam penerapan analisis faktor. Korelasi yang signifikan antarvariabel menunjukkan bahwa dataset memenuhi asumsi dasar untuk melakukan ekstraksi faktor. Diagram ini memberikan gambaran awal yang mendukung penerapan analisis faktor untuk mengidentifikasi pola hubungan antarvariabel yang lebih mendalam.

4.2 Ekstraksi Faktor

# Ekstraksi faktor menggunakan metode Principal Axis Factoring (PAF)
factor_result <- fa(susenas_cleaned, nfactors = 2, rotate = "varimax", fm = "pa")
print(factor_result)
## Factor Analysis using method =  pa
## Call: fa(r = susenas_cleaned, nfactors = 2, rotate = "varimax", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##              PA1   PA2   h2    u2 com
## FOOD        0.17  0.61 0.41  0.59 1.1
## NONFOOD    -0.01  0.93 0.87  0.13 1.0
## EXPEND      0.04  1.05 1.10 -0.10 1.0
## KAPITA      0.31  0.74 0.64  0.36 1.3
## KALORI_KAP  1.05  0.09 1.10 -0.10 1.0
## PROTE_KAP   0.84  0.21 0.75  0.25 1.1
## LEMAK_KAP   0.74  0.23 0.59  0.41 1.2
## KARBO_KAP   0.78 -0.01 0.61  0.39 1.0
## 
##                        PA1  PA2
## SS loadings           3.07 2.99
## Proportion Var        0.38 0.37
## Cumulative Var        0.38 0.76
## Proportion Explained  0.51 0.49
## Cumulative Proportion 0.51 1.00
## 
## Mean item complexity =  1.1
## Test of the hypothesis that 2 factors are sufficient.
## 
## df null model =  28  with the objective function =  29.24 with Chi Square =  9942975
## df of  the model are 13  and the objective function was  26.1 
## 
## The root mean square of the residuals (RMSR) is  0.05 
## The df corrected root mean square of the residuals is  0.07 
## 
## The harmonic n.obs is  340032 with the empirical chi square  42095.07  with prob <  0 
## The total n.obs was  340032  with Likelihood Chi Square =  8875551  with prob <  0 
## 
## Tucker Lewis Index of factoring reliability =  -0.923
## RMSEA index =  1.417  and the 90 % confidence intervals are  1.415 NA
## BIC =  8875386
## Fit based upon off diagonal values = 0.99

4.3 Visualisasi Hasil Analisis Faktor

fa.diagram(factor_result, main = "Diagram Faktor")

Diagram di atas merupakan representasi visual hasil analisis faktor yang menunjukkan hubungan antara variabel-variabel observasi dengan faktor-faktor tersembunyi yang diidentifikasi, yaitu PA1 dan PA2. Setiap variabel memiliki nilai faktor loading yang merepresentasikan kekuatan hubungan antara variabel tersebut dengan faktor yang relevan.

Pada faktor PA1, variabel-variabel yang memiliki loading tinggi adalah KALORI_KAP (kalori per kapita), PROTE_KAP (protein per kapita), KARBO_KAP (karbohidrat per kapita), dan LEMAK_KAP (lemak per kapita). Hal ini menunjukkan bahwa PA1 dapat diinterpretasikan sebagai faktor yang merepresentasikan pola konsumsi gizi atau kualitas asupan makanan. Loading yang tinggi, berkisar antara 0.7 hingga 0.8, mengindikasikan hubungan yang kuat antara faktor ini dengan variabel-variabel terkait.

Pada faktor PA2, variabel yang dominan adalah EXPEND (total pengeluaran), NONFOOD (pengeluaran nonmakanan), KAPITA (pengeluaran per kapita), dan FOOD (pengeluaran makanan). Loading tertinggi ditemukan pada variabel EXPEND (1.0) dan NONFOOD (0.9), yang menunjukkan bahwa PA2 dapat diinterpretasikan sebagai faktor yang mencerminkan tingkat pengeluaran rumah tangga secara umum. Variabel KAPITA dan FOOD juga berkontribusi pada faktor ini, meskipun dengan loading yang lebih rendah, yaitu 0.7 dan 0.6.

Hasil ini mengindikasikan bahwa dua faktor utama dapat menjelaskan variasi dalam dataset, di mana faktor pertama lebih terkait dengan komposisi gizi konsumsi, sedangkan faktor kedua mencerminkan struktur pengeluaran rumah tangga. Analisis ini memberikan wawasan tentang bagaimana variabel-variabel observasi dikelompokkan dan memberikan dasar untuk interpretasi lebih lanjut terhadap pola konsumsi dan pengeluaran rumah tangga.

4.4 Interpretasi Faktor

# Loadings faktor
factor_result$loadings
## 
## Loadings:
##            PA1    PA2   
## FOOD        0.168  0.615
## NONFOOD            0.932
## EXPEND             1.048
## KAPITA      0.309  0.735
## KALORI_KAP  1.047       
## PROTE_KAP   0.839  0.206
## LEMAK_KAP   0.736  0.229
## KARBO_KAP   0.780       
## 
##                  PA1   PA2
## SS loadings    3.074 2.989
## Proportion Var 0.384 0.374
## Cumulative Var 0.384 0.758
# Variabel utama dalam setiap faktor
apply(factor_result$loadings, 2, function(x) {
  names(sort(abs(x), decreasing = TRUE))[1:3]
})
##      PA1          PA2      
## [1,] "KALORI_KAP" "EXPEND" 
## [2,] "PROTE_KAP"  "NONFOOD"
## [3,] "KARBO_KAP"  "KAPITA"

Interpretasi faktor berdasarkan output yang disajikan menunjukkan bagaimana variabel-variabel observasi memuat atau berkorelasi dengan faktor-faktor tersembunyi, yaitu PA1 dan PA2, serta seberapa besar kontribusi faktor-faktor tersebut dalam menjelaskan variabilitas data.

Pada faktor PA1, variabel yang memiliki loading tertinggi adalah KALORI_KAP (1.047), diikuti oleh PROTE_KAP (0.839), KARBO_KAP (0.780), dan LEMAK_KAP (0.736). Hal ini menunjukkan bahwa PA1 merepresentasikan faktor yang berhubungan erat dengan aspek asupan gizi, khususnya jumlah kalori, protein, karbohidrat, dan lemak yang dikonsumsi per kapita. Faktor ini mencerminkan pola konsumsi gizi dalam rumah tangga.

Sementara itu, pada faktor PA2, variabel dengan loading tertinggi adalah EXPEND (1.048) dan NONFOOD (0.932), diikuti oleh KAPITA (0.735) dan FOOD (0.615). Faktor ini dapat diinterpretasikan sebagai faktor yang menggambarkan pengeluaran rumah tangga, baik untuk kebutuhan nonmakanan maupun makanan, serta pengeluaran per kapita. Loading tinggi pada variabel-variabel ini menunjukkan bahwa PA2 lebih berfokus pada aspek finansial rumah tangga.

SS loadings mengindikasikan jumlah kontribusi variabel terhadap setiap faktor. Untuk PA1, nilai SS loadings adalah 3.074, sedangkan untuk PA2, nilainya adalah 2.989. Ini menunjukkan bahwa kedua faktor tersebut memiliki kontribusi yang hampir setara dalam menjelaskan total variansi data. Proportion Var untuk PA1 adalah 0.384 (38.4%) dan untuk PA2 adalah 0.374 (37.4%), dengan total Cumulative Var sebesar 75.8%. Hal ini berarti kedua faktor ini bersama-sama menjelaskan 75.8% dari total variabilitas dalam data.

Interpretasi ini diperkuat oleh daftar variabel dominan pada masing-masing faktor. Pada PA1, variabel dominan adalah KALORI_KAP, PROTE_KAP, dan KARBO_KAP, sedangkan pada PA2, variabel dominan adalah EXPEND, NONFOOD, dan KAPITA. Dengan demikian, analisis faktor ini menunjukkan pemisahan yang jelas antara pola konsumsi gizi dan pola pengeluaran rumah tangga, yang masing-masing direpresentasikan oleh faktor PA1 dan PA2.

5. Kesimpulan

Analisis faktor yang dilakukan berhasil mengidentifikasi dua faktor utama yang secara signifikan menjelaskan struktur data dalam SUSENAS 2019. Faktor pertama (PA1) merepresentasikan pola konsumsi gizi masyarakat, yang ditunjukkan oleh loading tinggi pada variabel asupan kalori, protein, karbohidrat, dan lemak per kapita. Faktor kedua (PA2) mencerminkan aspek pengeluaran rumah tangga, baik untuk kebutuhan makanan maupun nonmakanan, serta pengeluaran per kapita. Kedua faktor ini bersama-sama menjelaskan 75,8% dari total variansi data, dengan kontribusi yang hampir seimbang. Korelasi antarvariabel menunjukkan adanya hubungan yang kuat antara variabel dalam setiap faktor, mengonfirmasi bahwa pengelompokan variabel sesuai dengan dimensi yang diwakilinya. Hasil analisis ini memberikan wawasan penting mengenai pola konsumsi dan pengeluaran masyarakat, yang dapat menjadi dasar pengambilan kebijakan terkait kebutuhan gizi dan alokasi pengeluaran rumah tangga di Indonesia.