Bagian ini menyajikan analisis eksploratori: Three-Way Interaction CCS × OL × Status Anggota, beserta visualisasi interaksi dan distribusi skor per subgrup anggota.

Peringatan

Analisis ini bersifat EKSPLORATORI (bukan konfirmatori).

7.1 Persiapan Data Lengkap

Kode
data_full <- data.frame(
  PEB = Fscores_peb[, "PEB"], OL = Fscores_ol[, "OL"], CCS = Fscores_ccs[, "GCCS"],
  Gender = factor(data$Gender), Semester = factor(data$Semester),
  Area = factor(data$Area), Provinsi = factor(data$Provinsi),
  Hunian = factor(data$Hunian), Knowl = factor(data$Knowl),
  Bergabung = factor(data$Bergabung),
  Anggota = factor(ifelse(data$Anggota == 2, 1, 0), levels = c(0, 1), labels = c("Pengurus", "Anggota Biasa")),
  Usia = data$Usia, Saku = data$Saku, Pol1 = data$Pol1, Pol2 = data$Pol2
)
cat("Data lengkap:", nrow(data_full), "baris x", ncol(data_full), "kolom")
Data lengkap: 538 baris x 15 kolom

7.2 Perbandingan Model

Kode
mod_base <- lm(PEB ~ CCS * OL, data = data_full)
mod_cov <- lm(PEB ~ CCS * OL + Anggota, data = data_full)
cat("ANOVA:\n")
ANOVA:
Kode
anova(mod_base, mod_cov)
Res.Df RSS Df Sum of Sq F Pr(>F)
534 388.6858 NA NA NA NA
533 387.1782 1 1.507574 2.075367 0.1502811
Kode
cat("\nWald Test (HC3):\n")

Wald Test (HC3):
Kode
waldtest(mod_base, mod_cov, vcov = vcovHC(mod_cov, type = "HC3"))
Res.Df Df F Pr(>F)
534 NA NA NA
533 1 2.109089 0.1470148

7.3 Three-Way Interaction: CCS × OL × Anggota

Kode
mod_3way_anggota <- lm(PEB ~ CCS * OL * Anggota, data = data_full)
summary(mod_3way_anggota)

Call:
lm(formula = PEB ~ CCS * OL * Anggota, data = data_full)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.3240 -0.5478 -0.1025  0.4829  2.4814 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 -0.15310    0.07338  -2.086  0.03742 *  
CCS                          0.33593    0.07208   4.660 4.00e-06 ***
OL                           0.40912    0.07238   5.652 2.59e-08 ***
AnggotaAnggota Biasa         0.23173    0.08618   2.689  0.00740 ** 
CCS:OL                      -0.20114    0.06484  -3.102  0.00202 ** 
CCS:AnggotaAnggota Biasa    -0.12083    0.08756  -1.380  0.16818    
OL:AnggotaAnggota Biasa      0.11738    0.08687   1.351  0.17720    
CCS:OL:AnggotaAnggota Biasa  0.40693    0.08324   4.888 1.35e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.8321 on 530 degrees of freedom
Multiple R-squared:  0.2482,    Adjusted R-squared:  0.2383 
F-statistic:    25 on 7 and 530 DF,  p-value: < 2.2e-16
Kode
cat("\nHasil dengan Koreksi HC3:\n")

Hasil dengan Koreksi HC3:
Kode
coeftest(mod_3way_anggota, vcov = vcovHC(mod_3way_anggota, type = "HC3"))

t test of coefficients:

                             Estimate Std. Error t value  Pr(>|t|)    
(Intercept)                 -0.153101   0.070383 -2.1752  0.030053 *  
CCS                          0.335927   0.068479  4.9055 1.242e-06 ***
OL                           0.409125   0.071998  5.6825 2.193e-08 ***
AnggotaAnggota Biasa         0.231727   0.083754  2.7668  0.005859 ** 
CCS:OL                      -0.201139   0.063668 -3.1592  0.001672 ** 
CCS:AnggotaAnggota Biasa    -0.120834   0.083370 -1.4494  0.147822    
OL:AnggotaAnggota Biasa      0.117385   0.086675  1.3543  0.176216    
CCS:OL:AnggotaAnggota Biasa  0.406931   0.082244  4.9478 1.009e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

7.3.1 Visualisasi Interaksi 3-Arah

Kode plot interaksi
# ---- 1. Grid prediksi: CCS x OL (3 level) x Anggota (2 level) ----
ccs_seq <- seq(min(data_full$CCS, na.rm = TRUE),
  max(data_full$CCS, na.rm = TRUE),
  length.out = 200
)
ol_mean <- mean(data_full$OL, na.rm = TRUE)
ol_sd <- sd(data_full$OL, na.rm = TRUE)
ol_vals <- c(ol_mean - ol_sd, ol_mean, ol_mean + ol_sd)
ol_labels <- c("\u22121 SD", "Mean", "+1 SD")

pred_grid <- expand.grid(
  CCS     = ccs_seq,
  OL      = ol_vals,
  Anggota = levels(data_full$Anggota)
)
pred_grid$OL_label <- factor(ol_labels[match(pred_grid$OL, ol_vals)],
  levels = ol_labels
)
pred_grid$Anggota <- factor(pred_grid$Anggota, levels = levels(data_full$Anggota))

preds <- predict(mod_3way_anggota, newdata = pred_grid, se.fit = TRUE)
pred_grid$fit <- preds$fit
pred_grid$se <- preds$se.fit
pred_grid$ci_lo <- pred_grid$fit - 1.96 * pred_grid$se
pred_grid$ci_hi <- pred_grid$fit + 1.96 * pred_grid$se

# ---- 2. Annotasi N per panel ----
n_per_panel <- data_full |>
  summarise(n = n(), .by = Anggota) |>
  mutate(
    Anggota = factor(Anggota, levels = levels(data_full$Anggota)),
    label   = paste0("italic(n) == ", n)
  )

# ---- 3. Warna & linetype akademik ----
ol_colors <- c("\u22121 SD" = "#2166AC", "Mean" = "#4DAC26", "+1 SD" = "#D6604D")
ol_linetypes <- c("\u22121 SD" = "solid", "Mean" = "dashed", "+1 SD" = "dotdash")

# ---- 4. Plot ----
p_interact <- ggplot(
  pred_grid,
  aes(
    x = CCS, y = fit,
    color = OL_label,
    linetype = OL_label,
    fill = OL_label
  )
) +
  # Titik observasi asli (background)
  geom_point(
    data = data_full, aes(x = CCS, y = PEB),
    inherit.aes = FALSE,
    color = "grey60", alpha = 0.22, size = 0.9
  ) +
  # 95% CI ribbon
  geom_ribbon(aes(ymin = ci_lo, ymax = ci_hi), alpha = 0.14, color = NA) +
  # Garis prediksi
  geom_line(linewidth = 1.0) +
  # Label N pojok kiri-atas tiap panel
  geom_label(
    data = n_per_panel,
    aes(x = -Inf, y = Inf, label = label),
    inherit.aes = FALSE, parse = TRUE,
    hjust = -0.08, vjust = 1.3, size = 3.0,
    color = "grey30", fill = "white",
    label.size = 0.25, label.padding = unit(0.18, "lines")
  ) +
  facet_wrap(~Anggota) +
  scale_color_manual(values = ol_colors, name = "Keterlibatan Org. Lingkungan (OL)") +
  scale_fill_manual(values = ol_colors, name = "Keterlibatan Org. Lingkungan (OL)") +
  scale_linetype_manual(values = ol_linetypes, name = "Keterlibatan Org. Lingkungan (OL)") +
  labs(
    title = "Three-Way Interaction: Skeptisisme Perubahan Iklim \u00d7 Keterlibatan Organisasi \u00d7 Status Keanggotaan",
    subtitle = "Perilaku Pro-Lingkungan (PEB) sebagai kriteria; prediktor CCS dan moderator OL & Anggota",
    x = "Skeptisisme Perubahan Iklim (CCS)",
    y = "Perilaku Pro-Lingkungan (PEB)",
    caption = paste0(
      "Garis = nilai prediksi model regresi PEB ~ CCS \u00d7 OL \u00d7 Anggota.\n",
      "OL dikategorikan pada \u22121 SD, Mean, dan +1 SD; titik abu-abu = data observasi (N = ",
      nrow(data_full), ")."
    )
  ) +
  theme_bw(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 11.5, hjust = 0.5),
    plot.subtitle = element_text(
      size = 9.0, hjust = 0.5, color = "grey35",
      margin = margin(b = 8)
    ),
    plot.caption = element_text(
      size = 7.8, color = "grey50", hjust = 0,
      margin = margin(t = 8)
    ),
    axis.title = element_text(face = "bold", size = 9.5),
    axis.text = element_text(size = 8.5),
    strip.text = element_text(face = "bold", size = 11),
    strip.background = element_rect(fill = "grey93", color = "grey70"),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_line(color = "grey92"),
    legend.position = "bottom",
    legend.title = element_text(face = "bold", size = 9),
    legend.text = element_text(size = 9),
    legend.key.width = unit(1.8, "cm")
  )

print(p_interact)


7.4 Distribusi Factor Scores per Subgrup Anggota

7.4.1 Density Plot — Pengurus vs. Anggota Biasa

Kode density per subgrup
d_peng <- data_full[data_full$Anggota == "Pengurus", ]
d_biasa <- data_full[data_full$Anggota == "Anggota Biasa", ]

peb_low_p <- mean(d_peng$PEB, na.rm = TRUE) - 0.5 * sd(d_peng$PEB, na.rm = TRUE)
peb_hi_p <- mean(d_peng$PEB, na.rm = TRUE) + 0.5 * sd(d_peng$PEB, na.rm = TRUE)
ccs_low_p <- mean(d_peng$CCS, na.rm = TRUE) - 0.5 * sd(d_peng$CCS, na.rm = TRUE)
ccs_hi_p <- mean(d_peng$CCS, na.rm = TRUE) + 0.5 * sd(d_peng$CCS, na.rm = TRUE)
ol_low_p <- mean(d_peng$OL, na.rm = TRUE) - 0.5 * sd(d_peng$OL, na.rm = TRUE)
ol_hi_p <- mean(d_peng$OL, na.rm = TRUE) + 0.5 * sd(d_peng$OL, na.rm = TRUE)

peb_low_b <- mean(d_biasa$PEB, na.rm = TRUE) - 0.5 * sd(d_biasa$PEB, na.rm = TRUE)
peb_hi_b <- mean(d_biasa$PEB, na.rm = TRUE) + 0.5 * sd(d_biasa$PEB, na.rm = TRUE)
ccs_low_b <- mean(d_biasa$CCS, na.rm = TRUE) - 0.5 * sd(d_biasa$CCS, na.rm = TRUE)
ccs_hi_b <- mean(d_biasa$CCS, na.rm = TRUE) + 0.5 * sd(d_biasa$CCS, na.rm = TRUE)
ol_low_b <- mean(d_biasa$OL, na.rm = TRUE) - 0.5 * sd(d_biasa$OL, na.rm = TRUE)
ol_hi_b <- mean(d_biasa$OL, na.rm = TRUE) + 0.5 * sd(d_biasa$OL, na.rm = TRUE)

# Fungsi untuk mengategorisasi skor berdasarkan SD
categorize_score <- function(scores, labels = c("Rendah", "Sedang", "Tinggi")) {
  mean_score <- mean(scores, na.rm = TRUE)
  sd_score <- sd(scores, na.rm = TRUE)
  lower_bound <- mean_score - 0.5 * sd_score
  upper_bound <- mean_score + 0.5 * sd_score
  ifelse(scores < lower_bound, labels[1],
    ifelse(scores > upper_bound, labels[3], labels[2])
  )
}

peb_n <- table(categorize_score(data_full$PEB))
ccs_n <- table(categorize_score(data_full$CCS))
ol_n <- table(categorize_score(data_full$OL))

par(mfrow = c(1, 3), mar = c(15, 4, 4, 2) + 0.5)

# --- Density 1: PEB per Subgroup ---
plot(density(data_full[data_full$Anggota == "Pengurus", "PEB"], na.rm = TRUE),
  main = "Density PEB: Pengurus vs Anggota Biasa", xlab = "Skor",
  xlim = c(-4, 3), ylim = c(0, 1.2), lwd = 2, col = "steelblue"
)
lines(density(data_full[data_full$Anggota == "Anggota Biasa", "PEB"], na.rm = TRUE),
  col = "darkslategray", lwd = 2, lty = 2
)
abline(v = peb_low_p, col = "steelblue", lty = 3, lwd = 1.5)
abline(v = peb_hi_p, col = "steelblue", lty = 3, lwd = 1.5)
abline(v = peb_low_b, col = "darkslategray", lty = 3, lwd = 1.5)
abline(v = peb_hi_b, col = "darkslategray", lty = 3, lwd = 1.5)
op <- par(family = "mono")
legend("bottom",
  inset = c(0, -0.57),
  legend = c(
    sprintf("%-42s", sprintf("Rendah (n=%3d): x < %5.2f", peb_n["Rendah"], peb_low_p)),
    sprintf("%-42s", sprintf("Sedang (n=%3d): %5.2f s.d. %5.2f", peb_n["Sedang"], peb_low_p, peb_hi_p)),
    sprintf("%-42s", sprintf("Tinggi (n=%3d): x > %5.2f", peb_n["Tinggi"], peb_hi_p)),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Pengurus", nrow(d_peng))),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Anggota Biasa", nrow(d_biasa))),
    sprintf("%-42s", sprintf("Cutoff Pengurus      : [%5.2f, %5.2f]", peb_low_p, peb_hi_p)),
    sprintf("%-42s", sprintf("Cutoff Anggota Biasa : [%5.2f, %5.2f]", peb_low_b, peb_hi_b))
  ), fill = c("lightsteelblue", "steelblue", "darkslategray", NA, NA, NA, NA),
  border = c("lightsteelblue", "steelblue", "darkslategray", NA, NA, NA, NA),
  col = c(NA, NA, NA, "steelblue", "darkslategray", "steelblue", "darkslategray"),
  lty = c(NA, NA, NA, 1, 2, 3, 3), lwd = c(NA, NA, NA, 2, 2, 1.5, 1.5),
  cex = 0.80, bty = "n", xpd = TRUE
)
par(op)

# --- Density 2: CCS per Subgroup ---
plot(density(data_full[data_full$Anggota == "Pengurus", "CCS"], na.rm = TRUE),
  main = "Density CCS: Pengurus vs Anggota Biasa", xlab = "Skor",
  xlim = c(-4, 3), ylim = c(0, 1.2), lwd = 2, col = "coral"
)
lines(density(data_full[data_full$Anggota == "Anggota Biasa", "CCS"], na.rm = TRUE),
  col = "darkred", lwd = 2, lty = 2
)
abline(v = ccs_low_p, col = "coral", lty = 3, lwd = 1.5)
abline(v = ccs_hi_p, col = "coral", lty = 3, lwd = 1.5)
abline(v = ccs_low_b, col = "darkred", lty = 3, lwd = 1.5)
abline(v = ccs_hi_b, col = "darkred", lty = 3, lwd = 1.5)
op <- par(family = "mono")
legend("bottom",
  inset = c(0, -0.57),
  legend = c(
    sprintf("%-42s", sprintf("Rendah (n=%3d): x < %5.2f", ccs_n["Rendah"], ccs_low_p)),
    sprintf("%-42s", sprintf("Sedang (n=%3d): %5.2f s.d. %5.2f", ccs_n["Sedang"], ccs_low_p, ccs_hi_p)),
    sprintf("%-42s", sprintf("Tinggi (n=%3d): x > %5.2f", ccs_n["Tinggi"], ccs_hi_p)),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Pengurus", nrow(d_peng))),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Anggota Biasa", nrow(d_biasa))),
    sprintf("%-42s", sprintf("Cutoff Pengurus      : [%5.2f, %5.2f]", ccs_low_p, ccs_hi_p)),
    sprintf("%-42s", sprintf("Cutoff Anggota Biasa : [%5.2f, %5.2f]", ccs_low_b, ccs_hi_b))
  ), fill = c("lightsalmon", "coral", "darkred", NA, NA, NA, NA),
  border = c("lightsalmon", "coral", "darkred", NA, NA, NA, NA),
  col = c(NA, NA, NA, "coral", "darkred", "coral", "darkred"),
  lty = c(NA, NA, NA, 1, 2, 3, 3), lwd = c(NA, NA, NA, 2, 2, 1.5, 1.5),
  cex = 0.80, bty = "n", xpd = TRUE
)
par(op)

# --- Density 3: OL per Subgroup ---
plot(density(data_full[data_full$Anggota == "Pengurus", "OL"], na.rm = TRUE),
  main = "Density OL: Pengurus vs Anggota Biasa", xlab = "Skor",
  xlim = c(-4, 3), ylim = c(0, 1.2), lwd = 2, col = "lightgreen"
)
lines(density(data_full[data_full$Anggota == "Anggota Biasa", "OL"], na.rm = TRUE),
  col = "darkgreen", lwd = 2, lty = 2
)
abline(v = ol_low_p, col = "lightgreen", lty = 3, lwd = 1.5)
abline(v = ol_hi_p, col = "lightgreen", lty = 3, lwd = 1.5)
abline(v = ol_low_b, col = "darkgreen", lty = 3, lwd = 1.5)
abline(v = ol_hi_b, col = "darkgreen", lty = 3, lwd = 1.5)
op <- par(family = "mono")
legend("bottom",
  inset = c(0, -0.57),
  legend = c(
    sprintf("%-42s", sprintf("Rendah (n=%3d): x < %5.2f", ol_n["Rendah"], ol_low_p)),
    sprintf("%-42s", sprintf("Sedang (n=%3d): %5.2f s.d. %5.2f", ol_n["Sedang"], ol_low_p, ol_hi_p)),
    sprintf("%-42s", sprintf("Tinggi (n=%3d): x > %5.2f", ol_n["Tinggi"], ol_hi_p)),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Pengurus", nrow(d_peng))),
    sprintf("%-42s", sprintf("%-13s (n=%3d) [density]", "Anggota Biasa", nrow(d_biasa))),
    sprintf("%-42s", sprintf("Cutoff Pengurus      : [%5.2f, %5.2f]", ol_low_p, ol_hi_p)),
    sprintf("%-42s", sprintf("Cutoff Anggota Biasa : [%5.2f, %5.2f]", ol_low_b, ol_hi_b))
  ), fill = c("palegreen", "lightgreen", "darkgreen", NA, NA, NA, NA),
  border = c("palegreen", "lightgreen", "darkgreen", NA, NA, NA, NA),
  col = c(NA, NA, NA, "lightgreen", "darkgreen", "lightgreen", "darkgreen"),
  lty = c(NA, NA, NA, 1, 2, 3, 3), lwd = c(NA, NA, NA, 2, 2, 1.5, 1.5),
  cex = 0.80, bty = "n", xpd = TRUE
)

Kode density per subgrup
par(op)

par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1)

7.4.2 Histogram per Subgrup

Kode histogram per subgrup
# Hitung n per kategori per subgroup
peb_n_p <- table(categorize_score(d_peng$PEB))
ccs_n_p <- table(categorize_score(d_peng$CCS))
ol_n_p <- table(categorize_score(d_peng$OL))
peb_n_b <- table(categorize_score(d_biasa$PEB))
ccs_n_b <- table(categorize_score(d_biasa$CCS))
ol_n_b <- table(categorize_score(d_biasa$OL))

# Helper fungsi plot histogram subgroup
plot_hist_sub <- function(vec, cutlow, cuthi, n_cat, colors3, judul, xmin, xmax) {
  brk <- hist(vec, plot = FALSE, breaks = 20)
  cols <- cut(brk$mids, breaks = c(-Inf, cutlow, cuthi, Inf), labels = colors3)
  hist(vec,
    main = judul, xlab = "Skor",
    col = as.character(cols), border = "white", xlim = c(-4, 3), ylim = c(0, 150), breaks = 20
  )
  op <- par(family = "mono")
  legend("bottom",
    inset = c(0, -0.42),
    legend = c(
      sprintf("%-6s (n=%3d) [%6.2f, %5.2f]", "Rendah", n_cat["Rendah"], xmin, cutlow),
      sprintf("%-6s (n=%3d) [%6.2f, %5.2f]", "Sedang", n_cat["Sedang"], cutlow, cuthi),
      sprintf("%-6s (n=%3d) [%6.2f, %5.2f]", "Tinggi", n_cat["Tinggi"], cuthi, xmax)
    ), fill = colors3, cex = 0.85, bty = "n", xpd = TRUE
  )
  par(op)
}

par(mfrow = c(2, 3), mar = c(7, 4, 4, 2) + 0.5)

# --- Baris 1: Pengurus ---
plot_hist_sub(
  d_peng$PEB, peb_low_p, peb_hi_p, peb_n_p,
  c("lightsteelblue", "steelblue", "darkslategray"),
  paste0("Distribusi PEB - Pengurus (n=", nrow(d_peng), ")"),
  min(d_peng$PEB, na.rm = TRUE), max(d_peng$PEB, na.rm = TRUE)
)

plot_hist_sub(
  d_peng$CCS, ccs_low_p, ccs_hi_p, ccs_n_p,
  c("lightsalmon", "coral", "darkred"),
  paste0("Distribusi CCS - Pengurus (n=", nrow(d_peng), ")"),
  min(d_peng$CCS, na.rm = TRUE), max(d_peng$CCS, na.rm = TRUE)
)

plot_hist_sub(
  d_peng$OL, ol_low_p, ol_hi_p, ol_n_p,
  c("palegreen", "lightgreen", "darkgreen"),
  paste0("Distribusi OL - Pengurus (n=", nrow(d_peng), ")"),
  min(d_peng$OL, na.rm = TRUE), max(d_peng$OL, na.rm = TRUE)
)

# --- Baris 2: Anggota Biasa ---
plot_hist_sub(
  d_biasa$PEB, peb_low_b, peb_hi_b, peb_n_b,
  c("lightsteelblue", "steelblue", "darkslategray"),
  paste0("Distribusi PEB - Anggota Biasa (n=", nrow(d_biasa), ")"),
  min(d_biasa$PEB, na.rm = TRUE), max(d_biasa$PEB, na.rm = TRUE)
)

plot_hist_sub(
  d_biasa$CCS, ccs_low_b, ccs_hi_b, ccs_n_b,
  c("lightsalmon", "coral", "darkred"),
  paste0("Distribusi CCS - Anggota Biasa (n=", nrow(d_biasa), ")"),
  min(d_biasa$CCS, na.rm = TRUE), max(d_biasa$CCS, na.rm = TRUE)
)

plot_hist_sub(
  d_biasa$OL, ol_low_b, ol_hi_b, ol_n_b,
  c("palegreen", "lightgreen", "darkgreen"),
  paste0("Distribusi OL - Anggota Biasa (n=", nrow(d_biasa), ")"),
  min(d_biasa$OL, na.rm = TRUE), max(d_biasa$OL, na.rm = TRUE)
)

Kode histogram per subgrup
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1)

7.4.3 Statistik Deskriptif per Subgrup

Kode
for (grp in levels(data_full$Anggota)) {
  cat(sprintf("\n=== %s (n=%d) ===\n", grp, sum(data_full$Anggota == grp)))
  sub <- data_full[data_full$Anggota == grp, c("PEB", "CCS", "OL")]
  d <- psych::describe(sub, type = 2)
  print(data.frame(
    Variabel = rownames(d), Mean = round(d$mean, 3), SD = round(d$sd, 3),
    Min = round(d$min, 3), Max = round(d$max, 3), check.names = FALSE
  ), row.names = FALSE)
}

=== Pengurus (n=176) ===
 Variabel  Mean    SD    Min   Max
      PEB 0.065 0.893 -2.206 2.106
      CCS 0.192 1.019 -1.353 3.067
       OL 0.225 0.972 -4.329 1.658

=== Anggota Biasa (n=362) ===
 Variabel   Mean    SD    Min   Max
      PEB -0.032 0.981 -3.063 2.106
      CCS -0.093 0.900 -1.365 2.464
       OL -0.110 0.935 -2.682 1.658

7.4.4 Analisis Subgrup

Regresi per subgrup
cat("Subgroup: Pengurus\n")
Subgroup: Pengurus
Regresi per subgrup
summary(lm(PEB ~ CCS * OL, data = data_full[data_full$Anggota == "Pengurus", ]))

Call:
lm(formula = PEB ~ CCS * OL, data = data_full[data_full$Anggota == 
    "Pengurus", ])

Residuals:
    Min      1Q  Median      3Q     Max 
-1.9689 -0.5374 -0.0980  0.5583  2.2108 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.15310    0.07139  -2.145   0.0334 *  
CCS          0.33593    0.07013   4.790 3.58e-06 ***
OL           0.40912    0.07042   5.810 2.96e-08 ***
CCS:OL      -0.20114    0.06308  -3.189   0.0017 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.8095 on 172 degrees of freedom
Multiple R-squared:  0.1918,    Adjusted R-squared:  0.1777 
F-statistic: 13.61 on 3 and 172 DF,  p-value: 5.221e-08
Regresi per subgrup
cat("\nSubgroup: Anggota Biasa\n")

Subgroup: Anggota Biasa
Regresi per subgrup
summary(lm(PEB ~ CCS * OL, data = data_full[data_full$Anggota == "Anggota Biasa", ]))

Call:
lm(formula = PEB ~ CCS * OL, data = data_full[data_full$Anggota == 
    "Anggota Biasa", ])

Residuals:
    Min      1Q  Median      3Q     Max 
-2.3240 -0.5516 -0.1033  0.4709  2.4814 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.07863    0.04578   1.718 0.086729 .  
CCS          0.21509    0.05035   4.272 2.48e-05 ***
OL           0.52651    0.04865  10.822  < 2e-16 ***
CCS:OL       0.20579    0.05287   3.892 0.000118 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.8427 on 358 degrees of freedom
Multiple R-squared:  0.2685,    Adjusted R-squared:  0.2623 
F-statistic: 43.79 on 3 and 358 DF,  p-value: < 2.2e-16