# install.packages(c("readxl", "dplyr", "tidyr", "stringr", "forcats",
# "ggplot2", "scales", "knitr", "FactoMineR", "factoextra",
# "foreign"))
packages <- c(
"readxl", "dplyr", "tidyr", "stringr", "forcats",
"ggplot2", "scales", "knitr", "FactoMineR", "factoextra", "foreign"
)
missing_packages <- packages[!vapply(packages, requireNamespace, logical(1), quietly = TRUE)]
if (length(missing_packages) > 0) {
stop("請先安裝缺少的套件:", paste(missing_packages, collapse = ", "), call. = FALSE)
}
invisible(lapply(packages, library, character.only = TRUE))
knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE,
fig.width = 9,
fig.height = 6
)
研究目的
本報告探索「個人價值取向」與「網紅反推薦態度」之間的對應關係。分析重點不是預測,而是透過
MCA
觀察哪些價值輪廓較靠近「希望網紅停止推銷」「覺得推銷干擾」「覺得推銷不舒服」等反推薦態度。
本次設定:
- 主動變數:五個個人價值與網路話題好奇變數。
- 補充變數:網紅推薦接受、網紅推銷反感、理性消費與人口背景。
- 分析對象:有回答網紅推薦態度題組者;P7 題跳答者不納入 MCA。
載入資料與問卷標籤
raw_data <- readxl::read_excel("20260113/data.xlsx")
sav_raw <- foreign::read.spss(
"20260113/data.sav",
to.data.frame = FALSE,
use.value.labels = FALSE,
reencode = "UTF-8"
)
question_labels <- attr(sav_raw, "variable.labels")
codebook <- tibble(
variable_code = names(question_labels),
question_label = unname(question_labels)
)
target_codes <- c(
"vn2", "vn4", "vn6", "vn8", "vn22",
"vp7_1", "vp7_3", "vp7_4", "vp7_5", "vp7_6",
"sel_gen", "agegp", "edugp", "vo5"
)
codebook %>%
filter(variable_code %in% target_codes) %>%
kable(caption = "本次分析使用變數與 ques2 題目")
本次分析使用變數與 ques2 題目
| vp7_1 |
P7_1
請問您同不同意,您會想要購買網紅所推薦的產品? |
| vp7_3 |
P7_3
請問您同不同意,當您看到網紅正在推銷產品時,您希望他們能夠停止推銷呢? |
| vp7_4 |
P7_4
請問您同不同意,當您在觀看網紅內容的時候,他們突然推薦產品,對您來說是一種干擾呢? |
| vp7_5 |
P7_5
請問您同不同意,當您在觀看網紅內容的時候,他們突然推薦產品,您會有不舒服的感覺? |
| vp7_6 |
P7_6
請問您同不同意,當網紅向您推銷產品,您還是會保持理性消費呢? |
| vn2 |
N2 重視財富,想要擁有許多錢和昂貴的東西。 |
| vn4 |
N4 重視追求快樂,寵愛自己。 |
| vn6 |
N6 成功很重要,想要讓別人知道自己的成就。 |
| vn8 |
N8
重視舉止合宜,別人認為不好的事您不會去做。舉止合宜指的是「行為符合社會的要求」。 |
| vn22 |
N22 知道別人在網路上討論什麼,您也會感興趣。 |
| vo5 |
O5
請問您個人平均每個月所有的(稅前)收入差不多有多少?(包括:薪資、年終獎金、年節分紅、加班費、執行業務收入、自營收入、投資利息、房租、退休金、政府津貼給付等) |
| sel_gen |
中選者性別 |
| agegp |
受訪者年齡分類 |
| edugp |
受訪者教育程度分類(6分類) |
資料清理與變數標籤
to_num <- function(x) suppressWarnings(as.numeric(as.character(x)))
clean_missing <- function(x, miss = c(
95, 96, 97, 98, 99,
996, 997, 998, 999,
9996, 9997, 9998, 9999
)) {
x <- to_num(x)
x[x %in% miss] <- NA_real_
x
}
value_like_factor <- function(x) {
x <- to_num(x)
case_when(
x %in% c(1, 2) ~ "不像我",
x == 3 ~ "有點像",
x == 4 ~ "很像我",
x %in% c(96, 97, 98, 99) ~ NA_character_,
TRUE ~ NA_character_
) %>%
factor(levels = c("不像我", "有點像", "很像我"))
}
agree_factor <- function(x) {
x <- to_num(x)
case_when(
x %in% c(1, 2) ~ "不同意",
x == 3 ~ "普通",
x %in% c(4, 5) ~ "同意",
x %in% c(96, 97, 98, 99) ~ NA_character_,
TRUE ~ NA_character_
) %>%
factor(levels = c("不同意", "普通", "同意"))
}
age_group_factor <- function(x) {
factor(
clean_missing(x),
levels = 1:6,
labels = c("18-19歲", "20-29歲", "30-39歲", "40-49歲", "50-59歲", "60歲以上")
)
}
education_factor <- function(x) {
factor(
clean_missing(x),
levels = 1:6,
labels = c("小學以下", "國初中", "高中職", "專科", "大學", "研究所"),
ordered = TRUE
)
}
income_group <- function(x) {
x <- clean_missing(x)
case_when(
is.na(x) ~ NA_character_,
x <= 1 ~ "未滿1萬",
x <= 3 ~ "1-2萬",
x <= 5 ~ "2-4萬",
x <= 7 ~ "4-6萬",
x <= 11 ~ "6-10萬",
x >= 12 ~ "10萬以上"
) %>%
factor(levels = c("未滿1萬", "1-2萬", "2-4萬", "4-6萬", "6-10萬", "10萬以上"))
}
missing_as_level <- function(x, missing_label = "未回答") {
x <- as.character(x)
x[is.na(x) | x == ""] <- missing_label
factor(x)
}
analysis_data <- raw_data %>%
transmute(
財富重視 = value_like_factor(vn2),
享樂重視 = value_like_factor(vn4),
成就重視 = value_like_factor(vn6),
守規重視 = value_like_factor(vn8),
話題好奇 = agree_factor(vn22),
購買意願 = agree_factor(vp7_1),
停止推銷 = agree_factor(vp7_3),
推銷干擾 = agree_factor(vp7_4),
推銷不適 = agree_factor(vp7_5),
理性消費 = agree_factor(vp7_6),
性別 = factor(sel_gen, levels = c(1, 2), labels = c("男性", "女性")),
年齡 = age_group_factor(agegp),
教育 = education_factor(edugp),
收入 = income_group(vo5)
) %>%
mutate(
反感題有效數 = rowSums(!is.na(across(c(停止推銷, 推銷干擾, 推銷不適)))),
反感同意數 = rowSums(across(c(停止推銷, 推銷干擾, 推銷不適), ~ .x == "同意"), na.rm = TRUE),
反感普通數 = rowSums(across(c(停止推銷, 推銷干擾, 推銷不適), ~ .x == "普通"), na.rm = TRUE),
網紅反感 = case_when(
反感題有效數 < 2 ~ NA_character_,
反感同意數 >= 2 ~ "高反感",
反感同意數 == 1 | 反感普通數 >= 2 ~ "中反感",
TRUE ~ "低反感"
) %>%
factor(levels = c("低反感", "中反感", "高反感"))
)
analysis_variable_labels <- tibble::tribble(
~variable, ~question, ~short_label, ~role,
"vn2", "N2 重視財富,想要擁有許多錢和昂貴的東西。", "財富重視", "主動變數",
"vn4", "N4 重視追求快樂,寵愛自己。", "享樂重視", "主動變數",
"vn6", "N6 成功很重要,想要讓別人知道自己的成就。", "成就重視", "主動變數",
"vn8", "N8 重視舉止合宜,別人認為不好的事您不會去做。", "守規重視", "主動變數",
"vn22", "N22 知道別人在網路上討論什麼,您也會感興趣。", "話題好奇", "主動變數",
"vp7_1", "P7_1 會想要購買網紅所推薦的產品。", "購買意願", "補充變數",
"vp7_3", "P7_3 希望正在推銷產品的網紅停止推銷。", "停止推銷", "補充變數",
"vp7_4", "P7_4 網紅突然推薦產品是一種干擾。", "推銷干擾", "補充變數",
"vp7_5", "P7_5 網紅突然推薦產品會有不舒服的感覺。", "推銷不適", "補充變數",
"vp7_6", "P7_6 網紅推銷產品時仍會保持理性消費。", "理性消費", "補充變數"
)
analysis_variable_labels %>%
kable(caption = "變數標籤與分析角色")
變數標籤與分析角色
| vn2 |
N2 重視財富,想要擁有許多錢和昂貴的東西。 |
財富重視 |
主動變數 |
| vn4 |
N4 重視追求快樂,寵愛自己。 |
享樂重視 |
主動變數 |
| vn6 |
N6 成功很重要,想要讓別人知道自己的成就。 |
成就重視 |
主動變數 |
| vn8 |
N8 重視舉止合宜,別人認為不好的事您不會去做。 |
守規重視 |
主動變數 |
| vn22 |
N22 知道別人在網路上討論什麼,您也會感興趣。 |
話題好奇 |
主動變數 |
| vp7_1 |
P7_1 會想要購買網紅所推薦的產品。 |
購買意願 |
補充變數 |
| vp7_3 |
P7_3 希望正在推銷產品的網紅停止推銷。 |
停止推銷 |
補充變數 |
| vp7_4 |
P7_4 網紅突然推薦產品是一種干擾。 |
推銷干擾 |
補充變數 |
| vp7_5 |
P7_5 網紅突然推薦產品會有不舒服的感覺。 |
推銷不適 |
補充變數 |
| vp7_6 |
P7_6 網紅推銷產品時仍會保持理性消費。 |
理性消費 |
補充變數 |
基本資料探索
analysis_vars <- c(
"財富重視", "享樂重視", "成就重視", "守規重視", "話題好奇",
"購買意願", "停止推銷", "推銷干擾", "推銷不適", "理性消費", "網紅反感"
)
missing_summary <- analysis_data %>%
summarise(across(all_of(analysis_vars), ~ sum(is.na(.x)))) %>%
pivot_longer(everything(), names_to = "variable", values_to = "missing_n") %>%
mutate(missing_rate = missing_n / nrow(analysis_data))
missing_summary %>%
kable(digits = 3, caption = "主要分析變數缺失數與缺失率")
主要分析變數缺失數與缺失率
| 財富重視 |
18 |
0.009 |
| 享樂重視 |
17 |
0.008 |
| 成就重視 |
29 |
0.014 |
| 守規重視 |
19 |
0.009 |
| 話題好奇 |
30 |
0.015 |
| 購買意願 |
1172 |
0.581 |
| 停止推銷 |
1172 |
0.581 |
| 推銷干擾 |
1171 |
0.581 |
| 推銷不適 |
1171 |
0.581 |
| 理性消費 |
1172 |
0.581 |
| 網紅反感 |
1171 |
0.581 |
analysis_data %>%
select(all_of(analysis_vars)) %>%
pivot_longer(everything(), names_to = "variable", values_to = "category") %>%
filter(!is.na(category)) %>%
count(variable, category) %>%
group_by(variable) %>%
mutate(rate = n / sum(n)) %>%
ungroup() %>%
ggplot(aes(x = category, y = rate, fill = variable)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = scales::percent(rate, accuracy = 0.1)), vjust = -0.2, size = 3) +
facet_wrap(~ variable, scales = "free_x") +
scale_y_continuous(labels = scales::percent_format()) +
theme_minimal(base_size = 12) +
theme(axis.text.x = element_text(angle = 35, hjust = 1)) +
labs(title = "主要變數類別分布", x = NULL, y = "比例")

analysis_data %>%
select(網紅反感, 財富重視, 享樂重視, 成就重視, 守規重視, 話題好奇) %>%
filter(if_all(everything(), ~ !is.na(.x))) %>%
pivot_longer(-網紅反感, names_to = "value_dimension", values_to = "category") %>%
filter(!is.na(category)) %>%
count(value_dimension, category, 網紅反感) %>%
group_by(value_dimension, category) %>%
mutate(rate = n / sum(n)) %>%
ungroup() %>%
ggplot(aes(x = category, y = rate, fill = 網紅反感)) +
geom_col(position = "fill") +
facet_wrap(~ value_dimension, scales = "free_x") +
scale_y_continuous(labels = scales::percent_format()) +
theme_minimal(base_size = 12) +
theme(axis.text.x = element_text(angle = 35, hjust = 1)) +
labs(title = "個人價值類別中的網紅反感程度", x = NULL, y = "比例", fill = "反感程度")

MCA:個人價值與網紅反推薦態度
MCA
的主動變數放入五個價值向度,使座標空間由「財富、享樂、成就、守規、話題好奇」形成。網紅反推薦態度作為補充變數,用來觀察反感與購買意願靠近哪些價值輪廓。
active_vars <- c("財富重視", "享樂重視", "成就重視", "守規重視", "話題好奇")
supplementary_vars <- c(
"購買意願", "停止推銷", "推銷干擾", "推銷不適", "理性消費",
"網紅反感", "性別", "年齡", "教育", "收入"
)
mca_data <- analysis_data %>%
select(all_of(c(active_vars, supplementary_vars))) %>%
filter(if_all(everything(), ~ !is.na(.x))) %>%
mutate(across(everything(), droplevels))
valid_vars <- names(mca_data)[vapply(mca_data, function(x) nlevels(droplevels(x)) >= 2, logical(1))]
dropped_vars <- setdiff(names(mca_data), valid_vars)
mca_data <- mca_data %>%
select(all_of(valid_vars)) %>%
mutate(across(everything(), droplevels))
active_vars_kept <- intersect(active_vars, names(mca_data))
supplementary_vars_kept <- intersect(supplementary_vars, names(mca_data))
supplementary_index <- match(supplementary_vars_kept, names(mca_data))
tibble(
active_variables = paste(active_vars_kept, collapse = ", "),
supplementary_variables = paste(supplementary_vars_kept, collapse = ", "),
dropped_variables = ifelse(length(dropped_vars) == 0, "無", paste(dropped_vars, collapse = ", ")),
original_n = nrow(analysis_data),
mca_n = nrow(mca_data)
) %>%
kable(caption = "MCA 實際納入資料")
MCA 實際納入資料
| 財富重視, 享樂重視, 成就重視, 守規重視, 話題好奇 |
購買意願, 停止推銷, 推銷干擾, 推銷不適, 理性消費,
網紅反感, 性別, 年齡, 教育, 收入 |
無 |
2016 |
835 |
res_mca <- FactoMineR::MCA(
mca_data,
quali.sup = supplementary_index,
graph = FALSE
)
res_mca$eig %>%
as.data.frame() %>%
head(10) %>%
kable(digits = 3, caption = "MCA 前 10 軸特徵值與解釋變異")
MCA 前 10 軸特徵值與解釋變異
| dim 1 |
0.322 |
16.097 |
16.097 |
| dim 2 |
0.286 |
14.296 |
30.393 |
| dim 3 |
0.201 |
10.069 |
40.462 |
| dim 4 |
0.194 |
9.723 |
50.185 |
| dim 5 |
0.185 |
9.245 |
59.430 |
| dim 6 |
0.180 |
8.976 |
68.406 |
| dim 7 |
0.171 |
8.562 |
76.968 |
| dim 8 |
0.163 |
8.171 |
85.140 |
| dim 9 |
0.155 |
7.753 |
92.893 |
| dim 10 |
0.142 |
7.107 |
100.000 |
summary(res_mca, ncp = 3, nbelements = 10)
##
## Call:
## FactoMineR::MCA(X = mca_data, quali.sup = supplementary_index,
## graph = FALSE)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
## Variance 0.322 0.286 0.201 0.194 0.185 0.180 0.171
## % of var. 16.097 14.296 10.069 9.723 9.245 8.976 8.562
## Cumulative % of var. 16.097 30.393 40.462 50.185 59.430 68.406 76.968
## Dim.8 Dim.9 Dim.10
## Variance 0.163 0.155 0.142
## % of var. 8.171 7.753 7.107
## Cumulative % of var. 85.140 92.893 100.000
##
## Individuals (the 10 first)
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## 1 | -0.331 0.041 0.108 | -0.141 0.008 0.020 | 0.412 0.101 0.167 |
## 2 | -0.587 0.128 0.228 | 0.266 0.030 0.047 | 0.086 0.004 0.005 |
## 3 | 1.300 0.629 0.409 | 0.733 0.225 0.130 | 0.076 0.003 0.001 |
## 4 | 0.874 0.284 0.197 | 0.460 0.089 0.054 | 0.357 0.076 0.033 |
## 5 | -0.335 0.042 0.072 | 0.323 0.044 0.067 | 0.785 0.367 0.396 |
## 6 | 0.773 0.222 0.173 | 0.916 0.351 0.243 | -0.503 0.150 0.073 |
## 7 | -0.719 0.192 0.237 | 0.745 0.233 0.255 | 0.020 0.000 0.000 |
## 8 | 0.596 0.132 0.114 | 0.661 0.183 0.140 | 0.095 0.005 0.003 |
## 9 | 0.140 0.007 0.004 | 1.011 0.428 0.216 | 0.320 0.061 0.022 |
## 10 | 0.059 0.001 0.002 | 0.929 0.361 0.369 | -0.608 0.220 0.158 |
##
## Categories (the 10 first)
## Dim.1 ctr cos2 v.test Dim.2 ctr cos2
## 財富重視_不像我 | -0.446 6.213 0.201 -12.955 | 0.448 7.068 0.203
## 財富重視_有點像 | 0.045 0.045 0.001 0.977 | -0.766 15.001 0.338
## 財富重視_很像我 | 1.579 20.403 0.378 17.762 | 0.413 1.573 0.026
## 享樂重視_不像我 | -0.676 5.331 0.106 -9.388 | 0.817 8.775 0.154
## 享樂重視_有點像 | -0.300 2.822 0.092 -8.752 | -0.465 7.639 0.221
## 享樂重視_很像我 | 0.909 15.721 0.365 17.446 | 0.265 1.510 0.031
## 成就重視_不像我 | -0.405 6.263 0.262 -14.789 | 0.288 3.575 0.133
## 成就重視_有點像 | 0.343 2.299 0.054 6.712 | -0.783 13.511 0.282
## 成就重視_很像我 | 2.032 17.820 0.308 16.034 | 0.997 4.834 0.074
## 守規重視_不像我 | -0.287 1.092 0.022 -4.317 | 0.721 7.748 0.141
## v.test Dim.3 ctr cos2 v.test
## 財富重視_不像我 13.021 | -0.191 1.823 0.037 -5.551 |
## 財富重視_有點像 -16.786 | 0.247 2.206 0.035 5.403 |
## 財富重視_很像我 4.648 | 0.046 0.027 0.000 0.514 |
## 享樂重視_不像我 11.351 | 0.072 0.097 0.001 1.002 |
## 享樂重視_有點像 -13.570 | 0.221 2.454 0.050 6.455 |
## 享樂重視_很像我 5.096 | -0.409 5.087 0.074 -7.849 |
## 成就重視_不像我 10.530 | 0.018 0.021 0.001 0.670 |
## 成就重視_有點像 -15.335 | -0.189 1.112 0.016 -3.693 |
## 成就重視_很像我 7.870 | 0.693 3.310 0.036 5.466 |
## 守規重視_不像我 10.836 | 0.885 16.581 0.212 13.303 |
##
## Categorical variables (eta2)
## Dim.1 Dim.2 Dim.3
## 財富重視 | 0.429 0.338 0.041 |
## 享樂重視 | 0.384 0.256 0.077 |
## 成就重視 | 0.425 0.313 0.045 |
## 守規重視 | 0.197 0.287 0.328 |
## 話題好奇 | 0.174 0.235 0.516 |
##
## Supplementary categories (the 10 first)
## Dim.1 cos2 v.test Dim.2 cos2 v.test Dim.3 cos2
## 購買意願_不同意 | -0.153 0.018 -3.829 | 0.166 0.021 4.163 | -0.052 0.002
## 購買意願_普通 | 0.042 0.001 1.031 | -0.135 0.013 -3.337 | -0.013 0.000
## 購買意願_同意 | 0.326 0.018 3.909 | -0.097 0.002 -1.160 | 0.190 0.006
## 停止推銷_不同意 | 0.006 0.000 0.122 | 0.104 0.005 1.980 | 0.199 0.017
## 停止推銷_普通 | -0.001 0.000 -0.032 | -0.090 0.006 -2.232 | -0.127 0.012
## 停止推銷_同意 | -0.005 0.000 -0.091 | 0.025 0.000 0.436 | -0.023 0.000
## 推銷干擾_不同意 | 0.001 0.000 0.012 | 0.050 0.001 0.761 | 0.171 0.008
## 推銷干擾_普通 | -0.026 0.000 -0.506 | -0.125 0.007 -2.428 | 0.004 0.000
## 推銷干擾_同意 | 0.017 0.000 0.460 | 0.060 0.003 1.622 | -0.082 0.006
## 推銷不適_不同意 | 0.008 0.000 0.164 | 0.084 0.004 1.739 | 0.148 0.011
## v.test
## 購買意願_不同意 -1.311 |
## 購買意願_普通 -0.321 |
## 購買意願_同意 2.279 |
## 停止推銷_不同意 3.790 |
## 停止推銷_普通 -3.171 |
## 停止推銷_同意 -0.396 |
## 推銷干擾_不同意 2.608 |
## 推銷干擾_普通 0.068 |
## 推銷干擾_同意 -2.220 |
## 推銷不適_不同意 3.076 |
##
## Supplementary categorical variables (eta2)
## Dim.1 Dim.2 Dim.3
## 購買意願 | 0.026 0.021 0.007 |
## 停止推銷 | 0.000 0.007 0.019 |
## 推銷干擾 | 0.000 0.007 0.010 |
## 推銷不適 | 0.001 0.007 0.011 |
## 理性消費 | 0.003 0.009 0.003 |
## 網紅反感 | 0.001 0.005 0.015 |
## 性別 | 0.000 0.007 0.002 |
## 年齡 | 0.030 0.035 0.024 |
## 教育 | 0.010 0.020 0.011 |
## 收入 | 0.004 0.002 0.004 |
dimdesc(res_mca, axes = 1:2)
## $`Dim 1`
##
## Link between the variable and the categorical variable (1-way anova)
## =============================================
## R2 p.value
## 財富重視 0.42917034 5.089974e-102
## 成就重視 0.42466720 1.337703e-100
## 享樂重視 0.38429605 2.391818e-88
## 守規重視 0.19744123 1.829645e-40
## 話題好奇 0.17413073 2.723351e-35
## 購買意願 0.02640089 1.466057e-05
## 年齡 0.03024955 1.110419e-04
##
## Link between variable and the categories of the categorical variables
## ================================================================
## Estimate p.value
## 財富重視=財富重視_很像我 0.67316856 4.886831e-88
## 享樂重視=享樂重視_很像我 0.52813566 3.387734e-84
## 成就重視=成就重視_很像我 0.78040282 1.077221e-68
## 守規重視=守規重視_很像我 0.37359626 1.023501e-41
## 話題好奇=話題好奇_同意 0.33984158 4.679210e-33
## 年齡=18-19歲 0.17263672 1.924345e-05
## 購買意願=購買意願_同意 0.14425863 8.728325e-05
## 年齡=50-59歲 -0.11028975 4.305550e-02
## 教育=國初中 -0.18062085 2.814287e-02
## 年齡=30-39歲 -0.05103839 7.784683e-03
## 購買意願=購買意願_不同意 -0.12736299 1.216275e-04
## 守規重視=守規重視_不像我 -0.18980296 1.444299e-05
## 話題好奇=話題好奇_普通 -0.06551634 4.142470e-09
## 成就重視=成就重視_有點像 -0.17814859 1.050590e-11
## 話題好奇=話題好奇_不同意 -0.27432523 2.855600e-14
## 守規重視=守規重視_有點像 -0.18379330 2.612127e-16
## 享樂重視=享樂重視_有點像 -0.15746523 3.383251e-19
## 享樂重視=享樂重視_不像我 -0.37067042 5.266693e-22
## 財富重視=財富重視_不像我 -0.47573564 1.400076e-42
## 成就重視=成就重視_不像我 -0.60225422 5.202484e-57
##
## $`Dim 2`
##
## Link between the variable and the categorical variable (1-way anova)
## =============================================
## R2 p.value
## 財富重視 0.337984159 3.028634e-75
## 成就重視 0.313361085 1.199555e-68
## 守規重視 0.286542957 1.002344e-61
## 享樂重視 0.256234419 3.291607e-54
## 話題好奇 0.235444860 3.148227e-49
## 年齡 0.034693051 2.002853e-05
## 購買意願 0.020934340 1.505624e-04
## 教育 0.020477598 4.165299e-03
## 性別 0.006982867 1.572263e-02
## 理性消費 0.009436089 1.936960e-02
##
## Link between variable and the categories of the categorical variables
## ================================================================
## Estimate p.value
## 話題好奇=話題好奇_不同意 0.46649489 2.170353e-49
## 財富重視=財富重視_不像我 0.22269501 4.708414e-43
## 享樂重視=享樂重視_不像我 0.32672090 3.089417e-32
## 守規重視=守規重視_不像我 0.28208350 2.621518e-29
## 成就重視=成就重視_不像我 0.06452082 1.181299e-27
## 成就重視=成就重視_很像我 0.44376113 1.104382e-15
## 守規重視=守規重視_很像我 0.09858643 3.397617e-12
## 享樂重視=享樂重視_很像我 0.03186268 2.878260e-07
## 財富重視=財富重視_很像我 0.20397412 2.949576e-06
## 購買意願=購買意願_不同意 0.10053990 2.905940e-05
## 年齡=50-59歲 0.14830909 2.844211e-04
## 年齡=60歲以上 0.36932506 9.918133e-04
## 教育=小學以下 0.47026634 1.712143e-03
## 性別=女性 0.04468220 1.572263e-02
## 理性消費=理性消費_不同意 0.18345331 2.880042e-02
## 停止推銷=停止推銷_不同意 0.04850916 4.769558e-02
## 網紅反感=中反感 -0.04990065 4.462021e-02
## 停止推銷=停止推銷_普通 -0.05486949 2.549948e-02
## 推銷不適=推銷不適_普通 -0.05981492 1.622617e-02
## 性別=男性 -0.04468220 1.572263e-02
## 推銷干擾=推銷干擾_普通 -0.06408313 1.510838e-02
## 年齡=18-19歲 -0.19337094 4.949573e-03
## 話題好奇=話題好奇_同意 -0.19268305 2.219449e-03
## 購買意願=購買意願_普通 -0.06043970 8.231009e-04
## 話題好奇=話題好奇_普通 -0.27381184 2.499789e-13
## 享樂重視=享樂重視_有點像 -0.35858358 4.373005e-47
## 守規重視=守規重視_有點像 -0.38066993 1.774967e-59
## 成就重視=成就重視_有點像 -0.50828195 6.312838e-62
## 財富重視=財富重視_有點像 -0.42666912 1.266923e-76
MCA 判讀依據
本報告依據三個資訊判讀 MCA:
- 主動類別貢獻度:判斷 Dim1 / Dim2 主要由哪些價值類別形成。
- 類別座標位置:判斷類別彼此接近或對立的關係。
- 補充變數位置:觀察「高反感」「停止推銷」「推銷干擾」「推銷不適」靠近哪些價值輪廓。
active_stats <- tibble(
category = rownames(res_mca$var$coord),
dim1_coord = res_mca$var$coord[, 1],
dim2_coord = res_mca$var$coord[, 2],
dim1_contrib = res_mca$var$contrib[, 1],
dim2_contrib = res_mca$var$contrib[, 2],
dim1_cos2 = res_mca$var$cos2[, 1],
dim2_cos2 = res_mca$var$cos2[, 2]
)
supp_stats <- tibble(
category = rownames(res_mca$quali.sup$coord),
dim1_coord = res_mca$quali.sup$coord[, 1],
dim2_coord = res_mca$quali.sup$coord[, 2],
dim1_cos2 = res_mca$quali.sup$cos2[, 1],
dim2_cos2 = res_mca$quali.sup$cos2[, 2]
)
active_stats %>%
arrange(desc(dim1_contrib)) %>%
slice_head(n = 12) %>%
kable(digits = 3, caption = "Dim1 貢獻度最高的主動類別")
Dim1 貢獻度最高的主動類別
| 財富重視_很像我 |
1.579 |
0.413 |
20.403 |
1.573 |
0.378 |
0.026 |
| 成就重視_很像我 |
2.032 |
0.997 |
17.820 |
4.834 |
0.308 |
0.074 |
| 享樂重視_很像我 |
0.909 |
0.265 |
15.721 |
1.510 |
0.365 |
0.031 |
| 守規重視_很像我 |
0.706 |
0.378 |
8.784 |
2.832 |
0.197 |
0.057 |
| 成就重視_不像我 |
-0.405 |
0.288 |
6.263 |
3.575 |
0.262 |
0.133 |
| 財富重視_不像我 |
-0.446 |
0.448 |
6.213 |
7.068 |
0.201 |
0.203 |
| 話題好奇_同意 |
0.487 |
-0.129 |
5.900 |
0.469 |
0.158 |
0.011 |
| 享樂重視_不像我 |
-0.676 |
0.817 |
5.331 |
8.775 |
0.106 |
0.154 |
| 話題好奇_不同意 |
-0.595 |
1.103 |
3.505 |
13.562 |
0.067 |
0.231 |
| 享樂重視_有點像 |
-0.300 |
-0.465 |
2.822 |
7.639 |
0.092 |
0.221 |
| 守規重視_有點像 |
-0.277 |
-0.519 |
2.390 |
9.464 |
0.077 |
0.272 |
| 成就重視_有點像 |
0.343 |
-0.783 |
2.299 |
13.511 |
0.054 |
0.282 |
active_stats %>%
arrange(desc(dim2_contrib)) %>%
slice_head(n = 12) %>%
kable(digits = 3, caption = "Dim2 貢獻度最高的主動類別")
Dim2 貢獻度最高的主動類別
| 財富重視_有點像 |
0.045 |
-0.766 |
0.045 |
15.001 |
0.001 |
0.338 |
| 話題好奇_不同意 |
-0.595 |
1.103 |
3.505 |
13.562 |
0.067 |
0.231 |
| 成就重視_有點像 |
0.343 |
-0.783 |
2.299 |
13.511 |
0.054 |
0.282 |
| 守規重視_有點像 |
-0.277 |
-0.519 |
2.390 |
9.464 |
0.077 |
0.272 |
| 享樂重視_不像我 |
-0.676 |
0.817 |
5.331 |
8.775 |
0.106 |
0.154 |
| 守規重視_不像我 |
-0.287 |
0.721 |
1.092 |
7.748 |
0.022 |
0.141 |
| 享樂重視_有點像 |
-0.300 |
-0.465 |
2.822 |
7.639 |
0.092 |
0.221 |
| 財富重視_不像我 |
-0.446 |
0.448 |
6.213 |
7.068 |
0.201 |
0.203 |
| 成就重視_很像我 |
2.032 |
0.997 |
17.820 |
4.834 |
0.308 |
0.074 |
| 成就重視_不像我 |
-0.405 |
0.288 |
6.263 |
3.575 |
0.262 |
0.133 |
| 守規重視_很像我 |
0.706 |
0.378 |
8.784 |
2.832 |
0.197 |
0.057 |
| 話題好奇_普通 |
-0.227 |
-0.281 |
1.413 |
2.438 |
0.041 |
0.062 |
supp_stats %>%
filter(str_detect(category, "購買意願|停止推銷|推銷干擾|推銷不適|理性消費|網紅反感")) %>%
arrange(desc(dim1_cos2 + dim2_cos2)) %>%
kable(digits = 3, caption = "網紅推薦態度補充類別位置")
網紅推薦態度補充類別位置
| 購買意願_不同意 |
-0.153 |
0.166 |
0.018 |
0.021 |
| 購買意願_同意 |
0.326 |
-0.097 |
0.018 |
0.002 |
| 購買意願_普通 |
0.042 |
-0.135 |
0.001 |
0.013 |
| 推銷不適_普通 |
-0.039 |
-0.103 |
0.001 |
0.007 |
| 推銷干擾_普通 |
-0.026 |
-0.125 |
0.000 |
0.007 |
| 理性消費_普通 |
-0.165 |
-0.207 |
0.003 |
0.004 |
| 理性消費_不同意 |
0.117 |
0.414 |
0.000 |
0.006 |
| 停止推銷_普通 |
-0.001 |
-0.090 |
0.000 |
0.006 |
| 停止推銷_不同意 |
0.006 |
0.104 |
0.000 |
0.005 |
| 推銷不適_不同意 |
0.008 |
0.084 |
0.000 |
0.004 |
| 推銷干擾_同意 |
0.017 |
0.060 |
0.000 |
0.003 |
| 推銷不適_同意 |
0.048 |
0.046 |
0.001 |
0.001 |
| 理性消費_同意 |
0.013 |
0.006 |
0.001 |
0.000 |
| 推銷干擾_不同意 |
0.001 |
0.050 |
0.000 |
0.001 |
| 停止推銷_同意 |
-0.005 |
0.025 |
0.000 |
0.000 |
factoextra::fviz_screeplot(res_mca, addlabels = TRUE, ylim = c(0, 40)) +
labs(title = "MCA 特徵值與解釋變異")

anti_pattern <- "購買意願|停止推銷|推銷干擾|推銷不適|理性消費|網紅反感"
value_plot_data <- bind_rows(
active_stats %>%
arrange(desc(dim1_contrib + dim2_contrib)) %>%
slice_head(n = 15) %>%
transmute(
category,
dim1_coord,
dim2_coord,
type = "個人價值"
),
supp_stats %>%
filter(str_detect(category, anti_pattern)) %>%
transmute(
category,
dim1_coord,
dim2_coord,
type = "反推薦態度"
)
)
ggplot(value_plot_data, aes(x = dim1_coord, y = dim2_coord, label = category, color = type)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey55") +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey55") +
geom_point(size = 2.8) +
geom_text(check_overlap = TRUE, vjust = -0.6, size = 3.2) +
scale_color_manual(values = c("個人價值" = "#4C78A8", "反推薦態度" = "#D64B2A")) +
theme_minimal(base_size = 12) +
labs(
title = "圖1 價值主導 MCA:個人價值與反推薦態度對照",
subtitle = "個人價值為主動變數;反推薦態度為補充變數投影",
x = paste0("Dim 1 (", round(res_mca$eig[1, 2], 2), "%)"),
y = paste0("Dim 2 (", round(res_mca$eig[2, 2], 2), "%)"),
color = "類別角色"
)

supp_stats %>%
filter(str_detect(category, anti_pattern)) %>%
mutate(total_cos2 = dim1_cos2 + dim2_cos2) %>%
arrange(desc(total_cos2)) %>%
slice_head(n = 20) %>%
ggplot(aes(x = dim1_coord, y = dim2_coord, label = category)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey55") +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey55") +
geom_point(color = "#2E7D32", size = 2.6) +
geom_text(check_overlap = TRUE, vjust = -0.6, size = 3.3, color = "#2E7D32") +
theme_minimal(base_size = 12) +
labs(
title = "MCA 補充類別圖:網紅推薦態度位置",
x = paste0("Dim 1 (", round(res_mca$eig[1, 2], 2), "%)"),
y = paste0("Dim 2 (", round(res_mca$eig[2, 2], 2), "%)")
)

反推薦主導 MCA 圖
本段改由「網紅反推薦態度」建構 MCA
空間,再把個人價值作為補充變數投影。這張圖用來回答:反推薦態度內部是否形成穩定結構,以及高反感、購買意願、理性消費之間是否同向或相反。
anti_active_vars <- c("購買意願", "停止推銷", "推銷干擾", "推銷不適", "理性消費", "網紅反感")
value_supp_vars <- c("財富重視", "享樂重視", "成就重視", "守規重視", "話題好奇", "性別", "年齡", "教育", "收入")
anti_mca_data <- analysis_data %>%
select(all_of(c(anti_active_vars, value_supp_vars))) %>%
filter(if_all(everything(), ~ !is.na(.x))) %>%
mutate(across(everything(), droplevels))
anti_valid_vars <- names(anti_mca_data)[
vapply(anti_mca_data, function(x) nlevels(droplevels(x)) >= 2, logical(1))
]
anti_dropped_vars <- setdiff(names(anti_mca_data), anti_valid_vars)
anti_mca_data <- anti_mca_data %>%
select(all_of(anti_valid_vars)) %>%
mutate(across(everything(), droplevels))
anti_active_kept <- intersect(anti_active_vars, names(anti_mca_data))
value_supp_kept <- intersect(value_supp_vars, names(anti_mca_data))
anti_supp_index <- match(value_supp_kept, names(anti_mca_data))
tibble(
active_variables = paste(anti_active_kept, collapse = ", "),
supplementary_variables = paste(value_supp_kept, collapse = ", "),
dropped_variables = ifelse(length(anti_dropped_vars) == 0, "無", paste(anti_dropped_vars, collapse = ", ")),
original_n = nrow(analysis_data),
mca_n = nrow(anti_mca_data)
) %>%
kable(caption = "反推薦主導 MCA 納入資料")
反推薦主導 MCA 納入資料
| 購買意願, 停止推銷, 推銷干擾, 推銷不適, 理性消費,
網紅反感 |
財富重視, 享樂重視, 成就重視, 守規重視, 話題好奇, 性別,
年齡, 教育, 收入 |
無 |
2016 |
835 |
res_mca_anti <- FactoMineR::MCA(
anti_mca_data,
quali.sup = anti_supp_index,
graph = FALSE
)
anti_active_stats <- tibble(
category = rownames(res_mca_anti$var$coord),
dim1_coord = res_mca_anti$var$coord[, 1],
dim2_coord = res_mca_anti$var$coord[, 2],
dim1_contrib = res_mca_anti$var$contrib[, 1],
dim2_contrib = res_mca_anti$var$contrib[, 2],
dim1_cos2 = res_mca_anti$var$cos2[, 1],
dim2_cos2 = res_mca_anti$var$cos2[, 2]
)
anti_supp_stats <- tibble(
category = rownames(res_mca_anti$quali.sup$coord),
dim1_coord = res_mca_anti$quali.sup$coord[, 1],
dim2_coord = res_mca_anti$quali.sup$coord[, 2],
dim1_cos2 = res_mca_anti$quali.sup$cos2[, 1],
dim2_cos2 = res_mca_anti$quali.sup$cos2[, 2]
)
anti_plot_data <- bind_rows(
anti_active_stats %>%
transmute(
category,
dim1_coord,
dim2_coord,
type = "反推薦態度"
),
anti_supp_stats %>%
filter(str_detect(category, "財富重視|享樂重視|成就重視|守規重視|話題好奇")) %>%
mutate(total_cos2 = dim1_cos2 + dim2_cos2) %>%
arrange(desc(total_cos2)) %>%
slice_head(n = 12) %>%
transmute(
category,
dim1_coord,
dim2_coord,
type = "個人價值"
)
)
ggplot(anti_plot_data, aes(x = dim1_coord, y = dim2_coord, label = category, color = type)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey55") +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey55") +
geom_point(size = 2.8) +
geom_text(check_overlap = TRUE, vjust = -0.6, size = 3.2) +
scale_color_manual(values = c("反推薦態度" = "#D64B2A", "個人價值" = "#4C78A8")) +
theme_minimal(base_size = 12) +
labs(
title = "圖2 反推薦主導 MCA:反推薦態度內部結構",
subtitle = "反推薦態度為主動變數;個人價值為補充變數投影",
x = paste0("Dim 1 (", round(res_mca_anti$eig[1, 2], 2), "%)"),
y = paste0("Dim 2 (", round(res_mca_anti$eig[2, 2], 2), "%)"),
color = "類別角色"
)

anti_active_stats %>%
arrange(desc(dim1_contrib + dim2_contrib)) %>%
slice_head(n = 15) %>%
kable(digits = 3, caption = "反推薦主導 MCA:高貢獻主動類別")
反推薦主導 MCA:高貢獻主動類別
| 低反感 |
1.480 |
0.809 |
16.740 |
6.334 |
0.690 |
0.206 |
| 高反感 |
-1.120 |
0.776 |
13.094 |
7.957 |
0.609 |
0.292 |
| 推銷干擾_不同意 |
1.408 |
0.804 |
13.796 |
5.693 |
0.553 |
0.180 |
| 中反感 |
0.027 |
-1.032 |
0.010 |
18.665 |
0.001 |
0.815 |
| 推銷不適_同意 |
-1.102 |
0.776 |
10.265 |
6.448 |
0.437 |
0.217 |
| 推銷不適_不同意 |
1.078 |
0.471 |
12.664 |
3.061 |
0.602 |
0.115 |
| 推銷干擾_普通 |
0.246 |
-1.062 |
0.599 |
14.203 |
0.027 |
0.510 |
| 停止推銷_同意 |
-1.065 |
0.645 |
9.761 |
4.530 |
0.419 |
0.153 |
| 推銷不適_普通 |
-0.194 |
-0.930 |
0.471 |
13.761 |
0.024 |
0.562 |
| 停止推銷_不同意 |
1.020 |
0.475 |
10.094 |
2.777 |
0.454 |
0.099 |
| 推銷干擾_同意 |
-0.815 |
0.331 |
9.969 |
2.078 |
0.590 |
0.097 |
| 停止推銷_普通 |
-0.054 |
-0.747 |
0.040 |
9.608 |
0.002 |
0.414 |
| 理性消費_普通 |
0.257 |
-0.728 |
0.189 |
1.923 |
0.006 |
0.052 |
| 購買意願_同意 |
0.533 |
0.265 |
1.335 |
0.418 |
0.049 |
0.012 |
| 購買意願_普通 |
0.021 |
-0.288 |
0.006 |
1.421 |
0.000 |
0.061 |
全變數 MCA 圖
下圖將本次分析中的所有變數都作為主動變數納入
MCA。為了避免跳答或未回答類別主導座標,本段會先排除任一納入變數為缺失的樣本,再進行
MCA。
all_mca_vars <- c(active_vars, supplementary_vars)
all_mca_data <- analysis_data %>%
select(all_of(all_mca_vars)) %>%
filter(if_all(everything(), ~ !is.na(.x))) %>%
mutate(across(everything(), droplevels))
all_valid_vars <- names(all_mca_data)[
vapply(all_mca_data, function(x) nlevels(droplevels(x)) >= 2, logical(1))
]
all_dropped_vars <- setdiff(names(all_mca_data), all_valid_vars)
all_mca_data <- all_mca_data %>%
select(all_of(all_valid_vars)) %>%
mutate(across(everything(), droplevels))
tibble(
included_variables = paste(names(all_mca_data), collapse = ", "),
dropped_variables = ifelse(length(all_dropped_vars) == 0, "無", paste(all_dropped_vars, collapse = ", ")),
original_n = nrow(analysis_data),
complete_case_n = nrow(all_mca_data)
) %>%
kable(caption = "全變數 MCA 納入資料")
全變數 MCA 納入資料
| 財富重視, 享樂重視, 成就重視, 守規重視, 話題好奇,
購買意願, 停止推銷, 推銷干擾, 推銷不適, 理性消費, 網紅反感, 性別, 年齡,
教育, 收入 |
無 |
2016 |
835 |
res_mca_all <- FactoMineR::MCA(
all_mca_data,
graph = FALSE
)
all_active_stats <- tibble(
category = rownames(res_mca_all$var$coord),
dim1_coord = res_mca_all$var$coord[, 1],
dim2_coord = res_mca_all$var$coord[, 2],
dim1_contrib = res_mca_all$var$contrib[, 1],
dim2_contrib = res_mca_all$var$contrib[, 2]
)
all_plot_data <- bind_rows(
all_active_stats %>%
arrange(desc(dim1_contrib + dim2_contrib)) %>%
slice_head(n = 25),
all_active_stats %>%
filter(str_detect(category, anti_pattern))
) %>%
distinct(category, .keep_all = TRUE) %>%
mutate(type = if_else(str_detect(category, anti_pattern), "反推薦態度", "其他變數"))
ggplot(all_plot_data, aes(x = dim1_coord, y = dim2_coord, label = category, color = type)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "grey55") +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey55") +
geom_point(size = 2.8) +
geom_text(check_overlap = TRUE, vjust = -0.6, size = 3.1) +
scale_color_manual(values = c("反推薦態度" = "#D64B2A", "其他變數" = "#4C78A8")) +
theme_minimal(base_size = 12) +
labs(
title = "圖3 全變數 MCA:排除跳答與未回答",
x = paste0("Dim 1 (", round(res_mca_all$eig[1, 2], 2), "%)"),
y = paste0("Dim 2 (", round(res_mca_all$eig[2, 2], 2), "%)"),
color = "類別角色"
)

解讀輔助表
active_stats %>%
mutate(axis_side = case_when(
dim1_coord > 0 ~ "Dim1 右側",
dim1_coord < 0 ~ "Dim1 左側",
TRUE ~ "Dim1 中間"
)) %>%
arrange(desc(abs(dim1_coord) * dim1_contrib)) %>%
slice_head(n = 12) %>%
kable(digits = 3, caption = "Dim1 主要判讀依據")
Dim1 主要判讀依據
| 成就重視_很像我 |
2.032 |
0.997 |
17.820 |
4.834 |
0.308 |
0.074 |
Dim1 右側 |
| 財富重視_很像我 |
1.579 |
0.413 |
20.403 |
1.573 |
0.378 |
0.026 |
Dim1 右側 |
| 享樂重視_很像我 |
0.909 |
0.265 |
15.721 |
1.510 |
0.365 |
0.031 |
Dim1 右側 |
| 守規重視_很像我 |
0.706 |
0.378 |
8.784 |
2.832 |
0.197 |
0.057 |
Dim1 右側 |
| 享樂重視_不像我 |
-0.676 |
0.817 |
5.331 |
8.775 |
0.106 |
0.154 |
Dim1 左側 |
| 話題好奇_同意 |
0.487 |
-0.129 |
5.900 |
0.469 |
0.158 |
0.011 |
Dim1 右側 |
| 財富重視_不像我 |
-0.446 |
0.448 |
6.213 |
7.068 |
0.201 |
0.203 |
Dim1 左側 |
| 成就重視_不像我 |
-0.405 |
0.288 |
6.263 |
3.575 |
0.262 |
0.133 |
Dim1 左側 |
| 話題好奇_不同意 |
-0.595 |
1.103 |
3.505 |
13.562 |
0.067 |
0.231 |
Dim1 左側 |
| 享樂重視_有點像 |
-0.300 |
-0.465 |
2.822 |
7.639 |
0.092 |
0.221 |
Dim1 左側 |
| 成就重視_有點像 |
0.343 |
-0.783 |
2.299 |
13.511 |
0.054 |
0.282 |
Dim1 右側 |
| 守規重視_有點像 |
-0.277 |
-0.519 |
2.390 |
9.464 |
0.077 |
0.272 |
Dim1 左側 |
active_stats %>%
mutate(axis_side = case_when(
dim2_coord > 0 ~ "Dim2 上方",
dim2_coord < 0 ~ "Dim2 下方",
TRUE ~ "Dim2 中間"
)) %>%
arrange(desc(abs(dim2_coord) * dim2_contrib)) %>%
slice_head(n = 12) %>%
kable(digits = 3, caption = "Dim2 主要判讀依據")
Dim2 主要判讀依據
| 話題好奇_不同意 |
-0.595 |
1.103 |
3.505 |
13.562 |
0.067 |
0.231 |
Dim2 上方 |
| 財富重視_有點像 |
0.045 |
-0.766 |
0.045 |
15.001 |
0.001 |
0.338 |
Dim2 下方 |
| 成就重視_有點像 |
0.343 |
-0.783 |
2.299 |
13.511 |
0.054 |
0.282 |
Dim2 下方 |
| 享樂重視_不像我 |
-0.676 |
0.817 |
5.331 |
8.775 |
0.106 |
0.154 |
Dim2 上方 |
| 守規重視_不像我 |
-0.287 |
0.721 |
1.092 |
7.748 |
0.022 |
0.141 |
Dim2 上方 |
| 守規重視_有點像 |
-0.277 |
-0.519 |
2.390 |
9.464 |
0.077 |
0.272 |
Dim2 下方 |
| 成就重視_很像我 |
2.032 |
0.997 |
17.820 |
4.834 |
0.308 |
0.074 |
Dim2 上方 |
| 享樂重視_有點像 |
-0.300 |
-0.465 |
2.822 |
7.639 |
0.092 |
0.221 |
Dim2 下方 |
| 財富重視_不像我 |
-0.446 |
0.448 |
6.213 |
7.068 |
0.201 |
0.203 |
Dim2 上方 |
| 守規重視_很像我 |
0.706 |
0.378 |
8.784 |
2.832 |
0.197 |
0.057 |
Dim2 上方 |
| 成就重視_不像我 |
-0.405 |
0.288 |
6.263 |
3.575 |
0.262 |
0.133 |
Dim2 上方 |
| 話題好奇_普通 |
-0.227 |
-0.281 |
1.413 |
2.438 |
0.041 |
0.062 |
Dim2 下方 |
supp_stats %>%
filter(str_detect(category, "網紅反感|停止推銷|推銷干擾|推銷不適|購買意願|理性消費")) %>%
mutate(total_cos2 = dim1_cos2 + dim2_cos2) %>%
arrange(desc(total_cos2)) %>%
kable(digits = 3, caption = "網紅態度補充變數判讀依據")
網紅態度補充變數判讀依據
| 購買意願_不同意 |
-0.153 |
0.166 |
0.018 |
0.021 |
0.038 |
| 購買意願_同意 |
0.326 |
-0.097 |
0.018 |
0.002 |
0.020 |
| 購買意願_普通 |
0.042 |
-0.135 |
0.001 |
0.013 |
0.015 |
| 推銷不適_普通 |
-0.039 |
-0.103 |
0.001 |
0.007 |
0.008 |
| 推銷干擾_普通 |
-0.026 |
-0.125 |
0.000 |
0.007 |
0.007 |
| 理性消費_普通 |
-0.165 |
-0.207 |
0.003 |
0.004 |
0.007 |
| 理性消費_不同意 |
0.117 |
0.414 |
0.000 |
0.006 |
0.006 |
| 停止推銷_普通 |
-0.001 |
-0.090 |
0.000 |
0.006 |
0.006 |
| 停止推銷_不同意 |
0.006 |
0.104 |
0.000 |
0.005 |
0.005 |
| 推銷不適_不同意 |
0.008 |
0.084 |
0.000 |
0.004 |
0.004 |
| 推銷干擾_同意 |
0.017 |
0.060 |
0.000 |
0.003 |
0.003 |
| 推銷不適_同意 |
0.048 |
0.046 |
0.001 |
0.001 |
0.002 |
| 理性消費_同意 |
0.013 |
0.006 |
0.001 |
0.000 |
0.001 |
| 推銷干擾_不同意 |
0.001 |
0.050 |
0.000 |
0.001 |
0.001 |
| 停止推銷_同意 |
-0.005 |
0.025 |
0.000 |
0.000 |
0.000 |
初步結論撰寫位置
完成渲染後,請依據上方三組表格與 MCA
圖進行結論撰寫。建議依序回答:
- Dim1 主要區分哪一種價值取向?
- Dim2 主要區分哪一種價值取向?
- 高反感是否靠近特定價值類別?
- 購買意願與高反感是否位於相反方向?
- 若要做商業溝通,哪一群人適合降低推銷感,哪一群人適合商品利益導向溝通?
輸出
output_dir <- "influencer_anti_value_mca_outputs"
dir.create(output_dir, showWarnings = FALSE)
write.csv(
analysis_data,
file.path(output_dir, "cleaned_influencer_anti_value_data.csv"),
row.names = FALSE,
fileEncoding = "UTF-8"
)
write.csv(
active_stats,
file.path(output_dir, "mca_active_category_stats.csv"),
row.names = FALSE,
fileEncoding = "UTF-8"
)
write.csv(
supp_stats,
file.path(output_dir, "mca_supplementary_category_stats.csv"),
row.names = FALSE,
fileEncoding = "UTF-8"
)