연구 목적 및 배경 설명

흡연은 오랫동안 건강을 해치는 행위로 인식되어 왔으며, 다양한 금연 정책의 대상으로 자리잡아왔다. 그러나 이러한 접근은 주로 ’흡연 = 개인의 나쁜 습관’이라는 전제에 기반하고 있다. 본 연구는 이 같은 단순한 도식에서 벗어나, “사람들은 왜 흡연을 선택하게 되는가?” 즉, 흡연을 유발하는 사회적·심리적 조건에 주목한다. 특히 본 연구는 다음과 같은 연구 질문을 중심으로 탐색을 진행한다.

이를 통해 본 보고서는 흡연을 단순한 건강 문제가 아니라, 삶의 불안정성과 감정적 고립의 결과로 해석할 수 있는 근거를 제시하고자 한다. 우리는 흡연이 ’개인의 책임’이 아닌 ’사회 구조적 조건’에서 발생하는 복합적 현상일 수 있음을 확인할 수 있으며, 향후 금연 정책이 심리적·복지적 접근과 함께 이루어져야 함을 제안하고자 한다.

데이터에 대한 개괄적인 설명

본 연구는 2024년 한국복지패널조사(Korea Welfare Panel Study, KOWEPS)의 제19차 데이터를 기반으로 수행되었다. 「한국복지패널」조사는 한국보건사회연구원과 서울대학교 사회복지연구소 공동으로 수행되고 있으며, 2006년 1차 조사를 시작으로 2024년 19차 조사를 완료하였다. 「한국복지패널」은 우리나라의 대표적인 패널데이터로 국민의 복지욕구 및 복지실태를 동태적으로 보여줄 수 있는 자료이다. 사회복지학·경제학·사회학·가정학·보건학 등 다양한 학문 분야에서 유용성을 인정받아 널리 활용되고 있으며, 학제 간 연구의 기회 제공에도 기여하고 있다.

본 연구에서는 다음과 같은 변수를 중심으로 사용하였다:

위 변수들은 흡연이라는 행위가 삶의 조건과 심리적 상태, 삶의 만족도에 의해 어떻게 영향을 받는지를 살펴보는 데 핵심적인 역할을 한다. 데이터는 .sav 파일 형식으로 제공되었으며, 전체 분석은 R 통계 소프트웨어를 통해 수행되었다.

데이터 정제 및 가공 과정

1. 데이터 로드 및 이름 재지정

본 분석을 위해 원본 데이터를 복사한 후, 분석에 사용할 변수만 선별하여 이름을 간소화하였다. 변수명은 직관적인 의미를 반영하도록 영문으로 재명명했다.

# 원본 데이터에서 복사본 생성
koweps <- read.spss(file = "koweps_hpc19_2024_beta1.sav",
                    to.data.frame = TRUE)  
data <- koweps  

# 변수 이름 간단하게 바꾸기
data <- data %>%
  rename(smoking = p1905_3aq5,
         weekly_hours = p1902_8,
         family_satisfaction = p1905_aq1,
         loneliness = p1905_14,
         helplessness = p1905_22,
         life_ladder = p1905_12aq1)

1-1) smoking 변수 정제

smoking 변수는 “1 = 피움”, “2 = 피우지 않음”으로 구성된 범주형 변수이다. 해석의 명확성을 높이기 위해 각각 “흡연”, “비흡연”이라는 범주형 문자열로 재코딩하였다.

# 1. 변수의 빈도 확인 (결측 포함)
table(data$smoking, useNA = "ifany")
## 
##     1     2  <NA> 
##  2037 11213  2172
# 2. 1 또는 2 값을 "흡연", "비흡연"으로 변경
data$smoking <- ifelse(data$smoking == 1, "흡연",
                       ifelse(data$smoking == 2, "비흡연", NA))

# 3. 처리 결과 확인
table(data$smoking, useNA = "ifany")
## 
## 비흡연   흡연   <NA> 
##  11213   2037   2172

1-2) weekly_hours 변수 정제

weekly_hours 변수는 주당 평균 근로시간을 시간 단위로 측정한 연속형 변수이다. 변수의 이상치를 처리하기 위해 boxplot의 사분위수를 활용하여 경계값을 설정하였다. 9시간 미만 또는 65시간 초과의 값은 이상치로 간주하여 NA로 처리하였다.

# 1. 요약 통계로 결측치 및 분포 확인
summary(data$weekly_hours)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00   30.00   40.00   36.91   44.00  104.00    8991
# 2. boxplot으로 이상치 경계값 확인
boxplot(data$weekly_hours)$stats

##      [,1]
## [1,]    9
## [2,]   30
## [3,]   40
## [4,]   44
## [5,]   65
# 3. 이상치 처리: 9 미만 또는 65 초과는 NA로 대체
data$weekly_hours <- ifelse(data$weekly_hours < 9 |
                              data$weekly_hours > 65,NA,
                            data$weekly_hours)

# 4. 처리 결과 확인
summary(data$weekly_hours)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    9.00   36.00   40.00   37.51   44.00   65.00    9453

1-3) family_satisfaction 변수 정제

family_satisfaction는 응답자의 가족생활에 대한 만족도를 나타내며, 0-7의 값으로 구성되어 있는 범주형 변수다. 이 중 0은 ‘비해당’, 9는 모름/무응답이기 때문에 모두 결측치(NA)로 처리하였다. 이후 유효한 값인 1-7만 남긴 뒤, 분석의 편의를 위해 각 숫자값에 해당하는 응답 내용을 이름으로 지정하였다.

# 1. 결측치 확인
table(data$family_satisfaction, useNA = "ifany")
## 
##    0    1    2    3    4    5    6    7    9 <NA> 
##  248   71  167  272 1982 1555 7013 1407  535 2172
# 2. 결측치 처리: 0, 9를 NA로 변환
data$family_satisfaction <- ifelse(data$family_satisfaction %in% c(0, 9),
                                   NA, data$family_satisfaction)

# 3. 숫자값에 이름 부여
data <- data %>%
  mutate(family_satisfaction = factor(family_satisfaction,
                                      levels = 1:7,
                                      labels = c("매우 불만족",
                                                 "불만족", "약간불만족",
                                                 "보통",
                                                 "약간 만족",
                                                 "만족", "매우만족"),
                                      ordered = TRUE))
# 4. 처리 결과 확인
table(data$family_satisfaction, useNA = "ifany")
## 
## 매우 불만족      불만족  약간불만족        보통   약간 만족        만족 
##          71         167         272        1982        1555        7013 
##    매우만족        <NA> 
##        1407        2955

1-4) loneliness 변수 정제

loneliness 변수는 응답자가 지난 일주일 동안 느낀 외로움의 빈도를 4단계로 응답한 범주형 변수이다. 구체적으로, ① “극히 드물다(일주일에 1일 미만)”, ② “가끔 있었다(1-2일)”, ③ “종종 있었다(3-4일)”, ④ “대부분 그랬다(5일 이상)”로 구분되어 있다. 9는 모름/무응답이기 때문에 모두 결측치(NA)로 처리하였고, 분석의 편의를 위해 각 숫자값에 해당하는 응답 내용을 이름으로 지정하였다.

# 1. 결측치 확인
table(data$loneliness, useNA = "ifany")
## 
##    1    2    3    4    9 <NA> 
## 9772 2401  425  117  535 2172
# 2. 결측치 처리: 9를 NA로 변환
data$loneliness <- ifelse(data$loneliness == 9, NA, data$loneliness)

# 3. 숫자값에 이름 부여
data <- data %>%
  mutate(loneliness = factor(loneliness,
                             levels = 1:4,
                             labels = c("극히 드물다", "가끔 있었다",
                                        "종종 있었다", "대부분 그랬다"),
                             ordered = TRUE))
# 4. 처리 결과 확인
table(data$loneliness, useNA = "ifany")
## 
##   극히 드물다   가끔 있었다   종종 있었다 대부분 그랬다          <NA> 
##          9772          2401           425           117          2707

1-5) helplessness 변수 정제

helplessness 변수는 자신을 실패한 사람이라고 느끼는 정도를 묻는 문항이다. 응답 값은 “대체로 그렇지 않다”에서 “항상 그렇다”까지 네 수준으로 구성되어 있다. 9는 모름/무응답이기 때문에 모두 결측치(NA)로 처리하였고, 분석의 편의를 위해 각 숫자값에 해당하는 응답 내용을 이름으로 지정하였다.

# 1. 결측치 확인
table(data$helplessness, useNA = "ifany")
## 
##    1    2    3    4    9 <NA> 
## 9534 2453  648   80  535 2172
# 2. 결측치 처리: 9를 NA로 변환
data$helplessness <- ifelse(data$helplessness == 9, NA, data$helplessness)

# 3. 숫자값에 이름 부여
data <- data %>%
  mutate(helplessness = factor(helplessness,
                               levels = 1:4,
                               labels = c("대체로 그렇지 않다",
                                          "보통이다", "대체로 그렇다",
                                          "항상 그렇다"),
                               ordered = TRUE))
# 4. 처리 결과 확인
table(data$helplessness, useNA = "ifany")
## 
## 대체로 그렇지 않다           보통이다      대체로 그렇다        항상 그렇다 
##               9534               2453                648                 80 
##               <NA> 
##               2707

1-6) life_ladder 변수 정제

life_ladder 변수는 응답자가 자신의 삶의 만족도를 0점(최악)에서 10점(최상)까지 주관적으로 평가한 연속형 지표이다. 해당 변수는 이상치가 없으며, 점수 자체가 의미를 가지는 정수형 수치이므로 별도의 이름 변경 없이 그대로 유지하고자 한다.

# 1. 결측치 확인
table(data$life_ladder, useNA = "ifany")
## 
##    0    1    2    3    4    5    6    7    8    9   10 <NA> 
##   13   45  107  393  615 1928 2060 3133 2914 1627  415 2172

데이터 분석

1. 삶의 조건

1-1) 주당 근로시간 vs 흡연 여부

흡연 여부와 주당 근로시간의 관계를 분석하기에 앞서, 두 집단 간의 평균 차이가 통계적으로 유의미한지 여부를 판단하기 위해 독립표본 t 검정을 실시하였다. 이 검정은 연속형 변수가 두 개의 독립된 집단(흡연 vs 비흡연)에서 평균적으로 차이가 있는지를 확인할 수 있는 방법으로, 단순한 평균 비교나 시각화 이전에 의미 있는 차이가 실제로 존재하는지 파악하는 데 필수적이다.

# t검정
t_test_data <- data %>%
  filter(!is.na(smoking), !is.na(weekly_hours))

t.test(weekly_hours ~ smoking, data = t_test_data, var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  weekly_hours by smoking
## t = -16.72, df = 2488.3, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group 비흡연 and group 흡연 is not equal to 0
## 95 percent confidence interval:
##  -6.259569 -4.945467
## sample estimates:
## mean in group 비흡연   mean in group 흡연 
##             36.37355             41.97607

주당 근로시간과 흡연 여부는 p값이 0.05보다 작으므로 두 집단 간 평균 근로시간에 유의미한 차이가 있음을 알 수 있다.

week_plot_data <- data %>%
  filter(!is.na(smoking), !is.na(weekly_hours)) %>%
  group_by(smoking) %>%
  summarise(평균근로시간 = round(mean(weekly_hours), 1),
            관측치수 = n())

week_plot_data
## # A tibble: 2 × 3
##   smoking 평균근로시간 관측치수
##   <chr>          <dbl>    <int>
## 1 비흡연          36.4     4757
## 2 흡연            42       1212

흡연 여부에 따른 주당 평균 근로시간을 분석한 결과, 흡연자는 평균 약 42시간, 비흡연자는 약 36.4시간으로, 흡연자가 약 5.6시간 더 오래 일하고 있는 것으로 나타났다. 표본 수 역시 흡연자 1,212명, 비흡연자 4,757명으로 충분히 확보되었기 때문에 이 차이는 신뢰할 수 있다. 이 결과는 장시간 노동이 흡연과 일정한 관련성을 가질 수 있다는 가설을 뒷받침해 준다. 즉, 노동 시간이 길어질수록 스트레스, 피로, 감정적 소진이 누적될 가능성이 높고, 이런 상태에서 흡연은 심리적 긴장을 풀기 위한 수단으로 선택될 수 있다.

이는 단지 ’흡연은 단순한 개인의 선택이’라는 접근을 넘어서, “(노동 시간과 같은) 삶의 조건이 흡연과 관련이 있는가?”를 살펴보는 중요한 단서가 된다. 따라서 흡연을 줄이기 위한 정책도 단순 계몽보다 근로시간 단축, 노동 강도 완화 등과 함께 논의될 필요가 있다.

2. 심리적 상태

2-1) 가족생활에 대한 만족도 vs 흡연 여부

fam_plot_data <- data %>%
  filter(!is.na(smoking), !is.na(family_satisfaction)) %>%
  group_by(smoking, family_satisfaction) %>%
  summarise(count = n(), .groups = "drop_last") %>%
  group_by(smoking) %>% 
  mutate(비율 = round(count / sum(count) * 100, 1)) 

fam_plot_data
## # A tibble: 14 × 4
## # Groups:   smoking [2]
##    smoking family_satisfaction count  비율
##    <chr>   <ord>               <int> <dbl>
##  1 비흡연  매우 불만족            51   0.5
##  2 비흡연  불만족                135   1.3
##  3 비흡연  약간불만족            221   2.1
##  4 비흡연  보통                 1645  15.5
##  5 비흡연  약간 만족            1315  12.4
##  6 비흡연  만족                 6019  56.8
##  7 비흡연  매우만족             1219  11.5
##  8 흡연    매우 불만족            20   1.1
##  9 흡연    불만족                 32   1.7
## 10 흡연    약간불만족             51   2.7
## 11 흡연    보통                  337  18.1
## 12 흡연    약간 만족             240  12.9
## 13 흡연    만족                  994  53.4
## 14 흡연    매우만족              188  10.1

가족생활에 대한 만족도에 따른 흡연 여부를 비교한 결과, 전체적인 응답 분포에서는 흡연자와 비흡연자 간의 극단적인 차이는 나타나지 않았지만, 세부 항목별로는 의미 있는 경향 차이가 관찰되었다.

비흡연자의 경우 “만족” 또는 “매우 만족” 응답이 각각 56.8%, 11.5%로, 전체의 약 68.3%가 긍정적인 가족생활 만족도를 보였고, 흡연자 집단은 “만족” 53.4%, “매우 만족” 10.1%로 약 63.5% 수준이었다. 즉, 흡연자 집단에서 가족생활에 대한 긍정 응답이 다소 낮은 경향이 있다.

특히 눈여겨볼 부분은 “매우 불만족”이라는 극단적인 응답의 비율 차이다. 비흡연자 중 “매우 불만족”을 선택한 비율은 0.5%, 흡연자 집단에서는 1.1%로, 두 배 이상 차이가 있었다. 수치만 보면 작아 보일 수 있지만, 이는 가족관계에서 심각한 갈등이나 단절을 느끼는 일부 소수가 흡연이라는 방식으로 정서적 안정이나 회피를 선택하고 있을 가능성을 제시한다.

요약하자면, 전체 평균 수준에서는 큰 차이가 없지만, 가족생활에 매우 만족하거나 매우 불만족하는 응답자 비율의 양 극단에서 차이가 발생했다는 점은 주목할 만하다. 흡연은 가족과의 거리감이나 정서적 고립감과 관련이 있을 수 있으며, 이는 단순한 개인적 습관의 문제가 아니라 관계적, 정서적 요인의 복합 결과일 수 있음을 시사한다.

2-2) 외로움 vs 흡연 여부

lonely_plot_data <- data %>%
  filter(!is.na(smoking), !is.na(loneliness)) %>%
  group_by(smoking, loneliness) %>%
  summarise(count = n(), .groups = "drop_last") %>%
  group_by(smoking) %>%
  mutate(비율 = round(count / sum(count) * 100, 1))

lonely_plot_data
## # A tibble: 8 × 4
## # Groups:   smoking [2]
##   smoking loneliness    count  비율
##   <chr>   <ord>         <int> <dbl>
## 1 비흡연  극히 드물다    8276  76.7
## 2 비흡연  가끔 있었다    2067  19.2
## 3 비흡연  종종 있었다     360   3.3
## 4 비흡연  대부분 그랬다    88   0.8
## 5 흡연    극히 드물다    1496  77.8
## 6 흡연    가끔 있었다     334  17.4
## 7 흡연    종종 있었다      65   3.4
## 8 흡연    대부분 그랬다    29   1.5

외로움 빈도에 따른 흡연 여부를 분석한 결과, 흡연자와 비흡연자 모두 대부분 “극히 드물다”는 응답이 많았으나 그 외 수준에서 미세한 차이가 관찰되었다.

우선 “극히 드물다”는 응답은 흡연자 77.8%, 비흡연자 76.7%로 거의 비슷한 수준이었지만, “대부분 그랬다(일주일에 5일 이상 외로움을 느낌)” 응답은 흡연자 1.5%, 비흡연자 0.8%로, 흡연자 집단에서 외로움 고빈도 응답률이 두 배 가까이 높았다.

전체적으로는 큰 차이라고 단정할 수 없지만, 외로움을 자주 느낀다고 응답한 비율이 흡연자 그룹에서 다소 높게 나타났으며, 이는 흡연이 정서적 고립, 관계 단절의 감정을 완화하려는 수단으로 작용할 가능성을 보여준다.

즉, 단순히 “외롭기 때문에 흡연한다”는 직접 인과로 설명할 수는 없지만, 외로움이라는 정서적 요인이 흡연과 연결되는 경향이 있다는 분석 결과는, 향후 정서적 지원 정책과 흡연 예방 정책이 함께 논의될 수 있는 근거가 된다.

2-3) 무기력감(나는 실패한 사람이라는 느낌이 든다) vs 흡연 여부

help_plot_data <- data %>%
  filter(!is.na(smoking), !is.na(helplessness)) %>%
  group_by(smoking, helplessness) %>%
  summarise(count = n(), .groups = "drop_last") %>%
  group_by(smoking) %>%
  mutate(비율 = round(count / sum(count) * 100, 1))

help_plot_data
## # A tibble: 8 × 4
## # Groups:   smoking [2]
##   smoking helplessness       count  비율
##   <chr>   <ord>              <int> <dbl>
## 1 비흡연  대체로 그렇지 않다  8142  75.5
## 2 비흡연  보통이다            2082  19.3
## 3 비흡연  대체로 그렇다        501   4.6
## 4 비흡연  항상 그렇다           66   0.6
## 5 흡연    대체로 그렇지 않다  1392  72.3
## 6 흡연    보통이다             371  19.3
## 7 흡연    대체로 그렇다        147   7.6
## 8 흡연    항상 그렇다           14   0.7

흡연 여부에 따른 무기력감 수준을 비교한 결과, “대체로 그렇지 않다”고 응답한 비율은 비흡연자가 75.5%, 흡연자가 72.3%로, 큰 차이는 아니지만 흡연자 집단에서 무기력감을 느끼는 비율이 조금 더 높은 경향이 있었다.

특히 “대체로 그렇다”고 응답한 비율은 비흡연자가 4.6%, 흡연자가 7.6%로 약 3%p 가량의 차이가 나타났으며, “항상 그렇다” 응답도 흡연자(0.7%)가 비흡연자(0.6%)보다 소폭 높았다.

이러한 결과는 흡연자 집단 내 일부가 삶에 대한 무기력감이나 자기효능감 저하를 더 자주 경험하고 있음을 시사한다. 즉, 흡연이 단순한 습관이라기보다는 정신적 피로와 무기력이라는 감정 상태와 연결된 하나의 심리적 반응일 가능성이 있다.

물론 전체 분포만 보았을 때는 큰 차이라고 단정할 수 없지만, 소수의 집단에서 더 높은 비율로 부정적 정서 반응이 나타난다는 점은 정책적으로도 주목할 필요가 있는 지점이다. 이는 향후 정신건강 지원 프로그램이나 정서 안정 기반의 금연 프로그램 등과 연결될 수 있다.

3. 삶의 사다리 점수 vs 흡연 여부

앞선 분석에서는 주당 근로시간, 가족 만족도, 외로움, 무기력감 등 개별적인 삶의 조건과 심리적 요인이 흡연 여부에 영향을 미치는지를 살펴보았다. 이번에는 이러한 단편적인 요소들을 넘어, 개인이 자신의 삶을 어떻게 인식하고 있는지 즉, 삶 전반에 대한 주관적인 평가와 흡연 간의 관련성을 확인하고자 한다.

life_ladder 변수는 응답자가 자신의 현재 삶을 0점(최악)부터 10점(최상)까지의 사다리 위 어디쯤에 위치한다고 느끼는지를 수치로 나타낸 지표로, 삶의 만족도와 자존감, 미래에 대한 기대감 등을 종합적으로 반영한다.

따라서 본 분석에서는 이 변수를 통해 삶에 대한 총체적인 평가와 흡연 간의 관련성을 살펴보고자 한다. 지금까지는 개별 요인들이 흡연에 어떤 영향을 미치는지 살펴보았다면, 이번에는 그 모든 요소들을 포괄하는 삶에 대한 전반적인 인식과 태도 자체가 흡연과 어떻게 연결될 수 있는지를 확인하고자 한다. 만약 흡연자가 자신의 삶을 상대적으로 낮게 평가한다면, 흡연은 단순한 습관이 아닌 삶의 어려움을 반영하거나 그것에 대처하려는 정서적 반응의 한 형태일 수 있음을 시사한다.

데이터 분석에 앞서, 두 집단 간의 평균 차이가 통계적으로 유의미한지 여부를 판단하기 위해 독립표본 t 검정을 실시하였다.

t_test_data <- data %>%
  filter(!is.na(smoking), !is.na(life_ladder))

# t검정 수행
t.test(life_ladder ~ smoking, data = t_test_data, var.equal = FALSE)
## 
##  Welch Two Sample t-test
## 
## data:  life_ladder by smoking
## t = 4.3933, df = 2788.7, p-value = 1.158e-05
## alternative hypothesis: true difference in means between group 비흡연 and group 흡연 is not equal to 0
## 95 percent confidence interval:
##  0.1021639 0.2668725
## sample estimates:
## mean in group 비흡연   mean in group 흡연 
##             6.815839             6.631321

삶의 사다리 점수와 흡연 여부 간 t 검정 결과, p값이 0.05보다 작게 나타나 두 집단 간 평균 삶의 만족도 점수에 유의미한 차이가 있음을 알 수 있다.

ladder_plot_data <- data %>%
  filter(!is.na(smoking), !is.na(life_ladder)) %>%
  group_by(smoking, life_ladder) %>%
  summarise(count = n(), .groups = "drop_last") %>%
  group_by(smoking) %>%
  mutate(비율 = round(count / sum(count) * 100, 1))

ladder_plot_data
## # A tibble: 22 × 4
## # Groups:   smoking [2]
##    smoking life_ladder count  비율
##    <chr>         <dbl> <int> <dbl>
##  1 비흡연            0    11   0.1
##  2 비흡연            1    33   0.3
##  3 비흡연            2    86   0.8
##  4 비흡연            3   336   3  
##  5 비흡연            4   506   4.5
##  6 비흡연            5  1588  14.2
##  7 비흡연            6  1707  15.2
##  8 비흡연            7  2663  23.7
##  9 비흡연            8  2540  22.7
## 10 비흡연            9  1384  12.3
## # ℹ 12 more rows

삶에 대한 전반적인 만족감을 나타내는 life_ladder 점수를 기준으로 흡연자와 비흡연자의 응답을 비교한 결과, 흡연자 집단에서는 낮은 점수(0~5점) 응답 비율이 상대적으로 더 높았고,높은 점수(9~10점) 응답 비율은 비흡연자 집단에서 두드러졌다.

예를 들어, ‘삶의 사다리 점수 5점 이하’ 응답은 비흡연자가 약 19.9%(0~5점 비율 합계), 흡연자가 약 28.3%로, 흡연자 집단이 상대적으로 삶의 만족도가 낮은 경향을 보였다.

반대로 9~10점을 준 응답자는 비흡연자 집단에서 15.5% (9점 12.3% + 10점 3.2%)에 달한 반면, 흡연자 집단에서는 14.6% (9점 11.9% + 10점 2.7%)로 소폭 낮았다. 특히 10점(최상) 응답자 비율은 비흡연자가 흡연자의 약 1.2배 이상으로 나타났다. 이는 비흡연자들이 자신이 처한 삶에 대해 더 높은 수준의 주관적 만족감을 느끼고 있음을 보여준다.

전체적인 결과를 살펴보면, 극단적인 차이라고 볼 수는 없지만 흡연자들은 자신의 삶을 중간 이하 수준(5점 이하)으로 평가하는 비율이 비흡연자보다 높고, 반대로 삶에 매우 만족한다는 응답(9~10점)은 비흡연자 쪽에서 더 많이 나타나는 경향을 보였다. 이러한 분포는 앞서 살펴본 삶의 조건 및 정서적 요인들과의 관계를 종합하며, 흡연이라는 행위가 단순한 건강 습관이나 행동 차원을 넘어, 삶에 대한 인식과 만족도, 태도 전반과도 연결된 복합적인 양상임을 보여준다.

그래프 만들기

1. 주당 근로시간 vs 흡연 여부

# 시각화용 데이터셋 준비
plot_data <- data %>%
  filter(!is.na(smoking), !is.na(weekly_hours))

# Boxplot 그리기
ggplot(plot_data, aes(x = smoking, y = weekly_hours, fill = smoking)) +
  geom_boxplot(alpha = 0.7, outlier.shape = NA) +  
  scale_fill_manual(values = c("비흡연" = "#74c69d", "흡연" = "#ff6b6b")) +
  labs(title = "흡연 여부에 따른 주당 근로시간 분포",
       x = "흡연 여부",
       y = "주당 근로시간") +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5),
        legend.position = "none")

첫 번째 그래프에서는 smoking(흡연 여부)와 weekly_hours(주당 근로시간) 간의 관계를 시각화하기 위해 boxplot을 사용하였다. Boxplot은 각 그룹의 분포, 중앙값, IQR(사분위 범위), 이상치를 함께 보여줄 수 있기 때문에, 흡연자와 비흡연자의 근로시간 구조적 차이를 한눈에 파악하기에 적합하다.

색상은 비흡연자를 연두색, 흡연자를 연분홍색으로 처리하여 시각적으로 명확한 대비를 주었다. 그래프 상의 이상치(outlier) 점은 시각적 혼란을 줄 수 있어, 본 시각화에서는 이상치 포인트를 표시하지 않도록 조정하였다. 이는 사전에 이상치 제거 과정을 거쳤으며, 분석 결과 해석에서 불필요한 주의를 피하기 위함이다.

전체적으로 이 시각화는 ‘장시간 노동 같은 삶의 조건이 흡연과 관련이 있는가?’라는 연구 질문에 대해 데이터가 어떤 방향성을 보여주는지를 명확하게 전달하는 시각적 근거로 사용된다.

2. 가족생활에 대한 만족도 vs 흡연 여부

plot_ly(data = fam_plot_data,
        x = ~family_satisfaction,
        y = ~비율,
        type = 'bar',
        color = ~smoking,
        colors = c("비흡연" = "#74c69d", "흡연" = "#ff6b6b")) %>%
  layout(title = list(text = "흡연 여부에 따른 가족생활 만족도 분포",
                      font = list(size = 13)),
         xaxis = list(title = "가족생활 만족도"),
         yaxis = list(title = "비율(%)"),
         barmode = 'group',  
         legend = list(title = list(text = "흡연 여부")))

smoking과 family_satisfaction은 모두 범주형 변수이므로, 집단 간 비율 비교를 위해 비율 막대그래프를 사용하였다.

색상은 비흡연자(연두), 흡연자(연분홍)로 설정하여 두 집단의 시각적 대비를 명확히 했으며, 축 순서를 ’매우 불만족 → 매우 만족’의 정렬로 설정해 독자의 시선이 만족도의 흐름을 자연스럽게 따라갈 수 있도록 하였다. 이 구성은 ’흡연자들이 전체적으로 더 낮은 만족도 분포를 보인다’는 경향을 쉽게 파악하게 해준다.

또한, 카테고리별 세부 수치를 직접 확인할 수 있도록 인터랙티브 그래프(plotly)를 적용하였다. 마우스를 올리면 각 항목의 정확한 비율을 확인할 수 있기 때문에, 비흡연자와 흡연자 간의 미세한 차이도 직관적으로 비교할 수 있다.

전체적으로 이 그래프는 ‘가족생활에 대한 만족도 같은 심리적 상태가 흡연에 영향을 미치는가?’라는 연구질문을 시각적으로 설득력 있게 뒷받침한다.

3. 외로움 vs 흡연 여부

plot_ly(data = lonely_plot_data,
        x = ~loneliness,
        y = ~비율,
        color = ~smoking,
        colors = c("비흡연" = "#74c69d", "흡연" = "#ff6b6b"),
        type = "bar") %>%
  layout(title = list(text = "흡연 여부에 따른 외로움 경험 분포",
                      font = list(size = 13)),  # 제목 글자 크기 조절
         xaxis = list(title = "외로움 빈도"),
         yaxis = list(title = "비율(%)"),
         barmode = "group")

smoking과 loneliness은 모두 범주형 변수이므로, 두 집단의 정서적 외로움 경험 분포를 비교하기 위해 비율 기반의 막대그래프를 사용하였다. 특히 이 변수의 경우, 응답 분포 간의 차이가 상대적으로 뚜렷하지 않았기 때문에 세부 응답 비율을 보다 정밀하게 확인할 수 있도록 plotly 기능을 활용해 인터랙티브 그래프로 시각화하였다. 이를 통해 사용자는 각 응답 항목 위에 마우스를 올리면 비율이 실시간으로 출력되며, 눈으로는 쉽게 인지하기 어려운 미세한 분포 차이까지 확인 가능하다.

색상 구성은 이전과 동일하게 흡연 여부에 따라 구분하였다.

이 그래프는 ‘외로움과 같은 심리적 상태가 흡연에 영향을 미치는가?’라는 연구질문에 대해 시각적으로 비교 근거를 제공한다.

4. 무기력감 vs 흡연 여부

plot_ly(data = help_plot_data,
        x = ~helplessness,
        y = ~비율,
        color = ~smoking,
        colors = c("비흡연" = "#74c69d", "흡연" = "#ff6b6b"),
        type = "bar") %>%
  layout(title = list(text = "흡연 여부에 따른 무기력감 응답 분포",
                      font = list(size = 13)),  # 제목 글자 크기 설정
         xaxis = list(title = "무기력감 수준"),
         yaxis = list(title = "비율(%)"),
         barmode = "group")

smoking과 helplessness은 모두 범주형 변수이므로, 집단별 무기력감 수준 분포를 비교하기 위해 비율 막대그래프를 선택하였다. 이 그래프 또한 세부 응답 비율을 보다 정밀하게 확인할 수 있도록 plotly 기능을 활용해 인터랙티브 형태로 구성하였다.

색상은 앞선 시각화와 통일감을 유지하였다.

이 그래프는 ‘무기력감과 같은 심리적 상태가 흡연에 영향을 미치는가?’라는 연구 질문에 대해 응답 분포 기반의 시각적 증거를 제공하며, 흡연 집단에서 부정적 정서 응답이 더 높게 나타난다는 경향을 보여준다.

5. 삶의 사다리 점수 vs 흡연 여부

plot_ly(data = ladder_plot_data,
        x = ~life_ladder,
        y = ~비율,
        color = ~smoking,
        colors = c("비흡연" = "#74c69d", "흡연" = "#ff6b6b"),
        type = 'scatter',
        mode = 'lines+markers') %>%
  layout(title = list(text = "흡연 여부에 따른 삶의 만족도 점수 분포 경향",
                      font = list(size = 13)),
         xaxis = list(title = "삶의 사다리 점수"),
         yaxis = list(title = "비율(%)"),
         legend = list(title = list(text = "흡연 여부")))

마지막 그래프는 life_ladder(삶의 사다리 점수)의 분포를 smoking(흡연 여부)에 따라 비교한 시각화이다.이 변수는 0~10점 사이의 정수형 응답값으로, 두 집단의 전반적인 삶 만족도 경향을 파악하기 위해 선그래프를 선택하였다.

그래프는 각 점수에 대한 응답 비율을 선으로 연결하여, 흡연자와 비흡연자의 삶 만족도가 어떻게 다르게 퍼져 있는지 흐름의 형태로 보여준다.

인터랙티브 기능이 포함된 선그래프로 제작하였으며, 디자인 측면에서는 비흡연자는 연두색, 흡연자는 연분홍색으로 색상을 설정하여 통일성과 시각적 대비를 유지하였다.

이 그래프는 앞선 분석 결과들을 종합해 ‘삶에 대한 만족감도 흡연에 영향을 미치는가?’라는 연구 질문에 대한 마지막 시각적 정리로 기능한다.

데이터 분석 결론

본 분석은 한국복지패널 데이터를 기반으로, 삶의 조건과 심리적 상태, 그리고 삶에 대한 만족도가 흡연 여부와 어떤 관련이 있는지를 살펴보았다. 각각의 변수는 단편적인 비교가 아닌, 흡연이라는 행동의 맥락을 입체적으로 이해하기 위한 구성 요소로서 기능했다.

첫 번째로, 주당 근로시간을 비교한 결과 흡연자 집단이 비흡연자보다 평균적으로 더 많은 시간을 일하는 경향이 확인되었다. 이 결과는 ’노동시간’이라는 삶의 조건이 흡연 행동과 관련이 있을 수 있다는 가능성을 보여준다.

두 번째로, 가족관계 만족도, 외로움, 무기력감과 같은 심리적 변인들을 분석한 결과, 흡연자들은 비흡연자에 비해 전반적으로 정서적 만족도나 안정감이 낮은 경향을 보였다. 비율 차이는 크지 않았지만, 그 미묘한 차이조차 정서적 거리감이 흡연과 맞닿아 있을 수 있음을 보여준다.

마지막으로, 삶의 만족도를 측정한 life_ladder 점수 분포는 흡연자가 전체적으로 더 낮은 점수 구간에 집중된 반면, 비흡연자는 높은 점수(9~10점) 응답 비율이 상대적으로 더 높았다. 점수 분포 경향을 선그래프로 시각화한 결과, 두 집단은 ‘보통’ 구간에서 교차하되, 삶에 대해 긍정적으로 평가하는 경향은 비흡연자 쪽에서 더 뚜렷하게 나타났다.

이러한 분석 결과는 단지 흡연을 ’건강에 해로운 습관’으로 규정하고 규제하는 기존 접근을 넘어, 삶의 조건과 심리적 상태, 삶의 만족도를 함께 고려하는 포괄적 대응이 필요함을 시사한다. 장시간 노동, 정서적 고립, 낮은 삶의 만족도 등은 흡연을 선택하게 만드는 토양일 수 있으며, 이에 따라 금연 정책 또한 단순한 캠페인을 넘어서 노동환경 개선, 심리적 지원 등과 연결된 종합적 접근이 필요하다.

분석 과정에서는 다양한 시각화 방법을 활용하였고, 각각의 그래프는 연구 질문에 명확하게 대응되도록 설계하였다. 최종적으로 본 보고서는 세 가지 연구 질문에 대해 실증적 근거와 시각적 해석을 바탕으로 흐름 있는 이야기를 구성하고자 하였으며, 흡연에 대한 이해를 행위 중심에서 맥락 중심으로 확장하는 시도를 담고 있다.