研究問題與資料來源
本研究關注大學生內在政治效能感之變化,初步預期「政黨認同的形成」、「同儕討論」以及「選舉新聞關注度」會對其產生影響,本作業先整理分析所需變數並提出關聯假設,尚未檢驗假設。
本研究使用中央研究院學術調查研究資料庫(SRDA)釋出的「我國大學生政治社會化的定群追蹤研究」,計畫主持人為陳陸輝,調查執行單位為國立政治大學選舉研究中心。研究對象是 2011 年入學的大學生,本作業使用第一年與第四年的資料。
第一年調查期間為 2012 年 3 月 26 日至 5 月 11 日,觀察值數量(N)為 1,754;第四年為 2015 年 3 月 23 日至 6 月 10 日,觀察值數量(N)為 1,094。以受訪者編號配對後,共有 1,094 人。
變數之間的預期關聯
本研究以 2012 年為「中立及看情形」的學生為對象,比較其至 2015 年是否形成主要政黨認同,以及同一期間內在政治效能感的變化。另加入2012年「同儕政治討論程度」及「選舉新聞關注程度」,比較2012至2015的政治效能感變化,以下皆為待檢驗的假設,並非分析結果。
假設一:政黨認同形成與內在政治效能感變化
相較於持續為「中立及看情形」的學生,我預期形成主要政黨認同者較容易出現內在政治效能感提升。可能的原因是,政黨會提供理解政治資訊的架構,使學生更有理解政治事物的自信,此外,政黨通常也注重支持者的政治參與及政治動員,學生在政黨認同形成期間可能會參與政治活動,進而提升內在政治效能感,但兩次測量無法確定這兩種變化的先後順序。
假設二:同儕政治討論與內在政治效能感變化
相較於 2012 年「從不」或「很少」與同儕討論政治的學生,我預期「有時」或「時常」討論者,較容易在後續出現內在政治效能感提升,因為政治討論可以提供政治資訊,並使討論者有表達與釐清看法的機會。
假設三:選舉新聞關注與內在政治效能感變化
相較於 2012 年「完全不關心」或「不太關心」選舉新聞的學生,我預期「有點關心」或「非常關心」者,較容易在後續出現內在政治效能感提升。關注選舉新聞可能讓學生更熟悉政治人物、政黨立場與公共議題,進而增加理解政治的自信。這項預期仍需後續分析檢驗。
讀入與檢查原始資料
先讀入 2012 年與 2015 年的資料,確認人數、受訪者編號和答案分布。兩個資料檔放在專案的 data 資料夾。
library(foreign)
# 從上一層讀入原始資料
year2012 <- read.spss(
"../year2012.sav",
reencode = "big5",
to.data.frame = TRUE,
use.value.labels = FALSE
)
year2015 <- read.spss(
"../year2015.sav",
reencode = "big5",
to.data.frame = TRUE,
use.value.labels = FALSE
)
# 在專案資料夾內另存 R 資料副本
save(year2012, file = "year2012.rda")
save(year2015, file = "year2015.rda")
# 檢查觀察值數量
nrow(year2012)
# 配對前確認編號欄位存在、沒有遺失或重複
"id" %in% names(year2012)
"id" %in% names(year2015)
sum(duplicated(year2012$id))
sum(duplicated(year2015$id))
length(intersect(year2012$id, year2015$id))
# 確認所需變數存在
c("partyid", "j02", "c01", "q01") %in% names(year2012)
c("partyid", "j02") %in% names(year2015)
# 清理前的答案分布
table(year2012$partyid, useNA = "ifany")
1 2 3 4 5 6
674 345 13 5 684 33
table(year2015$partyid, useNA = "ifany")
1 2 3 4 5 6
219 296 7 6 546 20
table(year2012$j02, useNA = "ifany")
table(year2015$j02, useNA = "ifany")
table(year2012$c01, useNA = "ifany")
table(year2012$q01, useNA = "ifany")
讀入時先保留答案的數字代碼,下面再加上答案文字。
變數清理與編碼
先複製一份資料,保留原始資料不變。檢查後發現,兩年的 j02、第一年的 c01 和 q01 都只有 1 至 4 的有效答案。
2012年同儕政治討論與選舉新聞關注
c01 問「您與同學或朋友會談論政治方面的問題嗎?」;q01 問「在選舉期間,請問您會不會關心選舉的新聞?」。兩題保留四個答案類別,設定為 factor。
clean2012 <- year2012
clean2015 <- year2015
# c01:1 從不、2 很少、3 有時、4 時常
clean2012$peer_discussion <- factor(
clean2012$c01,
levels = c(1, 2, 3, 4),
labels = c("從不", "很少", "有時", "時常")
)
# q01:1 完全不關心、2 不太關心、3 有點關心、4 非常關心
clean2012$election_news <- factor(
clean2012$q01,
levels = c(1, 2, 3, 4),
labels = c("完全不關心", "不太關心", "有點關心", "非常關心")
)
knitr::kable(
as.data.frame(table(clean2012$peer_discussion, useNA = "ifany")),
col.names = c("討論頻率", "人數"),
align = c("l", "r"),
caption = "2012 年同儕政治討論"
)
2012 年同儕政治討論
| 從不 |
660 |
| 很少 |
818 |
| 有時 |
250 |
| 時常 |
26 |
knitr::kable(
as.data.frame(table(clean2012$election_news, useNA = "ifany")),
col.names = c("關注程度", "人數"),
align = c("l", "r"),
caption = "2012 年選舉新聞關注"
)
2012 年選舉新聞關注
| 完全不關心 |
103 |
| 不太關心 |
457 |
| 有點關心 |
976 |
| 非常關心 |
218 |
政黨認同
使用整理後的 partyid,保留六個類別,並轉為 factor。第 6 類包含「無反應及其他政黨」,不能直接當成中立。
# 1 國民黨、2 民進黨、3 親民黨、4 台聯
# 5 中立及看情形、6 無反應及其他政黨
clean2012$party_id <- factor(
clean2012$partyid,
levels = c(1, 2, 3, 4, 5, 6),
labels = c("國民黨", "民進黨", "親民黨", "台聯",
"中立及看情形", "無反應及其他政黨")
)
clean2015$party_id <- factor(
clean2015$partyid,
levels = c(1, 2, 3, 4, 5, 6),
labels = c("國民黨", "民進黨", "親民黨", "台聯",
"中立及看情形", "無反應及其他政黨")
)
knitr::kable(
as.data.frame(table(clean2012$party_id, useNA = "ifany")),
col.names = c("政黨認同", "人數"),
align = c("l", "r"),
caption = "2012 年政黨認同"
)
2012 年政黨認同
| 國民黨 |
674 |
| 民進黨 |
345 |
| 親民黨 |
13 |
| 台聯 |
5 |
| 中立及看情形 |
684 |
| 無反應及其他政黨 |
33 |
knitr::kable(
as.data.frame(table(clean2015$party_id, useNA = "ifany")),
col.names = c("政黨認同", "人數"),
align = c("l", "r"),
caption = "2015 年政黨認同"
)
2015 年政黨認同
| 國民黨 |
219 |
| 民進黨 |
296 |
| 親民黨 |
7 |
| 台聯 |
6 |
| 中立及看情形 |
546 |
| 無反應及其他政黨 |
20 |
內在政治效能感
j02 問「像我這樣的人,是很難了解政治的事情」,答案為 1「非常不同意」、2「不太同意」、3「有點同意」、4「非常同意」。對有效答案以「5 減去原始分數」反向計分,高分代表較高的內在政治效能感。
原始答案仍保留,另外建立分數來計算兩年的變化。這題反映的是理解政治的自信,不代表實際政治知識;用分數相減也只是初步觀察變化的方式。
clean2012$internal_score <- ifelse(
clean2012$j02 %in% c(1, 2, 3, 4),
5 - clean2012$j02,
NA
)
clean2015$internal_score <- ifelse(
clean2015$j02 %in% c(1, 2, 3, 4),
5 - clean2015$j02,
NA
)
# 2012 年:建立原始答案與反向分數的核對表
check2012 <- table(
原始答案 = clean2012$j02,
反向分數 = clean2012$internal_score,
useNA = "ifany"
)
knitr::kable(
as.data.frame.matrix(check2012),
row.names = TRUE,
col.names = c("反向1分", "反向2分", "反向3分", "反向4分"),
caption = "2012 年反向計分核對(左欄為原始答案)"
)
2012 年反向計分核對(左欄為原始答案)
| 1 |
0 |
0 |
0 |
154 |
| 2 |
0 |
0 |
686 |
0 |
| 3 |
0 |
726 |
0 |
0 |
| 4 |
188 |
0 |
0 |
0 |
# 2015 年:建立原始答案與反向分數的核對表
check2015 <- table(
原始答案 = clean2015$j02,
反向分數 = clean2015$internal_score,
useNA = "ifany"
)
knitr::kable(
as.data.frame.matrix(check2015),
row.names = TRUE,
col.names = c("反向1分", "反向2分", "反向3分", "反向4分"),
caption = "2015 年反向計分核對(左欄為原始答案)"
)
2015 年反向計分核對(左欄為原始答案)
| 1 |
0 |
0 |
0 |
143 |
| 2 |
0 |
0 |
514 |
0 |
| 3 |
0 |
358 |
0 |
0 |
| 4 |
79 |
0 |
0 |
0 |
跨年配對與建立變化指標
每位受訪者占一列,以 id 配對,不能按照原本列順序直接拼接。
data2012 <- clean2012[
, c("id", "party_id", "internal_score",
"peer_discussion", "election_news")
]
names(data2012) <- c(
"id", "party_2012", "internal_2012",
"peer_discussion_2012", "election_news_2012"
)
data2015 <- clean2015[, c("id", "party_id", "internal_score")]
names(data2015) <- c("id", "party_2015", "internal_2015")
panel <- merge(data2012, data2015, by = "id", all = FALSE)
nrow(panel)
sum(duplicated(panel$id))
# 效能感變化:正值提升、0 不變、負值下降
panel$internal_change <- panel$internal_2015 - panel$internal_2012
knitr::kable(
as.data.frame(table(panel$internal_change, useNA = "ifany")),
col.names = c("效能感變化分數", "人數"),
align = c("r", "r"),
caption = "全部配對者的內在政治效能感變化"
)
全部配對者的內在政治效能感變化
| -3 |
3 |
| -2 |
21 |
| -1 |
183 |
| 0 |
527 |
| 1 |
301 |
| 2 |
57 |
| 3 |
2 |
sum(is.na(panel$internal_change))
# 建立本研究要比較的兩群人
panel$party_change <- NA_character_
main_parties <- c("國民黨", "民進黨", "親民黨", "台聯")
panel$party_change[
panel$party_2012 == "中立及看情形" &
panel$party_2015 %in% main_parties
] <- "形成主要政黨認同"
panel$party_change[
panel$party_2012 == "中立及看情形" &
panel$party_2015 == "中立及看情形"
] <- "持續中立及看情形"
panel$party_change <- factor(
panel$party_change,
levels = c("持續中立及看情形", "形成主要政黨認同")
)
knitr::kable(
as.data.frame(table(panel$party_change, useNA = "ifany")),
col.names = c("認同變化分類", "人數"),
align = c("l", "r"),
caption = "全部配對者的分組情形"
)
全部配對者的分組情形
| 持續中立及看情形 |
311 |
| 形成主要政黨認同 |
113 |
| NA |
670 |
# 另建研究用資料,panel 仍保留所有配對者
analysis_data <- panel[!is.na(panel$party_change), ]
nrow(analysis_data)
knitr::kable(
as.data.frame(table(analysis_data$party_change, useNA = "ifany")),
col.names = c("認同變化分類", "人數"),
align = c("l", "r"),
caption = "研究用資料的分組人數"
)
研究用資料的分組人數
| 持續中立及看情形 |
311 |
| 形成主要政黨認同 |
113 |
# 計算四個主要變數的遺失值數量
missing_count <- colSums(is.na(analysis_data[
, c("party_change", "internal_change",
"peer_discussion_2012", "election_news_2012")
]))
# 整理成表格
missing_table <- data.frame(
變數 = c("政黨認同變化", "內在政治效能感變化",
"2012年同儕政治討論", "2012年選舉新聞關注"),
遺失值筆數 = as.numeric(missing_count)
)
knitr::kable(
missing_table,
align = c("l", "r"),
caption = "研究用資料的遺失值檢查"
)
研究用資料的遺失值檢查
| 政黨認同變化 |
0 |
| 內在政治效能感變化 |
0 |
| 2012年同儕政治討論 |
0 |
| 2012年選舉新聞關注 |
0 |
party_change 中的 NA 表示不屬於本次兩個比較群體,不一定是受訪者漏答;例如第一年就具有主要政黨認同者,也不在比較群體內。「形成」是由中立及看情形轉為主要政黨認同的操作定義,包含較弱的政黨傾向,不等於證明人生首次建立認同或認同已穩定。
資料引用
- 陳陸輝(2018)。我國大學生政治社會化的定群追蹤研究(I)(E10053_1)【原始數據】。中央研究院學術調查研究資料庫。doi:10.6141/TW-SRDA-E10053_1-1。
- 陳陸輝(2018)。我國大學生政治社會化的定群追蹤研究(IV)(E10053_4)【原始數據】。中央研究院學術調查研究資料庫。doi:10.6141/TW-SRDA-E10053_4-1。