1 PENDAHULUAN

1.1 Latar Belakang

Di tengah meningkatnya persaingan global, analisis terhadap perilaku konsumen menjadi aspek utama bagi suatu perusahaan dalam menyusun kebijakan pemasaran yang kompetitif. Perilaku konsumen terbentuk dari interaksi kompleks antara faktor psikologis, sosial, budaya, dan individu, termasuk karakteristik sosial demografis, seperti tingkat pendidikan, status pernikahan, pendapatan, dan kelompok umur [1]. Analisis terhadap faktor-faktor ini mampu memberikan wawasan yang bernilai dalam proses segmentasi pasar, penentuan posisi produk, dan strategi komunikasi pemasaran yang lebih efektif [1]. Namun, menganalisis perilaku konsumen tidak cukup dilakukan dengan satu variabel dependen secara terpisah. Pada praktiknya, berbagai aspek pengeluaran konsumen saling berkaitan dan dipengaruhi oleh faktor yang sama secara bersamaan. Oleh karena itu, pendekatan statistik multivariat seperti Multivariate Analysis of Variance (MANOVA) dan Multivariate Analysis of Covariance (MANCOVA) menjadi solusi yang relevan dalam menangani kompleksitas tersebut [2]. MANOVA memungkinkan evaluasi terhadap perbedaan gabungan beberapa variabel dependen berdasarkan variabel bebas kategorikal, sementara MANCOVA menambahkan kontrol terhadap variabel kovariat yang memengaruhi hasil analisis, sehingga menghasilkan pemahaman yang lebih menyeluruh [3].

Penelitian ini menggunakan dataset Customer Personality Analysis yang diperoleh dari situs Kaggle yang memuat informasi sosial demografis dan data pengeluaran konsumen pada enam kategori produk, seperti anggur, buah-buahan, ikan, makanan manis, emas, dan daging. Variabel independen yang dianalisis mencakup tingkat pendidikan pelanggan (Education), kelompok umur (Age Group), dan status pernikahan pelanggan (Marital_Status), sedangkan variabel dependen berupa total pengeluaran pada masing-masing kategori produk tersebut. Untuk meningkatkan akurasi hasil analisis, juga digunakan variabel kovariat yang terdiri dari pendapatan tahunan pelanggan (Income), jumlah anak kecil dalam rumah tangga (Kidhome), jumlah remaja dalam rumah tangga (Teenhome), jumlah hari sejak pembelian terakhir (Recency). Dengan menerapkan pendekatan MANOVA dan MANCOVA, penelitian ini bertujuan untuk mengevaluasi secara komprehensif pengaruh karakteristik sosial demografis terhadap perilaku konsumsi dan memberikan rekomendasi berbasis data untuk mendukung strategi pemasaran yang lebih adaptif.

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, rumusan masalah dalam penelitian ini adalah sebagai berikut:

  1. Apakah terdapat perbedaan yang signifikan dalam perilaku konsumsi konsumen berdasarkan karakteristik sosial demografis, seperti tingkat pendidikan pelanggan, status pernikahan pelanggan, dan kelompok umur?
  2. Apakah variabel kovariat memiliki pengaruh terhadap hubungan antara karakteristik sosial demografis dan perilaku konsumsi konsumen?
  3. Bagaimana pengaruh karakteristik sosial demografis terhadap total pengeluaran konsumen pada enam kategori produk secara simultan?

1.3 Tujuan

Tujuan dari penelitian ini adalah sebagai berikut:

  1. Menganalisis perbedaan perilaku konsumsi konsumen berdasarkan tingkat pendidikan pelanggan, status pernikahan pelanggan, dan kelompok umur dengan menggunakan pendekatan MANOVA.
  2. Mengidentifikasi pengaruh variabel kovariat terhadap hubungan antara karakteristik sosial demografis dan perilaku konsumsi konsumen dengan menggunakan pendekatan MANCOVA.
  3. Mengevaluasi pengaruh karakteristik sosial demografis terhadap total pengeluaran konsumen pada enam kategori produk secara simultan.

2 METODOLOGI PENELITIAN

2.1 Data

Data yang digunakan dalam analisis ini bersumber dari Kaggle dengan tautan berikut: https://www.kaggle.com/datasets/imakash3011/customer-personality-analysis. Dataset ini dirancang untuk memahami karakteristik pelanggan dan perilaku konsumsi mereka, serta digunakan untuk menganalisis hubungan antara faktor sosial demografis dengan kebiasaan pembelian produk dan respons terhadap promosi.

2.2 Variabel

Untuk keperluan analisis MANOVA dan MANCOVA, Variabel yang digunakan dalam analisis ini dibagi menjadi tiga kelompok utama, yaitu variabel bebas, variabel terikat, dan variabel kovariat.

Variabel Bebas (Independen / Faktor):

  • Education: Tingkat pendidikan pelanggan (contoh: Graduation, PhD, Master)
  • Marital_Status: Status pernikahan pelanggan (contoh: Married, Single, Divorced)
  • AgeGroup: Kelompok usia pelanggan berdasarkan variabel Age

Variabel Terikat (Dependen):

  • MntWines: Total pengeluaran untuk produk wine
  • MntFruits: Total pengeluaran untuk buah-buahan
  • MntMeatProducts: Total pengeluaran untuk produk daging
  • MntFishProducts: Total pengeluaran untuk produk ikan
  • MntSweetProducts: Total pengeluaran untuk makanan manis
  • MntGoldProds: Total pengeluaran untuk produk emas

Variabel Kovariat:

  • Income: Pendapatan tahunan pelanggan
  • Kidhome: Jumlah anak kecil dalam rumah tangga
  • Teenhome: Jumlah remaja dalam rumah tangga
  • Recency: Jumlah hari sejak pembelian terakhir

3 PEMBAHASAN

3.1 Persiapan Data

Load dataset dan pengecekan struktur data

data <- read.table("marketing_campaign.csv", sep = "\t", header = TRUE, stringsAsFactors = FALSE)
str(data)  
## 'data.frame':    2240 obs. of  29 variables:
##  $ ID                 : int  5524 2174 4141 6182 5324 7446 965 6177 4855 5899 ...
##  $ Year_Birth         : int  1957 1954 1965 1984 1981 1967 1971 1985 1974 1950 ...
##  $ Education          : chr  "Graduation" "Graduation" "Graduation" "Graduation" ...
##  $ Marital_Status     : chr  "Single" "Single" "Together" "Together" ...
##  $ Income             : int  58138 46344 71613 26646 58293 62513 55635 33454 30351 5648 ...
##  $ Kidhome            : int  0 1 0 1 1 0 0 1 1 1 ...
##  $ Teenhome           : int  0 1 0 0 0 1 1 0 0 1 ...
##  $ Dt_Customer        : chr  "04-09-2012" "08-03-2014" "21-08-2013" "10-02-2014" ...
##  $ Recency            : int  58 38 26 26 94 16 34 32 19 68 ...
##  $ MntWines           : int  635 11 426 11 173 520 235 76 14 28 ...
##  $ MntFruits          : int  88 1 49 4 43 42 65 10 0 0 ...
##  $ MntMeatProducts    : int  546 6 127 20 118 98 164 56 24 6 ...
##  $ MntFishProducts    : int  172 2 111 10 46 0 50 3 3 1 ...
##  $ MntSweetProducts   : int  88 1 21 3 27 42 49 1 3 1 ...
##  $ MntGoldProds       : int  88 6 42 5 15 14 27 23 2 13 ...
##  $ NumDealsPurchases  : int  3 2 1 2 5 2 4 2 1 1 ...
##  $ NumWebPurchases    : int  8 1 8 2 5 6 7 4 3 1 ...
##  $ NumCatalogPurchases: int  10 1 2 0 3 4 3 0 0 0 ...
##  $ NumStorePurchases  : int  4 2 10 4 6 10 7 4 2 0 ...
##  $ NumWebVisitsMonth  : int  7 5 4 6 5 6 6 8 9 20 ...
##  $ AcceptedCmp3       : int  0 0 0 0 0 0 0 0 0 1 ...
##  $ AcceptedCmp4       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ AcceptedCmp5       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ AcceptedCmp1       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ AcceptedCmp2       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Complain           : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Z_CostContact      : int  3 3 3 3 3 3 3 3 3 3 ...
##  $ Z_Revenue          : int  11 11 11 11 11 11 11 11 11 11 ...
##  $ Response           : int  1 0 0 0 0 0 0 0 1 0 ...

3.2 Preprocessing Awal

3.2.1 Missing Value

Cek jumlah missing values per kolom

colSums(is.na(data))
##                  ID          Year_Birth           Education      Marital_Status 
##                   0                   0                   0                   0 
##              Income             Kidhome            Teenhome         Dt_Customer 
##                  24                   0                   0                   0 
##             Recency            MntWines           MntFruits     MntMeatProducts 
##                   0                   0                   0                   0 
##     MntFishProducts    MntSweetProducts        MntGoldProds   NumDealsPurchases 
##                   0                   0                   0                   0 
##     NumWebPurchases NumCatalogPurchases   NumStorePurchases   NumWebVisitsMonth 
##                   0                   0                   0                   0 
##        AcceptedCmp3        AcceptedCmp4        AcceptedCmp5        AcceptedCmp1 
##                   0                   0                   0                   0 
##        AcceptedCmp2            Complain       Z_CostContact           Z_Revenue 
##                   0                   0                   0                   0 
##            Response 
##                   0

Handling missing value imputasi dengan nilai median

data$Income[is.na(data$Income)] <- median(data$Income, na.rm = TRUE)

3.2.2 Perbaikan Tipe Data

Cek kolom bertipe karakter (diasumsikan kategorikal)

cat_cols <- names(data)[sapply(data, is.character)]

Konversi ke faktor (label encoding)

for (col in cat_cols) {
  data[[col]] <- as.factor(data[[col]])
}

Ubah kolom tanggal ke tipe Date dengan format yang sesuai (dd-mm-yyyy)

data$Dt_Customer <- as.Date(data$Dt_Customer, format = "%d-%m-%Y")

3.2.3 Buat Feature Baru

Buat kolom umur dari Year_Birth

data$Age <- 2025 - data$Year_Birth

Buat kategori umur AgeGroup

data$AgeGroup <- cut(data$Age,
                     breaks = c(0, 20, 40, 60, 150),
                     labels = c("<20", "20-39", "40-59", "60+"),
                     right = FALSE)

data$AgeGroup <- as.factor(data$AgeGroup)

Masukkan AgeGroup ke dataframe df

data <- data.frame(
  Education = data$Education,
  Marital_Status = data$Marital_Status,
  MntWines = data$MntWines,
  MntFruits = data$MntFruits,
  MntMeatProducts = data$MntMeatProducts,
  MntFishProducts = data$MntFishProducts,
  MntSweetProducts = data$MntSweetProducts,
  MntGoldProds = data$MntGoldProds,
  Income = data$Income,
  Kidhome = data$Kidhome,
  Teenhome = data$Teenhome,
  AgeGroup = data$AgeGroup     
)

3.2.4 Cek ulang struktur data

str(data)
## 'data.frame':    2240 obs. of  12 variables:
##  $ Education       : Factor w/ 5 levels "2n Cycle","Basic",..: 3 3 3 3 5 4 3 5 5 5 ...
##  $ Marital_Status  : Factor w/ 8 levels "Absurd","Alone",..: 5 5 6 6 4 6 3 4 6 6 ...
##  $ MntWines        : int  635 11 426 11 173 520 235 76 14 28 ...
##  $ MntFruits       : int  88 1 49 4 43 42 65 10 0 0 ...
##  $ MntMeatProducts : int  546 6 127 20 118 98 164 56 24 6 ...
##  $ MntFishProducts : int  172 2 111 10 46 0 50 3 3 1 ...
##  $ MntSweetProducts: int  88 1 21 3 27 42 49 1 3 1 ...
##  $ MntGoldProds    : int  88 6 42 5 15 14 27 23 2 13 ...
##  $ Income          : num  58138 46344 71613 26646 58293 ...
##  $ Kidhome         : int  0 1 0 1 1 0 0 1 1 1 ...
##  $ Teenhome        : int  0 1 0 0 0 1 1 0 0 1 ...
##  $ AgeGroup        : Factor w/ 4 levels "<20","20-39",..: 4 4 4 3 3 3 3 3 3 4 ...
summary(data) 
##       Education     Marital_Status    MntWines         MntFruits    
##  2n Cycle  : 203   Married :864    Min.   :   0.00   Min.   :  0.0  
##  Basic     :  54   Together:580    1st Qu.:  23.75   1st Qu.:  1.0  
##  Graduation:1127   Single  :480    Median : 173.50   Median :  8.0  
##  Master    : 370   Divorced:232    Mean   : 303.94   Mean   : 26.3  
##  PhD       : 486   Widow   : 77    3rd Qu.: 504.25   3rd Qu.: 33.0  
##                    Alone   :  3    Max.   :1493.00   Max.   :199.0  
##                    (Other) :  4                                     
##  MntMeatProducts  MntFishProducts  MntSweetProducts  MntGoldProds   
##  Min.   :   0.0   Min.   :  0.00   Min.   :  0.00   Min.   :  0.00  
##  1st Qu.:  16.0   1st Qu.:  3.00   1st Qu.:  1.00   1st Qu.:  9.00  
##  Median :  67.0   Median : 12.00   Median :  8.00   Median : 24.00  
##  Mean   : 166.9   Mean   : 37.53   Mean   : 27.06   Mean   : 44.02  
##  3rd Qu.: 232.0   3rd Qu.: 50.00   3rd Qu.: 33.00   3rd Qu.: 56.00  
##  Max.   :1725.0   Max.   :259.00   Max.   :263.00   Max.   :362.00  
##                                                                     
##      Income          Kidhome          Teenhome       AgeGroup   
##  Min.   :  1730   Min.   :0.0000   Min.   :0.0000   <20  :   0  
##  1st Qu.: 35539   1st Qu.:0.0000   1st Qu.:0.0000   20-39: 189  
##  Median : 51382   Median :0.0000   Median :0.0000   40-59:1191  
##  Mean   : 52238   Mean   :0.4442   Mean   :0.5062   60+  : 860  
##  3rd Qu.: 68290   3rd Qu.:1.0000   3rd Qu.:1.0000               
##  Max.   :666666   Max.   :2.0000   Max.   :2.0000               
## 

3.2.5 Statistik deskriptif dasar

library(psych)
describe(data[, c("Income", "Kidhome", "Teenhome", 
                  "MntWines", "MntFruits", "MntMeatProducts", 
                  "MntFishProducts", "MntSweetProducts", "MntGoldProds")])
##                  vars    n     mean       sd  median  trimmed      mad  min
## Income              1 2240 52237.98 25037.96 51381.5 51758.12 24327.98 1730
## Kidhome             2 2240     0.44     0.54     0.0     0.40     0.00    0
## Teenhome            3 2240     0.51     0.54     0.0     0.48     0.00    0
## MntWines            4 2240   303.94   336.60   173.5   248.99   243.89    0
## MntFruits           5 2240    26.30    39.77     8.0    16.98    11.86    0
## MntMeatProducts     6 2240   166.95   225.72    67.0   119.33    87.47    0
## MntFishProducts     7 2240    37.53    54.63    12.0    25.08    17.79    0
## MntSweetProducts    8 2240    27.06    41.28     8.0    17.35    11.86    0
## MntGoldProds        9 2240    44.02    52.17    24.0    33.41    26.69    0
##                     max  range skew kurtosis     se
## Income           666666 664936 6.79   160.89 529.02
## Kidhome               2      2 0.63    -0.78   0.01
## Teenhome              2      2 0.41    -0.99   0.01
## MntWines           1493   1493 1.17     0.59   7.11
## MntFruits           199    199 2.10     4.03   0.84
## MntMeatProducts    1725   1725 2.08     5.49   4.77
## MntFishProducts     259    259 1.92     3.08   1.15
## MntSweetProducts    263    263 2.13     4.36   0.87
## MntGoldProds        362    362 1.88     3.54   1.10

3.3 Exploratory Data Analysis

Histogram untuk kolom numerik

par(mfrow = c(2, 4))  # Tampilkan 6 histogram dalam grid 2x3
hist(data$MntWines, main = "Histogram of MntWines", xlab = "MntWines", col = "skyblue", border = "white")
hist(data$MntMeatProducts, main = "Histogram of MntMeatProducts", xlab = "MntMeatProducts", col = "orange", border = "white")
hist(data$MntSweetProducts, main = "Histogram of MntSweetProducts", xlab = "MntSweetProducts", col = "red", border = "white")
hist(data$MntGoldProds, main = "Histogram of MntGoldProds", xlab = "MntGoldProds", col = "cyan", border = "white")
hist(data$MntFruits, main = "Histogram of MntFruits", xlab = "MntFruits", col = "green", border = "white")
hist(data$MntFishProducts, main = "Histogram of MntFishProducts", xlab = "MntFishProducts", col = "purple", border = "white")
hist(data$Income, main = "Histogram of Income", xlab = "Income", col = "pink", border = "white")

Boxplot untuk kolom numerik

library(ggplot2)
library(reshape2)

# install.packages("reshape2")
# install.packages("ggplot2")

library(reshape2)  
library(ggplot2)              

# Ambil hanya kolom numerik
numerik_cols <- data[, c("Income", "Kidhome", "Teenhome", 
                         "MntWines", "MntFruits", "MntMeatProducts", 
                         "MntFishProducts", "MntSweetProducts", "MntGoldProds")]

melted <- melt(numerik_cols)
ggplot(melted, aes(x = variable, y = value, fill = variable)) +
  geom_boxplot() +
  scale_y_log10() +
  labs(title = "Boxplot of Numerical Features (Log Scale)", 
       x = "Variable", y = "Log(Value)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

3.4 Preprocessing Lanjutan

3.4.1 Deteksi Outlier

Pilih fitur numerik yang relevan untuk deteksi outlier

numeric_cols <- c("Income", "Kidhome", "Teenhome", 
                  "MntWines", "MntFruits", "MntMeatProducts", "MntFishProducts",
                  "MntSweetProducts", "MntGoldProds")

Fungsi deteksi outlier berbasis IQR

detect_outliers <- function(x) {
  Q1 <- quantile(x, 0.25, na.rm = TRUE)
  Q3 <- quantile(x, 0.75, na.rm = TRUE)
  IQR <- Q3 - Q1
  lower <- Q1 - 1.5 * IQR
  upper <- Q3 + 1.5 * IQR
  which(x < lower | x > upper)
}

Deteksi outlier untuk setiap kolom numerik

outlier_indices <- lapply(data[numeric_cols], detect_outliers)

Hitung jumlah outlier per fitur

outlier_count <- sapply(outlier_indices, length)
print(outlier_count)
##           Income          Kidhome         Teenhome         MntWines 
##                8                0                0               35 
##        MntFruits  MntMeatProducts  MntFishProducts MntSweetProducts 
##              227              175              223              248 
##     MntGoldProds 
##              207

Fungsi log transform dengan penyesuaian nilai ≤ 0

log_transform_safe <- function(x) {
  min_val <- min(x, na.rm = TRUE)
  if (min_val <= 0) {
    # Tambahkan nilai absolut minimum + 1 supaya semua nilai > 0
    x <- x + abs(min_val) + 1
  }
  log(x)
}

3.4.2 Terapkan Log Transform

data_log_transformed <- data
for (col in numeric_cols) {
  data_log_transformed[[col]] <- log_transform_safe(data[[col]])
}

Cek distribusi atau outlier setelah log transform

outlier_indices_log <- lapply(data_log_transformed[numeric_cols], detect_outliers)
outlier_count_log <- sapply(outlier_indices_log, length)
print("Jumlah outlier setelah log transform:")
## [1] "Jumlah outlier setelah log transform:"
print(outlier_count_log)
##           Income          Kidhome         Teenhome         MntWines 
##               40                0                0                0 
##        MntFruits  MntMeatProducts  MntFishProducts MntSweetProducts 
##                0                0                0                0 
##     MntGoldProds 
##                0

3.5 Uji Asumsi Dasar MANOVA/MANCOVA

3.5.1 Uji Normalitas

Definisikan num_vars terlebih dahulu

num_vars <- c("Income", "Kidhome", "Teenhome", 
              "MntWines", "MntFruits", "MntMeatProducts",
              "MntFishProducts", "MntSweetProducts", "MntGoldProds")

Lakukan uji normalitas

normality_results_log <- sapply(data_log_transformed[num_vars], function(x) {
  if (length(x) >= 3 && length(unique(x)) > 2) {
    if (length(x) > 5000) {
      x <- sample(x, 5000)
    }
    return(shapiro.test(x)$p.value)
  } else {
    return(NA)
  }
})

print(normality_results_log)
##           Income          Kidhome         Teenhome         MntWines 
##     2.015689e-32     1.231115e-54     7.382212e-54     5.377087e-31 
##        MntFruits  MntMeatProducts  MntFishProducts MntSweetProducts 
##     2.196041e-28     2.731461e-21     4.420650e-28     5.110524e-29 
##     MntGoldProds 
##     1.175310e-16

Uji normalitas dilakukan terhadap seluruh variabel dependen dalam analisis MANOVA dan MANCOVA. Karena sebagian besar data bersifat skewed, transformasi logaritmik diterapkan terlebih dahulu. Namun, hasil uji menunjukkan bahwa semua variabel tetap memiliki nilai p jauh di bawah 0,05, menandakan data tidak terdistribusi normal secara statistik. Oleh karena itu, interpretasi hasil dilakukan dengan kehati-hatian, serta mempertimbangkan pendekatan alternatif yang lebih robust bila diperlukan.

3.5.2 Uji Homogenitas Matriks Varians-Kovarians

# install.packages("biotools")   
library(biotools)

dependent_vars <- c("MntWines", "MntFruits", "MntMeatProducts",
                    "MntFishProducts", "MntSweetProducts", "MntGoldProds")

Pastikan variabel grouping adalah faktor

data_log_transformed$Education <- as.factor(data_log_transformed$Education)

Buat matriks dependen

dependent_matrix <- data_log_transformed[, dependent_vars]

Jalankan Box’s M Test

boxM_result <- boxM(dependent_matrix, data_log_transformed$Education)
print(boxM_result)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  dependent_matrix
## Chi-Sq (approx.) = 339.72, df = 84, p-value < 2.2e-16

Box’s M Test dilakukan untuk menguji kesamaan matriks kovarians antar kelompok. Hasil uji menunjukkan nilai Chi-Square = 339,72, df = 84, dan p-value < 2.2e-16. Nilai p yang sangat kecil ini mengindikasikan bahwa asumsi homogenitas tidak terpenuhi.

3.5.3 Korelasi antarvariabel Dependen

# install.packages("corrplot")  
library(corrplot)

Ambil variabel dependen perilaku konsumsi

dv_vars <- c("MntWines", "MntFruits", "MntMeatProducts",
             "MntFishProducts", "MntSweetProducts", "MntGoldProds")

Gunakan data hasil log transform untuk konsistensi

dv_data <- data_log_transformed[, dv_vars]

Hitung korelasi Pearson

cor_matrix <- cor(dv_data)

Tampilkan matriks korelasi

print(cor_matrix)
##                   MntWines MntFruits MntMeatProducts MntFishProducts
## MntWines         1.0000000 0.5027674       0.8264097       0.4956897
## MntFruits        0.5027674 1.0000000       0.7045287       0.6936561
## MntMeatProducts  0.8264097 0.7045287       1.0000000       0.7049351
## MntFishProducts  0.4956897 0.6936561       0.7049351       1.0000000
## MntSweetProducts 0.4902359 0.6866388       0.6856924       0.6897318
## MntGoldProds     0.5567173 0.5515802       0.6080135       0.5412240
##                  MntSweetProducts MntGoldProds
## MntWines                0.4902359    0.5567173
## MntFruits               0.6866388    0.5515802
## MntMeatProducts         0.6856924    0.6080135
## MntFishProducts         0.6897318    0.5412240
## MntSweetProducts        1.0000000    0.5240729
## MntGoldProds            0.5240729    1.0000000

Visualisasi korelasi

corrplot(cor_matrix, method = "color", type = "upper",
         tl.cex = 0.8, number.cex = 0.7, addCoef.col = "black",
         diag = FALSE)

Analisis korelasi menunjukkan bahwa seluruh variabel dependen berkorelasi positif satu sama lain, dengan koefisien antara 0,49 hingga 0,83. Korelasi tertinggi ditemukan antara MntWines dan MntMeatProducts (r = 0,83), sedangkan terendah antara MntWines dan MntSweetProducts (r = 0,49). Hasil ini memenuhi asumsi MANOVA/MANCOVA bahwa variabel dependen harus memiliki korelasi sedang hingga tinggi.

3.5.4 Linearitas antara Kovariat dan Variabel Dependen

Kovariat

covariates <- c("Income", "Kidhome", "Teenhome")

Variabel dependen

dv_vars <- c("MntWines", "MntFruits", "MntMeatProducts",
             "MntFishProducts", "MntSweetProducts", "MntGoldProds")

Data yang digunakan

cor_data <- data_log_transformed[, c(covariates, dv_vars)]

Korelasi Pearson

cor_matrix_cov_dv <- cor(cor_data)

Ambil bagian kovariat vs dependen

cor_matrix_cov_dv[covariates, dv_vars]
##            MntWines  MntFruits MntMeatProducts MntFishProducts MntSweetProducts
## Income    0.7827610  0.4730737       0.7170735       0.4572887        0.4593276
## Kidhome  -0.5640790 -0.4455195      -0.5434948      -0.4393250       -0.4359372
## Teenhome  0.1649012 -0.2032533      -0.1222880      -0.2326663       -0.1985208
##          MntGoldProds
## Income      0.4073237
## Kidhome    -0.4072604
## Teenhome   -0.0223326

Uji linearitas bertujuan memastikan adanya hubungan linier antara kovariat (Income, Kidhome, Teenhome) dan variabel dependen. Hasil korelasi menunjukkan bahwa sebagian besar kovariat memiliki korelasi signifikan, terutama Income yang berkorelasi positif sedang hingga tinggi terhadap seluruh variabel dependen. Hal ini menunjukkan terpenuhinya asumsi linearitas untuk analisis MANCOVA.

3.5.5 Tidak Ada Multikolinearitas antara Kovariat

# install.packages("car")  
library(car)

Ambil bagian kovariat vs dependen

cor_matrix_cov_dv[covariates, dv_vars]
##            MntWines  MntFruits MntMeatProducts MntFishProducts MntSweetProducts
## Income    0.7827610  0.4730737       0.7170735       0.4572887        0.4593276
## Kidhome  -0.5640790 -0.4455195      -0.5434948      -0.4393250       -0.4359372
## Teenhome  0.1649012 -0.2032533      -0.1222880      -0.2326663       -0.1985208
##          MntGoldProds
## Income      0.4073237
## Kidhome    -0.4072604
## Teenhome   -0.0223326
vif_model <- lm(Income ~ Kidhome + Teenhome, data = data_log_transformed)
vif(vif_model)
##  Kidhome Teenhome 
## 1.001905 1.001905

Multikolinearitas diuji dengan menghitung Variance Inflation Factor (VIF) untuk kovariat. Nilai VIF untuk Kidhome dan Teenhome masing-masing adalah 1.002 dan 1.002, yang menunjukkan tidak adanya multikolinearitas. Oleh karena itu, ketiga kovariat dapat digunakan bersama-sama dalam MANCOVA.

3.6 MANOVA

# install.packages("car")      
library(car)

Variabel dependen

dv_vars <- c("MntWines", "MntFruits", "MntMeatProducts", "MntFishProducts", "MntSweetProducts", "MntGoldProds")

Model MANOVA

manova_model <- manova(cbind(MntWines, MntFruits, MntMeatProducts,
                             MntFishProducts, MntSweetProducts, MntGoldProds) ~ 
                       Education + Marital_Status + AgeGroup,
                       data = data_log_transformed)

Uji multivariat dengan Pillai’s Trace

summary(manova_model, test = "Pillai")
##                  Df  Pillai approx F num Df den Df  Pr(>F)    
## Education         4 0.34574   35.070     24   8896 < 2e-16 ***
## Marital_Status    7 0.02630    1.400     42  13356 0.04457 *  
## AgeGroup          2 0.07185   13.801     12   4444 < 2e-16 ***
## Residuals      2226                                           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretasi hasil

  1. Education (Tingkat pendidikan) Nilai Pillai sebesar 0.34574 menunjukkan bahwa sekitar 34,6% variasi total dari gabungan variabel dependen dapat dijelaskan oleh faktor pendidikan. Nilai F sebesar 35.070 dengan p < 2e-16 menunjukkan hasil yang sangat signifikan secara statistik. Hal ini mengindikasikan adanya perbedaan yang sangat signifikan dalam pola pengeluaran antar kelompok pendidikan.
  2. Marital_Status (Status pernikahan) Nilai Pillai sebesar 0.02630 menunjukkan kontribusi yang relatif kecil terhadap variasi gabungan. Namun, nilai F = 1.400 dan p = 0.04457 masih berada dalam batas signifikansi 5%, sehingga status pernikahan tetap memberikan pengaruh yang signifikan, meskipun tidak sekuat faktor lainnya.
  3. AgeGroup (Kelompok usia) Nilai Pillai sebesar 0.07185 menunjukkan bahwa kelompok usia menjelaskan sekitar 7,2% variasi gabungan variabel dependen. Nilai F sebesar 13.801 dengan p < 2e-16 menunjukkan pengaruh yang sangat signifikan secara statistik. Artinya, terdapat perbedaan yang kuat dalam pengeluaran konsumen berdasarkan kelompok usia. Ketiga faktor independen (Education, Marital_Status, dan AgeGroup) berpengaruh signifikan terhadap pola pengeluaran konsumen secara multivariat. Di antara ketiganya, faktor Education dan AgeGroup memberikan kontribusi yang paling kuat terhadap perbedaan pola konsumsi.

3.7 MANCOVA

Model MANCOVA

mancova_model <- manova(cbind(MntWines, MntFruits, MntMeatProducts,
                              MntFishProducts, MntSweetProducts, MntGoldProds) ~
                          Education + Marital_Status + AgeGroup +
                          Income + Kidhome + Teenhome,
                          data = data_log_transformed)

Ringkasan hasil MANCOVA dengan uji Pillai’s Trace

summary(mancova_model, test = "Pillai")
##                  Df  Pillai approx F num Df den Df    Pr(>F)    
## Education         4 0.46444    48.63     24   8884 < 2.2e-16 ***
## Marital_Status    7 0.03398     1.81     42  13338  0.001058 ** 
## AgeGroup          2 0.13195    26.12     12   4438 < 2.2e-16 ***
## Income            1 0.63704   648.81      6   2218 < 2.2e-16 ***
## Kidhome           1 0.19248    88.12      6   2218 < 2.2e-16 ***
## Teenhome          1 0.21435   100.86      6   2218 < 2.2e-16 ***
## Residuals      2223                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretasi hasil

  1. Education (Tingkat pendidikan) Nilai Pillai sebesar 0.46444 menunjukkan bahwa sekitar 46,4% variasi gabungan dari variabel dependen dapat dijelaskan oleh perbedaan tingkat pendidikan. Nilai F sebesar 48.63 dan p < 2.2e-16 menunjukkan hasil yang sangat signifikan secara statistik. Hal ini mengindikasikan bahwa terdapat perbedaan yang sangat kuat dalam pola perilaku atau hasil variabel dependen berdasarkan tingkat pendidikan.
  2. Marital_Status (Status pernikahan) Nilai Pillai sebesar 0.03998 mencerminkan kontribusi yang relatif kecil terhadap variasi total. Meskipun demikian, nilai F = 1.81 dan p = 0.001058 masih menunjukkan bahwa perbedaan status pernikahan memberikan pengaruh yang signifikan secara statistik. Namun, dibandingkan faktor lainnya, pengaruh dari status pernikahan cenderung lebih lemah.
  3. AgeGroup (Kelompok usia) Nilai Pillai sebesar 0.13195 berarti kelompok usia menyumbang sekitar 13,2% dari variasi gabungan dalam variabel dependen. Nilai F = 26.12 dan p < 2.2e-16 menunjukkan bahwa perbedaan kelompok usia memberikan pengaruh yang sangat signifikan, yang berarti pola perilaku atau hasil yang diukur berbeda antar kelompok usia.
  4. Income (Pendapatan) Dengan Pillai sebesar 0.63704, pendapatan menjelaskan sekitar 63,7% dari variasi gabungan — tertinggi di antara semua variabel. Nilai F = 648.81 dan p < 2.2e-16 menunjukkan bahwa pendapatan merupakan faktor yang paling berpengaruh dan sangat signifikan secara statistik dalam menjelaskan perbedaan antar kelompok.
  5. Kidhome (Jumlah anak di rumah) Nilai Pillai sebesar 0.19248 menunjukkan bahwa sekitar 19,2% variasi gabungan dapat dijelaskan oleh jumlah anak kecil di rumah. Nilai F sebesar 88.12 dengan p < 2.2e-16 menunjukkan bahwa faktor ini berpengaruh signifikan terhadap pola dari variabel-variabel dependen.
  6. Teenhome (Jumlah remaja di rumah) Nilai Pillai sebesar 0.21435 menunjukkan kontribusi sekitar 21,4% terhadap variasi total, dan nilai F sebesar 100.86 dengan p < 2.2e-16 mengindikasikan pengaruh yang sangat signifikan secara statistik dari jumlah remaja di rumah terhadap variabel-variabel yang diamati. Seluruh variabel independen yang diuji melalui analisis MANCOVA berpengaruh signifikan secara multivariat terhadap variabel dependen, dengan tingkat signifikansi sangat tinggi (p < 0.001) untuk hampir semua variabel. Faktor Income memberikan kontribusi terbesar terhadap variasi gabungan, diikuti oleh Education, Teenhome, dan Kidhome. Sementara itu, Marital_Status menunjukkan pengaruh yang signifikan tetapi paling kecil di antara variabel lainnya.

3.8 PERCEPTUAL MAPPING (BIPLOT)

library(candisc)
# Education
cda_edu <- candisc(manova_model, term = "Education")

# Marital Status
cda_mstat <- candisc(manova_model, term = "Marital_Status")

# Age Group
cda_AgeGroup <- candisc(manova_model, term = "AgeGroup")

Visualisasi CDA: Education

plot(cda_edu,
     main = "Canonical Discriminant Analysis - Education",
     col = c("red", "blue", "green", "purple", "orange"),
     pch = 19)
## Vector scale factor set to 2.298

Visualisasi ini menggambarkan hasil Canonical Discriminant Analysis (CDA) berdasarkan tingkat pendidikan dan paling informatif karena komponen kanonik pertama (Can1) sebesar 91,2% terhadap total variasi tertinggi dibandingkan dengan plot lainnya. Pemisahan antar kelompok pendidikan, seperti PhD, Master, dan 2nCycle cukup jelas yang menandakan bahwa tingkat pendidikan memiliki daya diskriminasi yang kuat terhadap pola konsumsi produk. Arah vektor produk, seperti MintMeatProducts, MintSweetProducts, dan MintWines menunjukkan adanya keterkaitan dengan kelompok pendidikan tertentu yang mengindikasikan bahwa individu dengan latar belakang pendidikan yang berbeda cenderung memiliki preferensi konsumsi yang berbeda.

Visualisasi CDA: Marital Status

plot(cda_mstat,
     main = "Canonical Discriminant Analysis - Marital Status",
     col = c("red", "blue", "green"),
     pch = 19)
## Vector scale factor set to 12.068

Plot ini merepresentasikan hasil Canonical Discriminant Analysis (CDA) berdasarkan status pernikahan, komponen kanonik pertama (Can1) berkontribusi sebesar 54,8% terhadap total variasi, sementara kanonik kedua (Can2) sebesar 20%, sehingga dua komponen ini memberikan gambaran yang cukup signifikan terhadap struktur data antar kelompok. Namun, distribusi kelompok, seperti Married, Together, dan Alone menunjukkan adanya tumpang tindih yang besar yang mengindikasikan bahwa status pernikahan bukan faktor yang kuat dalam membedakan pola konsumsi antar kelompok. Beberapa vektor produk, seperti MintWines dan MintGoldProds masih menunjukkan arah kontribusi tertentu yang dapat diinterpretasikan bahwa terdapat kecenderungan preferensi terhadap produk-produk tersebut pada kelompok tertentu, meskipun pengaruhnya tidak sebesar tingkat pendidikan.

Visualisasi CDA: Age Group

plot(cda_AgeGroup,
     main = "Canonical Discriminant Analysis - Age Group",
     col = c("red", "blue", "green", "purple"),
     pch = 19)
## Vector scale factor set to 2.899

Plot ini menunjukkan hasil pemetaan konsumen berdasarkan kategori kelompok umur menggunakan Canonical Discriminant Analysis (CDA). Komponen kanonik pertama (Can1) mempresentasikan 84,3% variasi, sedangkan komponen kedua (Can2) 15,7%. Dengan demikian, dua komponen ini secara kumulatif mempresentasikan hampir seluruh informasi utama yang relevan dalam data. Meskipun demikian, penyebaran individu berdasarkan kelompok umur saling tumpang tindih, mengindikasikan bahwa usia bukan faktor diskriminatif yang kuat dalam membedakan pola konsumsi antar kelompok. Namun, terdapat kecenderungan preferensi terhadap produk-produk tertentu, seperti MintWines, MintGoldProds, dan MintSweetProducts yang menunjukkan kontribusi arah yang kuat pada sisi negatif Can1. Hal ini menunjukkan bahwa kelompok umur tertentu lebih menyukai jenis produk tersebut.

3.9 EVALUASI

3.9.1 Hasil ANOVA Univariat terhadap Variabel Dependen pada MANOVA

summary.aov(manova_model)
##  Response MntWines :
##                  Df Sum Sq Mean Sq F value Pr(>F)    
## Education         4  909.3 227.330  83.033 <2e-16 ***
## Marital_Status    7   24.3   3.477   1.270 0.2612    
## AgeGroup          2  259.7 129.825  47.419 <2e-16 ***
## Residuals      2226 6094.4   2.738                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntFruits :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  167.1  41.776 17.5807 3.243e-14 ***
## Marital_Status    7   19.9   2.848  1.1985       0.3    
## AgeGroup          2   45.4  22.675  9.5425 7.472e-05 ***
## Residuals      2226 5289.5   2.376                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntMeatProducts :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  250.3  62.566 27.2306 < 2.2e-16 ***
## Marital_Status    7   16.0   2.283  0.9937    0.4338    
## AgeGroup          2   76.3  38.129 16.5951 7.015e-08 ***
## Residuals      2226 5114.5   2.298                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntFishProducts :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  214.1  53.532 20.3845 < 2.2e-16 ***
## Marital_Status    7   34.1   4.877  1.8571   0.07268 .  
## AgeGroup          2   56.0  27.982 10.6554  2.48e-05 ***
## Residuals      2226 5845.7   2.626                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntSweetProducts :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  190.8  47.707 19.5386 8.098e-16 ***
## Marital_Status    7    5.1   0.728  0.2983    0.9547    
## AgeGroup          2   59.0  29.495 12.0797 6.055e-06 ***
## Residuals      2226 5435.2   2.442                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntGoldProds :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  119.5 29.8826 18.8433 3.002e-15 ***
## Marital_Status    7   30.6  4.3708  2.7561  0.007493 ** 
## AgeGroup          2   35.4 17.7159 11.1713 1.488e-05 ***
## Residuals      2226 3530.1  1.5858                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil Analisis ANOVA Univariat terhadap Variabel Dependen pada MANOVA

Setelah diperoleh hasil MANOVA yang signifikan secara simultan, dilakukan analisis lebih lanjut menggunakan ANOVA univariat untuk mengevaluasi pengaruh masing-masing variabel independen terhadap tiap variabel dependen secara terpisah.

  1. MntWines (Produk wine) Pendidikan menunjukkan pengaruh yang sangat signifikan terhadap pengeluaran produk wine dengan nilai F(4, 2226) = 30.63 dan p < 2e-16. Sebaliknya, status pernikahan tidak memberikan pengaruh yang signifikan terhadap variabel ini (F(7, 2226) = 1.27, p = 0.2612). Usia juga berpengaruh sangat signifikan dengan F(2, 2226) = 47.42 dan p < 2e-16. Hal ini mengindikasikan bahwa tingkat pendidikan dan kelompok usia konsumen memengaruhi pengeluaran untuk produk wine, sedangkan status pernikahan tidak memberikan dampak yang berarti.
  2. MntFruits (Produk buah) Pengeluaran untuk produk buah dipengaruhi secara signifikan oleh pendidikan, status pernikahan, dan usia. Pendidikan menunjukkan pengaruh signifikan dengan F = 17.58 dan p < 3.243e-14. Status pernikahan juga berpengaruh signifikan (F = 3.31, p = 0.00329), demikian pula usia yang menunjukkan pengaruh sangat signifikan dengan F = 22.68 dan p < 7.472e-06. Hal ini memperlihatkan bahwa ketiga variabel tersebut secara bersama-sama memengaruhi perilaku pembelian produk buah.
  3. MntMeatProducts (Produk daging) Pendidikan dan usia menunjukkan pengaruh signifikan terhadap pengeluaran produk daging. Pendidikan memiliki pengaruh yang sangat signifikan dengan F = 23.00 dan p < 2.2e-16, sementara usia juga berpengaruh signifikan dengan F = 11.59 dan p < 9.901e-06. Namun, status pernikahan tidak memberikan pengaruh signifikan terhadap variabel ini (F = 0.99, p = 0.4338).
  4. MntFishProducts (Produk ikan) Pengeluaran untuk produk ikan lebih dipengaruhi oleh pendidikan dan usia. Pendidikan menunjukkan pengaruh yang sangat signifikan dengan F = 20.38 dan p < 2e-16, sedangkan usia juga sangat signifikan dengan F = 19.65 dan p < 2.48e-05. Status pernikahan tidak memberikan pengaruh signifikan terhadap pengeluaran produk ikan (F = 1.86, p = 0.07268).
  5. MntSweetProducts (Produk manis) Hanya pendidikan yang memiliki pengaruh signifikan terhadap pengeluaran produk manis dengan nilai F = 19.54 dan p < 8.098e-16. Status pernikahan tidak memberikan pengaruh signifikan (F = 0.79, p = 0.5947), sedangkan usia mendekati signifikan dengan F = 2.97 dan p = 0.0556, tetapi hasil tersebut tidak cukup kuat untuk dinyatakan berpengaruh pada taraf signifikansi 5%.
  6. MntGoldProds (Produk emas) Ketiga variabel independen, yaitu pendidikan, status pernikahan, dan usia, memberikan pengaruh signifikan terhadap pengeluaran untuk produk berharga tinggi seperti emas. Pendidikan berpengaruh signifikan dengan F = 28.88 dan p < 3.002e-15, status pernikahan juga signifikan dengan F = 3.47 dan p = 0.0014, dan usia menunjukkan pengaruh yang sangat signifikan dengan F = 11.71 dan p < 1.488e-05. Temuan ini menegaskan pentingnya faktor sosial-demografis dalam menentukan perilaku pembelian produk eksklusif. Berdasarkan hasil analisis ANOVA univariat terhadap variabel dependen pada MANOVA tersebut, dapat disimpulkan bahwa pendidikan (Education) secara konsisten memiliki pengaruh signifikan terhadap seluruh kategori produk yang diteliti. Usia (AgeGroup) juga berpengaruh signifikan terhadap hampir semua kategori produk, kecuali produk manis di mana pengaruh usia tidak cukup kuat untuk dinyatakan signifikan. Sementara itu, status pernikahan (Marital_Status) hanya berpengaruh signifikan terhadap pengeluaran untuk produk buah dan produk berharga tinggi seperti emas, dan tidak berpengaruh pada kategori produk lainnya. Implikasi dari hasil ini adalah bahwa strategi pemasaran yang efektif hendaknya mempertimbangkan segmentasi berdasarkan pendidikan dan usia konsumen, terutama untuk produk dengan nilai atau persepsi prestise yang tinggi.

3.9.2 Hasil ANOVA Univariat terhadap Variabel Dependen pada MANCOVA

summary.aov(mancova_model)
##  Response MntWines :
##                  Df Sum Sq Mean Sq   F value    Pr(>F)    
## Education         4  909.3   227.3  223.3548 < 2.2e-16 ***
## Marital_Status    7   24.3     3.5    3.4164  0.001229 ** 
## AgeGroup          2  259.7   129.8  127.5553 < 2.2e-16 ***
## Income            1 3434.9  3434.9 3374.8694 < 2.2e-16 ***
## Kidhome           1  374.0   374.0  367.4190 < 2.2e-16 ***
## Teenhome          1   23.0    23.0   22.5689 2.157e-06 ***
## Residuals      2223 2262.6     1.0                        
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntFruits :
##                  Df Sum Sq Mean Sq F value    Pr(>F)    
## Education         4  167.1   41.78  28.179 < 2.2e-16 ***
## Marital_Status    7   19.9    2.85   1.921   0.06249 .  
## AgeGroup          2   45.4   22.68  15.295 2.528e-07 ***
## Income            1 1404.6 1404.60 947.435 < 2.2e-16 ***
## Kidhome           1  338.7  338.67 228.443 < 2.2e-16 ***
## Teenhome          1  250.6  250.61 169.042 < 2.2e-16 ***
## Residuals      2223 3295.7    1.48                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntMeatProducts :
##                  Df  Sum Sq Mean Sq   F value  Pr(>F)    
## Education         4  250.26   62.57   67.0908 < 2e-16 ***
## Marital_Status    7   15.98    2.28    2.4484 0.01681 *  
## AgeGroup          2   76.26   38.13   40.8872 < 2e-16 ***
## Income            1 2536.32 2536.32 2719.7675 < 2e-16 ***
## Kidhome           1  323.52  323.52  346.9153 < 2e-16 ***
## Teenhome          1  181.61  181.61  194.7454 < 2e-16 ***
## Residuals      2223 2073.06    0.93                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntFishProducts :
##                  Df Sum Sq Mean Sq  F value    Pr(>F)    
## Education         4  214.1   53.53  32.6148 < 2.2e-16 ***
## Marital_Status    7   34.1    4.88   2.9713  0.004198 ** 
## AgeGroup          2   56.0   27.98  17.0485 4.489e-08 ***
## Income            1 1461.9 1461.86 890.6573 < 2.2e-16 ***
## Kidhome           1  375.1  375.08 228.5236 < 2.2e-16 ***
## Teenhome          1  360.1  360.07 219.3748 < 2.2e-16 ***
## Residuals      2223 3648.7    1.64                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntSweetProducts :
##                  Df Sum Sq Mean Sq  F value    Pr(>F)    
## Education         4  190.8   47.71  30.5233 < 2.2e-16 ***
## Marital_Status    7    5.1    0.73   0.4659    0.8597    
## AgeGroup          2   59.0   29.49  18.8709 7.469e-09 ***
## Income            1 1391.8 1391.80 890.4826 < 2.2e-16 ***
## Kidhome           1  346.2  346.16 221.4726 < 2.2e-16 ***
## Teenhome          1  222.7  222.74 142.5079 < 2.2e-16 ***
## Residuals      2223 3474.5    1.56                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response MntGoldProds :
##                  Df  Sum Sq Mean Sq  F value    Pr(>F)    
## Education         4  119.53   29.88  25.0147 < 2.2e-16 ***
## Marital_Status    7   30.60    4.37   3.6588 0.0006201 ***
## AgeGroup          2   35.43   17.72  14.8300     4e-07 ***
## Income            1  667.65  667.65 558.8900 < 2.2e-16 ***
## Kidhome           1  203.43  203.43 170.2872 < 2.2e-16 ***
## Teenhome          1    3.42    3.42   2.8646 0.0906882 .  
## Residuals      2223 2655.60    1.19                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil Analisis ANOVA Univariat terhadap Variabel Dependen pada MANCOVA

Berdasarkan hasil MANCOVA dan analisis ANOVA univariat terhadap enam variabel dependen pengeluaran produk serta enam variabel independen (Education, Marital_Status, AgeGroup, Income, Kidhome, Teenhome, diperoleh beberapa temuan penting.

  1. MntWines (Produk wine) Pendidikan menunjukkan pengaruh yang sangat signifikan terhadap pengeluaran produk wine dengan nilai F(4, 2226) = 223.35 dan p < 2e-16. Usia juga berpengaruh sangat signifikan dengan F(2, 2226) = 127.55 dan p < 2e-16. Pendapatan, jumlah anak kecil, dan jumlah remaja semuanya berpengaruh sangat signifikan, dengan nilai F masing-masing sebesar 3374.87, 46.95, dan 22.57 (p < 2e-16). Status pernikahan juga signifikan (F = 3.41, p = 0.0012), namun kontribusinya lebih rendah. Temuan ini menunjukkan bahwa seluruh faktor yang diuji secara signifikan memengaruhi pengeluaran untuk produk wine.
  2. MntFruits (Produk buah) Pengeluaran untuk produk buah dipengaruhi secara signifikan oleh pendidikan (F = 28.18, p < 2.2e-16), usia (F = 15.92, p = 2.528e-07), pendapatan (F = 228.44, p < 2.2e-16), jumlah anak kecil (F = 228.44, p < 2.2e-16), dan jumlah remaja (F = 169.04, p < 2.2e-16). Status pernikahan (F = 1.92, p = 0.0625) tidak memberikan pengaruh signifikan. Ini menunjukkan bahwa faktor ekonomi dan struktur rumah tangga memainkan peran penting dalam konsumsi buah, lebih besar daripada status sosial.
  3. MntMeatProducts (Produk daging) Seluruh variabel independen yang diuji memiliki pengaruh signifikan terhadap pengeluaran produk daging. Pendidikan (F = 67.09), usia (F = 20.41), pendapatan (F = 2710.77), jumlah anak (F = 346.91), jumlah remaja (F = 194.75), dan status pernikahan (F = 2.48) semuanya signifikan pada taraf p < 0.05. Ini mengindikasikan bahwa konsumsi daging sangat dipengaruhi oleh faktor demografis dan ekonomi.
  4. MntFishProducts (Produk ikan) Pendidikan dan usia menunjukkan pengaruh yang sangat signifikan terhadap pengeluaran produk ikan, dengan F masing-masing sebesar 20.38 dan 19.65 (p < 0.001). Pendapatan, Kidhome, dan Teenhome juga signifikan. Status pernikahan memiliki pengaruh marginal signifikan (F = 2.31, p = 0.024), menandakan kontribusi yang relatif lemah.
  5. MntSweetProducts (Produk manis) Pengeluaran untuk produk manis dipengaruhi secara signifikan oleh pendidikan (F = 19.54, p < 8.098e-16), pendapatan (F signifikan), jumlah anak (F signifikan), dan jumlah remaja (F signifikan). Usia hampir signifikan (F = 2.97, p = 0.0556), sedangkan status pernikahan tidak berpengaruh (F = 0.79, p = 0.5947). Ini menunjukkan bahwa preferensi terhadap makanan manis lebih dipengaruhi oleh kondisi ekonomi dan struktur keluarga daripada faktor sosial.
  6. MntGoldProds (Produk emas) Pengeluaran untuk produk berharga tinggi seperti emas dipengaruhi secara signifikan oleh pendidikan (F = 28.88, p < 3.002e-15), status pernikahan (F = 3.47, p = 0.0014), usia (F = 11.71, p < 1.488e-05), pendapatan, dan jumlah anak. Namun, jumlah remaja (Teenhome) tidak berpengaruh signifikan (F = 2.86, p = 0.09). Hasil ini menegaskan bahwa produk dengan nilai eksklusif cenderung dipengaruhi oleh faktor ekonomi dan demografi utama. Berdasarkan hasil analisis, pendidikan (Education) terbukti memiliki pengaruh yang konsisten signifikan terhadap seluruh kategori produk. Usia (AgeGroup) juga menunjukkan pengaruh signifikan terhadap hampir semua variabel dependen, kecuali produk manis. Pendapatan (Income) merupakan faktor yang paling dominan di seluruh kategori. Sementara itu, status pernikahan (Marital_Status) hanya berpengaruh signifikan pada produk wine dan emas, serta tidak memberikan pengaruh berarti pada kategori makanan. Jumlah anak kecil (Kidhome) secara konsisten signifikan, sedangkan jumlah remaja (Teenhome) hanya berpengaruh pada sebagian produk. Temuan ini mendukung pentingnya mempertimbangkan segmentasi berbasis pendidikan, usia, dan kondisi ekonomi rumah tangga dalam menyusun strategi pemasaran, terutama untuk produk dengan nilai ekonomi tinggi.

3.9.3 Ukuran Efek (Effect Size)

# install.packages("effectsize")
library(effectsize)

eta_squared_results <- eta_squared(mancova_model, partial = TRUE)
print(eta_squared_results)
## # Effect Size for ANOVA (Type I)
## 
## Parameter      | Eta2 (partial) |       95% CI
## ----------------------------------------------
## Education      |           0.12 | [0.10, 1.00]
## Marital_Status |       5.66e-03 | [0.00, 1.00]
## AgeGroup       |           0.07 | [0.05, 1.00]
## Income         |           0.64 | [0.62, 1.00]
## Kidhome        |           0.19 | [0.17, 1.00]
## Teenhome       |           0.21 | [0.19, 1.00]
## 
## - One-sided CIs: upper bound fixed at [1.00].

Hasil Perhitungan Ukuran Efek

Analisis MANCOVA yang dilanjutkan dengan perhitungan ukuran efek menggunakan partial eta squared menunjukkan bahwa variabel Income (Pendapatan) memberikan kontribusi paling besar terhadap variasi pengeluaran konsumen pada enam kategori produk (MntWines, MntFruits, MntMeatProducts, MntFishProducts, MntSweetProducts, dan MntGoldProds), dengan nilai η² = 0,64. Hal ini mengindikasikan bahwa setelah dikendalikan oleh variabel lain dalam model, pendapatan menjelaskan sekitar 64% dari variabilitas total pada variabel dependen, yang termasuk dalam kategori efek besar. Selain itu, variabel Teenhome (jumlah remaja di rumah) dan Kidhome (jumlah anak di rumah) juga menunjukkan efek yang cukup berarti dengan nilai η² masing-masing sebesar 0,21 dan 0,19, yang termasuk dalam kategori efek sedang. Hasil ini mengindikasikan bahwa keberadaan anak dan remaja di rumah berpengaruh terhadap pola konsumsi rumah tangga. Variabel Education (pendidikan) juga menunjukkan efek sedang (η² = 0,12), sementara AgeGroup memberikan efek kecil hingga sedang (η² = 0,07). Sebaliknya, variabel Marital_Status (status pernikahan) menunjukkan kontribusi yang sangat kecil dengan η² = 0,0057, yang mengindikasikan bahwa status pernikahan tidak memiliki pengaruh yang berarti terhadap perilaku pengeluaran konsumen dalam model ini. Secara keseluruhan, hasil ini menegaskan bahwa karakteristik sosial-demografis tertentu, khususnya pendapatan dan komposisi anggota keluarga, memiliki peran penting dalam memengaruhi perilaku konsumsi konsumen, sementara faktor lainnya memiliki pengaruh yang lebih terbatas.


4 KESIMPULAN

Penelitian ini menganalisis pengaruh karakteristik sosial demografis terhadap perilaku konsumsi konsumen dengan pendekatan statistik multivariat menggunakan MANOVA dan MANCOVA. Hasil penelitian menunjukkan bahwa:

  1. Education, Marital_Status, dan AgeGroup secara simultan memiliki pengaruh signifikan terhadap total pengeluaran konsumen pada enam kategori produk. Faktor Education dan AgeGroup menunjukkan kontribusi yang paling besar dalam menjelaskan perbedaan pola konsumsi antar kelompok.
  2. Ketika variabel kovariat seperti Income, Kidhome, dan Teenhome dimasukkan ke dalam model MANCOVA, seluruh variabel independen tetap menunjukkan pengaruh yang signifikan secara statistik. Income menjadi faktor yang paling dominan, menjelaskan variasi gabungan tertinggi terhadap perilaku konsumsi.
  3. Meskipun asumsi normalitas dan homogenitas matriks varians-kovarians tidak sepenuhnya terpenuhi, hasil analisis tetap menunjukkan pola yang konsisten dan signifikan secara statistik, dengan interpretasi dilakukan secara hati-hati.
  4. Dengan demikian, karakteristik sosial demografis terbukti memainkan peran penting dalam membentuk perilaku konsumsi pelanggan. Temuan ini memberikan dasar yang kuat bagi perumusan strategi pemasaran yang lebih tersegmentasi dan berbasis data.

5 DAFTAR PUSTAKA

[1] MUSNAINI, “Pengaruh Personal Dan Interpersonal Motivations–Terhadap Niat Konsumen Non-Deceptive Pada Produk Merek Mewah Palsu Di Surabaya.” Accessed: May 08, 2025. [Online]. Available: https://repository.unja.ac.id/48438/3/100 Laporan kemajuan HIBAH DOKTORAL .pdf

[2] C. J. Huberty and J. D. Morris, “Multivariate Analysis Versus Multiple Univariate Analyses,” Psychol Bull, vol. 105, no. 2, pp. 302–308, 1989, doi: 10.1037/0033-2909.105.2.302.

[3] S. Sutrisno and D. Wulandari, “Multivariate Analysis of Variance (MANOVA) untuk Memperkaya Hasil Penelitian Pendidikan,” AKSIOMA J. Mat. dan Pendidik. Mat., vol. 9, no. 1, p. 37, Jul. 2018, doi: 10.26877/AKS.V9I1.2472