# 社會研究法:《美國影視文化對臺灣人對美態度的影響》調查問卷 #######
setwd("~/Desktop/社會研究法")
rm(list = ls())
# Packages ######
library(readxl)
library(car)
## Loading required package: carData
library(magrittr)
library(mediation)
## Loading required package: MASS
## Loading required package: Matrix
## Loading required package: mvtnorm
## Loading required package: sandwich
## mediation: Causal Mediation Analysis
## Version: 4.5.0
library(multilevel)
## Warning: package 'multilevel' was built under R version 4.0.5
## Loading required package: nlme
library(bda)
## Loading required package: boot
##
## Attaching package: 'boot'
## The following object is masked from 'package:car':
##
## logit
## bda v15 (Bin Wang, 2021)
library(equatiomatic)
## Warning: package 'equatiomatic' was built under R version 4.0.5
## This version of bslib is designed to work with shiny version 1.6.0 or higher.
library(Hmisc)
## Loading required package: lattice
##
## Attaching package: 'lattice'
## The following object is masked from 'package:boot':
##
## melanoma
## Loading required package: survival
##
## Attaching package: 'survival'
## The following object is masked from 'package:boot':
##
## aml
## Loading required package: Formula
## Loading required package: ggplot2
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, units
# Import Data ######
df <- read_xlsx("《美國影視文化對臺灣人對美態度的影響》調查問卷 (回覆).xlsx")
# recode ######
# Sex
df$`1. 性別` <- recode(df$`1. 性別`,
"'男性' = 'male'; '女性' = 'female'")
#Income
df$`6. 個人每月收入` <- recode(df$`6. 個人每月收入`,
"'20,000元以下' = '10000'; '20,000 ~ 40,000元' = '30000';
'40,000 ~ 60,000元' = '50000'; '60,000 ~ 80,000元' = '70000';
'80,000 ~ 100,000元' = '90000'; '100,000元以上' = '100000'") %>%
as.numeric()
# Education
df$`4. 教育程度` <- recode(df$`4. 教育程度`,
"'國小' = 6; '國中' = 9; '高中/職' = 12;
'大專' = 16; '研究所' = 18; else = 0")
# Gone America
df$`7. 請問您是否去過美國?` <- recode(df$`7. 請問您是否去過美國?`,
"'是' = 'yes'; '否' = 'no'")
# Theater
df$`9. 請問您最近半年內,平均一個月至電影院觀賞美國電影的次數?` <-
recode(df$`9. 請問您最近半年內,平均一個月至電影院觀賞美國電影的次數?`,
"'1次以下' = 0.5; '1 ~ 2次' = 1.5; '2 ~ 3次' = 2.5;
'3 ~ 4次' = 3.5; '4次以上' = 4")
# Movie
df$`10. 請問您最近半年,平均一個月觀賞過幾部美國電影?(不限方式)` <-
recode(df$`10. 請問您最近半年,平均一個月觀賞過幾部美國電影?(不限方式)`,
"'1部以下' = 0.5; '1 ~ 2部' = 1.5; '2 ~ 3部' = 2.5;
'3 ~ 4部' = 3.5; '4部以上' = 4")
# Video
df$`11. 請問您最近半年內,平均一個月觀賞過幾部(季)美國影集?(不限方式)` <-
recode(df$`11. 請問您最近半年內,平均一個月觀賞過幾部(季)美國影集?(不限方式)`,
"'1部以下' = 0.5; '1 ~ 2部' = 1.5; '2 ~ 3部' = 2.5;
'3 ~ 4部' = 3.5; '4部以上' = 4")
# Interest
df$`13. 請問您平時對於美國的電影、影集、動畫的關注程度為何?` <-
recode(df$`13. 請問您平時對於美國的電影、影集、動畫的關注程度為何?`,
"'非常喜愛且深入認識' = 4; '經常關注' = 3;
'有時關注' = 2; '不太關注' = 1")
# Hot Movie
df$`15. 在以下電影清單中,您看過幾部?` <-
recode(df$`15. 在以下電影清單中,您看過幾部?`,
"'2部以下' = 1; '2 ~ 4部' = 3; '4 ~ 6部' = 5;
'6 ~ 8部' = 7; '8 ~ 10部' = 9")
# Adervise
df$`16. 您是否會因為某產品出現在美國影視作品,進而使用該產品?` <-
recode(df$`16. 您是否會因為某產品出現在美國影視作品,進而使用該產品?`,
"'經常' = 4; '有時' = 3; '很少' = 2; '幾乎不' = 1")
# Issue
df$`17. 您是否會因為美國影視作品中出現的現象,因此關注相關議題?` <-
recode(df$`17. 您是否會因為美國影視作品中出現的現象,因此關注相關議題?`,
"'經常' = 4; '有時' = 3; '很少' = 2; '幾乎不' = 1")
# Difference
df$`18. 您認為美國影視作品中呈現的美國社會和現實存在差異?` <-
recode(df$`18. 您認為美國影視作品中呈現的美國社會和現實存在差異?`,
"'差異很大' = 2; '有些差異' = 1; '幾乎無差異' = 0")
# Difference in Society
df$`19. 您認為美國影視作品中美化或醜化其社會現況的比例為何?` <-
recode(df$`19. 您認為美國影視作品中美化或醜化其社會現況的比例為何?`,
"c('幾乎美化', '幾乎醜化') = 2; c('較多美化', '較多醜化') = 1")
# Difference in Government
df$`20. 您認為在美國影視作品中美化或醜化美國政府的比例?` <-
recode(df$`20. 您認為在美國影視作品中美化或醜化美國政府的比例?`,
"c('幾乎美化', '幾乎醜化') = 2; c('較多美化', '較多醜化') = 1")
# Difference in Movie
df$`22. 您是否認為台灣影視作品的風格和美國影視作品相近?` <-
recode(df$`22. 您是否認為台灣影視作品的風格和美國影視作品相近?`,
"'非常相近' = 1;'逐漸相近' = 2; '逐漸相異' = 3; '非常相異' = 4")
# Relaitionship in Family
df$`23. 您是否認同美國影視作品中,家庭成員間的互動關係?` <-
recode(df$`23. 您是否認同美國影視作品中,家庭成員間的互動關係?`,
"'非常認同' = 4; '能夠認同' = 3; '不太認同' = 2; '非常不認同' = 1")
# Difference in Values
df$`24. 您認為美國影視作品中所傳達的價值觀和臺灣普遍價值觀存在差異?` <-
recode(df$`24. 您認為美國影視作品中所傳達的價值觀和臺灣普遍價值觀存在差異?`,
"'差異很大' = 4; '有些差異' = 3; '少許差異' = 2; '無差異' = 1")
# Values
df$`26. 您是否認同美國影視作品中所傳達的價值觀?` <-
recode(df$`26. 您是否認同美國影視作品中所傳達的價值觀?`,
"'幾乎認同' = 4; '部分認同' = 3; '不太認同' = 2; '非常不認同' = 1")
# International Leading
df$`28. 您是否認為美國在國際上佔有主導地位?` <-
recode(df$`28. 您是否認為美國在國際上佔有主導地位?`,
"'非常認同' = 4; '大致認同' = 3; '不太認同' = 2; '不認同' = 1")
# Go America
df$`30. 您是否嚮往或計劃前往美國求學或工作?` <-
recode(df$`30. 您是否嚮往或計劃前往美國求學或工作?`,
"'非常嚮往' = 4; '有些嚮往' = 3; '不嚮往' = 1; '無意見' = 2")
# Close to US or China
df$`31. 您認為臺灣政府的外交政策應親中或親美?` <-
recode(df$`31. 您認為臺灣政府的外交政策應親中或親美?`,
"'傾向中國' = 1; '傾向美國' = 4; '保持平衡' = 2.5; '中美以外' = 2.5")
# Follow Policy (deplomatic)
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [b. 外交]` <-
recode(df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [b. 外交]`,
"'完全相同' = 4; '大部分相同' = 3; '少部分相同' = 2; '完全不參考' = 1")
# Follow Policy (trading)
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [c. 貿易]` <-
recode(df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [c. 貿易]`,
"'完全相同' = 4; '大部分相同' = 3; '少部分相同' = 2; '完全不參考' = 1")
# Follow Policy (social welfare)
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [d. 社會福利]` <-
recode(df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [d. 社會福利]`,
"'完全相同' = 4; '大部分相同' = 3; '少部分相同' = 2; '完全不參考' = 1")
# Follow Policy (health)
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [e. 衛生健康]` <-
recode(df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [e. 衛生健康]`,
"'完全相同' = 4; '大部分相同' = 3; '少部分相同' = 2; '完全不參考' = 1")
# Follow Policy (education)
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [f. 教育]` <-
recode(df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [f. 教育]`,
"'完全相同' = 4; '大部分相同' = 3; '少部分相同' = 2; '完全不參考' = 1")
# Election
df$`33. 請問您是否有參與上一次的選舉或是公投?` <-
recode(df$`33. 請問您是否有參與上一次的選舉或是公投?`,
"'是' = 1; '否' = 0; '無投票權' = 0")
# Joint Signature
df$`34. 請問您是否參與過連署活動?` <-
recode(df$`34. 請問您是否參與過連署活動?`,
"'是' = 1; '否' = 0")
# Procession
df$`35. 請問您是否參與過遊行示威或社會運動?` <-
recode(df$`35. 請問您是否參與過遊行示威或社會運動?`,
"'是' = 1; '否' = 0")
# Constructing Variables #####
# Sex
df$sex = factor(df$`1. 性別`, levels = c('male', 'female'))
# Education
df$education <- df$`4. 教育程度`
# Income
df$income <- df$`6. 個人每月收入`
# Gone America
df$gone <- factor(df$`7. 請問您是否去過美國?`,
levels = c("no", 'yes'))
# Degree of following American Movies
df$movie <- df$`9. 請問您最近半年內,平均一個月至電影院觀賞美國電影的次數?` +
df$`10. 請問您最近半年,平均一個月觀賞過幾部美國電影?(不限方式)` +
df$`11. 請問您最近半年內,平均一個月觀賞過幾部(季)美國影集?(不限方式)` +
df$`13. 請問您平時對於美國的電影、影集、動畫的關注程度為何?` +
df$`15. 在以下電影清單中,您看過幾部?`
# Movement By Movie
df$movement <- df$`16. 您是否會因為某產品出現在美國影視作品,進而使用該產品?` +
df$`17. 您是否會因為美國影視作品中出現的現象,因此關注相關議題?`
# Difference in American Movie
df$diff_movie <- df$`18. 您認為美國影視作品中呈現的美國社會和現實存在差異?` +
df$`19. 您認為美國影視作品中美化或醜化其社會現況的比例為何?` +
df$`20. 您認為在美國影視作品中美化或醜化美國政府的比例?`
# Identify Relationship
df$identify <- df$`23. 您是否認同美國影視作品中,家庭成員間的互動關係?` +
df$`26. 您是否認同美國影視作品中所傳達的價值觀?`
# Difference between Taiwan and US
df$diff_between <- df$`22. 您是否認為台灣影視作品的風格和美國影視作品相近?` +
df$`24. 您認為美國影視作品中所傳達的價值觀和臺灣普遍價值觀存在差異?`
# America is Good
df$goodness <- df$`28. 您是否認為美國在國際上佔有主導地位?` +
df$`30. 您是否嚮往或計劃前往美國求學或工作?` +
df$`31. 您認為臺灣政府的外交政策應親中或親美?`
# Follow Policy
df$policy <- df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [b. 外交]` +
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [c. 貿易]` +
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [d. 社會福利]` +
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [e. 衛生健康]` +
df$`32. 您認為台灣政府在以下方面政策應和美國政府抱持相同立場? [f. 教育]`
# Political Participation
df$participate <- df$`33. 請問您是否有參與上一次的選舉或是公投?` +
df$`34. 請問您是否參與過連署活動?` +
df$`35. 請問您是否參與過遊行示威或社會運動?`
variables <- c("sex", "education", "income", "gone",
"movie", "movement", "diff_movie",
"identify", "diff_between", "goodness",
"policy", "participate")
df[variables] %>%
dplyr::summarise(across(where(is.numeric), ~mean(.x, na.rm = TRUE))) %>%
tidyr::pivot_longer(cols = everything(), names_to = "Variables", values_to = "Mean") %>%
print
## # A tibble: 10 × 2
## Variables Mean
## <chr> <dbl>
## 1 education 15.1
## 2 income 20667.
## 3 movie 12.5
## 4 movement 4.58
## 5 diff_movie 3.28
## 6 identify 6.13
## 7 diff_between 6.36
## 8 goodness 9.39
## 9 policy 12.7
## 10 participate 1.70
# Modeling #######
# model1: Identify as Dependent variable
model1 <- lm(identify ~ sex + education + income +
gone + movie + movement + diff_movie + diff_between,
data = df)
summary(model1)
##
## Call:
## lm(formula = identify ~ sex + education + income + gone + movie +
## movement + diff_movie + diff_between, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.8303 -0.2831 -0.1058 0.3455 2.1352
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.498e+00 6.054e-01 10.733 <2e-16 ***
## sexfemale -4.357e-02 1.279e-01 -0.341 0.7339
## education -2.117e-02 1.499e-02 -1.412 0.1603
## income -2.219e-07 2.778e-06 -0.080 0.9364
## goneyes 6.458e-02 1.651e-01 0.391 0.6964
## movie 1.015e-02 1.475e-02 0.688 0.4928
## movement 1.060e-01 4.956e-02 2.138 0.0344 *
## diff_movie -1.989e-01 9.937e-02 -2.002 0.0475 *
## diff_between 1.767e-03 5.798e-02 0.030 0.9757
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6987 on 125 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.09702, Adjusted R-squared: 0.03923
## F-statistic: 1.679 on 8 and 125 DF, p-value: 0.1099
# model2: Follow Policy as Dependent
model2 <- lm(policy ~ sex + education + income +
gone + movie + movement + diff_movie + diff_between +
identify + participate,
data = df)
summary(model2)
##
## Call:
## lm(formula = policy ~ sex + education + income + gone + movie +
## movement + diff_movie + diff_between + identify + participate,
## data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.3747 -1.2592 0.0652 1.1710 6.5532
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.340e+01 2.738e+00 4.894 3.03e-06 ***
## sexfemale -1.637e-01 4.174e-01 -0.392 0.69564
## education 3.314e-04 4.972e-02 0.007 0.99469
## income 8.285e-06 9.120e-06 0.908 0.36543
## goneyes -3.447e-01 5.414e-01 -0.637 0.52554
## movie -5.383e-02 4.827e-02 -1.115 0.26698
## movement 4.651e-01 1.689e-01 2.754 0.00677 **
## diff_movie -9.972e-01 3.323e-01 -3.001 0.00326 **
## diff_between -2.132e-01 1.899e-01 -1.123 0.26357
## identify 3.997e-01 2.929e-01 1.364 0.17490
## participate 3.631e-02 2.128e-01 0.171 0.86477
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.279 on 123 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.1774, Adjusted R-squared: 0.1105
## F-statistic: 2.652 on 10 and 123 DF, p-value: 0.005779
# Test Mediation Effect ########
#Sobel test
sobel(df$movement, df$identify, df$policy)
## $`Mod1: Y~X`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.6876759 0.7250599 14.740404 9.408128e-30
## pred 0.4501032 0.1521440 2.958403 3.661322e-03
##
## $`Mod2: Y~X+M`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.7485057 1.7598579 4.402916 2.185744e-05
## pred 0.3923223 0.1540895 2.546068 1.204328e-02
## med 0.5229704 0.2858281 1.829668 6.955608e-02
##
## $`Mod3: M~X`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.6201463 0.21804373 25.775317 1.425747e-53
## pred 0.1104858 0.04575351 2.414806 1.710340e-02
##
## $Indirect.Effect
## [1] 0.05778082
##
## $SE
## [1] 0.03962108
##
## $z.value
## [1] 1.458335
##
## $N
## [1] 135
mediation.test(df$identify, df$movement, df$policy)
## Sobel Aroian Goodman
## z.value 1.4583355 1.3848492 1.5449168
## p.value 0.1447481 0.1660986 0.1223664
# Bootstraping
fitM <- lm(identify ~ movement, data = df)
fitY <- lm(policy ~ identify + movement, data = df)
fitMed <- mediate(fitM, fitY, treat="movement", mediator="identify")
summary(fitMed)
##
## Causal Mediation Analysis
##
## Quasi-Bayesian Confidence Intervals
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME 0.0576 -0.0114 0.16 0.098 .
## ADE 0.3887 0.0907 0.70 0.020 *
## Total Effect 0.4463 0.1455 0.76 0.008 **
## Prop. Mediated 0.1208 -0.0305 0.48 0.106
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 135
##
##
## Simulations: 1000
plot(fitMed)
