Gtsummary

ch 13 - Reliability

Intro

  • PLS-SEM의 분석과정에서 척도(측정변수와 잠재변수)의 신뢰도와 타당도를 확보하는 것은 매우 중요하며, 신뢰도와 타당도가 확보되지 않으면 모델 추정 결과가 의미가 없기 때문임
  • 즉, 구조모델의 추정을 실행하려면 사전에 반드시 측정모델에 대한 평가과정을 통해 신뢰도와 타당도 확보 필요

I. 주요 개념

(1) 신뢰도

  • 잠재변수의 측정에 있어서 얼마나 일관성이 있는가의 정도 의미
    • 검사도구의 일관성을 말하며, 일관성이란 잠재변수를 여러 번에 걸쳐 측정했을 때 매번 같은 결과를 도출할 수 있는 정도.
    • 내적 일관성 신뢰(Internal Consistency Reliability)로 평가

(2) 타당도

  • 타당도의 기본 정의는 실제 측정하고자 하는 잠재변수를 정확하게 측정하고 있는 정도
    • PLS-SEM에서는 집중타당도(Convergent Validity)와 판별타당도(Discriminant Validity)를 사용한다.
    • 전자는 하나의 잠재변수를 측정하기 위해 사용되는 척도의 ���성항목들 간에 상관관계가 높아야 집중타당도가 있다고 볼 수 있고, 후자는 하나의 잠재변수와 다른 잠재변수간 상관관계가 낮을수록 판별 타당도가 높다고 판단함.

(3) PLS-SEM 분석 결과의 쳬계적인 평가 단계

  • 반영적 측정모델: 내적 일관성 신뢰도, 집중타당도, 판별타당도
  • 형성적 측정모델: 집중타당도, 다중공선성, 외부가중치와 외부적재치의 유의성과 적합성
  • 구조모델의 평가기준: 다중공선성, 결정계수 $R^2$, 효과크기 $f^2$, 예측적 적합성 $Q^2$, 경로계수의 유의성과 적합성
  • PLS-SEM의 평가 단계: 제 1단계는 측정모델(Outer Model)을 평가하는 것이며, 제 2단계는 구조모델(Inner Model)을 평가하는 것이다.

II. 설문조사 데이터 분석

  • 이제 설문지를 분석해본다.
  • 필수 패키지를 확인한다.
library(readr) 
library(dplyr)
library(kableExtra) 
library(psy) # 신뢰도
library(corrplot) # 상관계수
library(psychometric) # 타당도 

(1) 데이터 수집

  • 먼저 수집된 설문조사 데이터를 확인한다.
data <- read_csv('data/thesis_mater.csv') %>% 
  distinct() %>% # 중복데이터 제거
  rename(Position = founder_employee, # 출력을 위한 변수명 정리
         Age = age_of_respondent, 
         Education = Education_Level) %>% 
  slice(-c(1:10)) %>% 
  dplyr::select(-c(Firm_Age:Business_Area))

data %>% 
  head() %>% 
  kable() %>% 
  kable_styling("striped") %>% 
  scroll_box(width = "100%")
EI_1EI_2EI_3EP_1EP_2EP_3ER_1ER_2ER_3SS_1SS_2SS_3SC_1SC_2SC_3SR_1SR_2SR_3F1F2F3NF1NF2NF3Firm_AgeFirm_SizeWE1WE2WE3genderfounder_employeeage_of_respondentEducation_LevelBusiness_Area
2343343241133332212233135 years aboveAbove 15 membersNo, I don't have experienceYesYesFemaleEmployee30-39Undergraduate SchoolOthers
552353444222222222222322Less than 2 yearsLess than 5 membersNo, I don't have experienceNoYesMaleEmployeeYounger than 30Undergraduate SchoolMedia and Entertainment
1221121212211221212111115 years aboveLess than 5 membersAs founder or employee, I have startup experiences more than 3 timesNoYesFemaleFounder of CompanyYounger than 30Undergraduate SchoolOthers
332121213213111233332322Less than 2 yearsLess than 5 membersNo, I don't have experienceYesYesMaleEmployeeYounger than 30Undergraduate SchoolOthers
5352544444545555554544553-4 yearsLess than 5 membersAs founder or employee, I have startup experiences more than 3 timesNoYesMaleFounder of Company30-39Undergraduate SchoolOthers
1331332314123312211231315 years above5-9 membersAs founder or employee, I have startup experience, one timeNoNoFemaleEmployeeYounger than 30Undergraduate SchoolOthers

(2) 상관관계 확인

  • 각 척도(Item)에서의 상관관계를 확인해본다.
M <- cor(data)

corrplot(M, type="upper", order="hclust", 
         col=RColorBrewer::brewer.pal(n=8, name="RdBu"))

ch 12 - Demographic of Respondent in R

Intro

  • 지난 시간에 설문조사 전처리에 대해 배웠다면 이번에는 경영/사회과학 논문에서 필수적으로 기재해야 하는 표본의 특성을 간단한 프로그램으로 요약하는 것을 코딩한다.

(1) 주요 패키지

  • 이번 포스트부터 gt 패키지를 사용하려고 한다.
    • gt: ggplot2와 같이 Table를 문법으로 컨트롤 할 수 있도록 구현된 패키지이다.
    • kableExtra: HTML로 출력할 수 있도록 도와주는 패키지이다.
library(readr)
library(dplyr)
library(gt)
library(gtsummary)

I. 데이터 가져오기

  • 우선 데이터를 불러온다.
data <- read_csv('data/thesis_mater.csv') %>% 
  distinct() %>% # 중복데이터 제거
  rename(Position = founder_employee, # 출력을 위한 변수명 정리
         Age = age_of_respondent, 
         Education = Education_Level)
glimpse(data %>% select(Firm_Age:Business_Area))
  • 전체 34개의 변수 중에서, 문자열 관련 데이터만 추출하였다.
  • 어떤 데이터를 표본의 특성으로 삼아야 할까?
    • 위 10개의 데이터에는 통제변수1가 들어가 있다.
    • 통제변수는 표본의 특징이 아니기 때문에 통제변인을 제외한 나머지 변수들을 추출한다.
## Rows: 103
## Columns: 10
## $ Firm_Age      <chr> "5 years above", "Less than 2 years", "5 years above", …
## $ Firm_Size     <chr> "Above 15 members", "Less than 5 members", "Less than 5…
## $ WE1           <chr> "No, I don't have experience", "No, I don't have experi…
## $ WE2           <chr> "Yes", "No", "No", "Yes", "No", "No", "No", "No", "No",…
## $ WE3           <chr> "Yes", "Yes", "Yes", "Yes", "Yes", "No", "Yes", "No", "…
## $ gender        <chr> "Female", "Male", "Female", "Male", "Male", "Female", "…
## $ Position      <chr> "Employee", "Employee", "Founder of Company", "Employee…
## $ Age           <chr> "30-39", "Younger than 30", "Younger than 30", "Younger…
## $ Education     <chr> "Undergraduate School", "Undergraduate School", "Underg…
## $ Business_Area <chr> "Others", "Media and Entertainment", "Others", "Others"…
  • 표본의 특성을 기술하는 데이터는 아래와 같이 추출한다.
    • gender, founder_employee, age_of_respondent, educational_level, business_area
data2 <- data %>% 
  select(gender, Position, Age, Education, Business_Area)

glimpse(data2)
## Rows: 103
## Columns: 5
## $ gender        <chr> "Female", "Male", "Female", "Male", "Male", "Female", "…
## $ Position      <chr> "Employee", "Employee", "Founder of Company", "Employee…
## $ Age           <chr> "30-39", "Younger than 30", "Younger than 30", "Younger…
## $ Education     <chr> "Undergraduate School", "Undergraduate School", "Underg…
## $ Business_Area <chr> "Others", "Media and Entertainment", "Others", "Others"…

II. 표본 특성 표 출력

  • 보통 논문에 들어가는 표본의 특징은 Category, Frequency, and Percentage(%) 정도만 필요하다.
  • 이 때, Table을 가공해줄 수 있는 gtsummary 패키지를 활용한다.
set_gtsummary_theme(theme_gtsummary_journal(journal = "jama"))

data2 %>% 
  tbl_summary(by = gender) %>% 
  add_overall() %>% 
  add_n() %>% 
  modify_header(label = "**Variable**") %>% # update the column header
  bold_labels()
VariableNOverall, N = 103Female, N = 621Male, N = 411
Position103
Employee68 (66)35 (56)33 (80)
Founder of Company35 (34)27 (44)8 (20)
Age103
30-3937 (36)19 (31)18 (44)
40-498 (7.8)4 (6.5)4 (9.8)
50 or above2 (1.9)2 (3.2)0 (0)
Younger than 3056 (54)37 (60)19 (46)
Education103
Graduate School25 (24)15 (24)10 (24)
High School7 (6.8)6 (9.7)1 (2.4)
Undergraduate School71 (69)41 (66)30 (73)
Business_Area103
E-Commerce16 (16)11 (18)5 (12)
Education4 (3.9)2 (3.2)2 (4.9)
Energy1 (1.0)0 (0)1 (2.4)
Enterprise Services4 (3.9)2 (3.2)2 (4.9)
Fintech9 (8.7)6 (9.7)3 (7.3)
Logistics5 (4.9)1 (1.6)4 (9.8)
Manufacturing3 (2.9)2 (3.2)1 (2.4)
Media and Entertainment7 (6.8)4 (6.5)3 (7.3)
Medical and Healthcare1 (1.0)1 (1.6)0 (0)
Online to Offline Commerce2 (1.9)1 (1.6)1 (2.4)
Others45 (44)31 (50)14 (34)
Real Estate and Household1 (1.0)0 (0)1 (2.4)
Transportation/Automotive4 (3.9)0 (0)4 (9.8)
Travel1 (1.0)1 (1.6)0 (0)

1 Statistics presented: n (%)