파일 목록으로

커피 섭취 vs 수면: 개인 데이터 기반 인과 분석 리포트

대상: Taeho Kim (iPhone + Apple Watch 데이터) 분석 기간: 2025-12-20 ~ 2026-04-09 (110일) 데이터 소스: Apple HealthKit via Health Data Bridge CLI 분석 일자: 2026-04-10 (2026-04-11 Granger 구현 버그 정정 반영)

⚠️ Provisional caveat (2026-04-11): 본 리포트의 p-value들은 공통 betaRegularized 함수에 반전 버그가 있던 초기 구현으로 계산되었습니다. 후속 caffeine-multidim.md 리포트에서 이 버그를 발견하고 수정했으나, 본 리포트는 아직 수정된 루틴으로 재계산되지 않았습니다. 다만 본 리포트의 핵심 결론들은 효과 크기(|r|, β) 기반이라 p-value 버그 영향을 받지 않습니다:

  • 취침 시각 → 수면 시간: β = -0.801 (회귀 dominant predictor)
  • 야간 운동 → 깊은 수면: β = -0.232
  • 카페인 → 수면 지표: 모든 상관 |r| ≤ 0.22, 최강 신호는 §4-1의 잔류 카페인 ↔ 깨어남 수 r = 0.21 (small effect, N=110, 버그 없는 계산으로도 p≈0.03이라 양/음 방향 결론에 영향 없음). §4-2 전반부 깨어남 r=0.197, §3-2 Quartile dose-response 방향성도 유지.

p < 0.05/0.10 이분법적 주장은 "provisional"로 간주하고, 방향성·효과 크기·dose-response에 근거한 해석만 신뢰하세요. 재실행 작업은 별도 follow-up으로 예정되어 있습니다.

참고: §5-1의 "깊은수면% → 다음날 RHR r=-0.22"는 수면→다음날 회복 상관이지 카페인 상관이 아닙니다.


Executive Summary

110일간의 Apple Health 데이터(카페인 섭취, 수면 단계, HRV, RHR, 운동, 걸음수)를 약동학 모델링, Granger 인과 검정, Baron-Kenny 매개 분석, 부트스트랩 신뢰구간을 포함한 4단계 분석으로 검증했다.

결론: 현재 카페인 패턴(일 225mg, 마지막 잔 12:37)에서 카페인은 수면에 유의미한 영향을 주지 않는다. 수면의 양과 질을 결정하는 가장 강력한 변수는 취침 시각이며, 깊은 수면에 가장 해로운 변수는 18시 이후 운동이다.

다른 결과와 교차 참조: 카페인은 수면에 영향이 없으나, caffeine-multidim.md 후속 리포트에서 아침 카페인이 일상 HRV(자율신경)에 약한 음의 연관(r=-0.215, effective signal)을 가지는 것으로 나타났습니다. 아래 §6 권장 사항은 "수면 outcome"에 한정된 것이며, HRV 최적화가 목표라면 caffeine-multidim §5 권장 사항도 함께 참고하세요.

단변량 시각의 보조 분석: 같은 디렉토리의 cola-drill-down.md 는 같은 데이터로 단변량 Pearson 상관 caffeine_mg × sleep_onset = +0.22, p≈0.02 를 보고합니다. 이 값은 본 리포트의 multivariate β≈0 결과와 모순되지 않습니다 — 단변량 r=0.22 의 대부분은 취침 시각을 통한 confound 이며 (즉 "바쁜 날에 커피도 많이 + 늦게도 잔다"), 본 리포트의 multivariate 회귀가 그 confound 를 흡수해 카페인의 independent β 를 0 으로 떨어뜨립니다. cola-drill-down 자체에도 같은 데이터의 더 결정적 증거가 있습니다 — 저녁(≥17시) 카페인 코호트(n=9)와 안 마신 코호트(n=104)의 잠든 시각 차이는 +1분으로 거의 0. 자세한 reconciliation은 cola-drill-down.md 의 방법론 노트 를 참고하세요.


1. 데이터 개요

수집 데이터

데이터유형건수기간
카페인 섭취raw records3022025-12-19 ~ 2026-04-10
수면 분석raw records (5 stages)4,0612025-11-30 ~ 2026-04-09
HRV (SDNN)daily bucketed3661년
안정시 심박수daily bucketed131~4개월
운동raw records5391년
걸음수daily bucketed131~4개월
활동 칼로리daily bucketed131~4개월
음주raw records1(거의 미기록)

개인 기술통계

지표평균SD중앙값범위
일일 카페인225mg±62mg223mg63–421mg
마지막 커피 시각12:37±2.5h12:4507:55–19:15
잠든 시각23:42±1.5h23:3519:42–02:44
총 수면시간6.9h±1.3h7.2h4.1–10.1h
깊은 수면 %11.1%±4.0%10.5%4.7–23.5%
REM %19.2%±4.9%19.5%7.5–30.2%
수면 효율94.1%±3.6%94.8%78.2–100%
WASO (깨어남)27min±19min23min0–110min
깨어남 횟수7.7회±3.07.50–17
HRV50.0ms±5.2ms50.1ms36.9–65.8ms
RHR49.6bpm±2.2bpm49.5bpm45–57bpm

2. 분석 1: 카페인과 수면의 관계

2-1. 약동학 모델링

카페인 반감기 5시간을 적용하여 취침 시점의 잔류 카페인 농도를 추정했다.

Quartile취침 시 잔류N총 수면깊은수면%수면 효율WASO
Q1 (최저)20mg286.3h12.1%94.4%23min
Q230mg286.7h11.3%94.4%25min
Q339mg287.3h10.7%94.1%28min
Q4 (최고)54mg267.6h10.3%93.5%33min

잔류 카페인이 높을수록 오히려 수면이 길었다 — 이는 역인과(일찍 자면 대사 시간이 짧아 잔류가 높고, 일찍 잤으니 잠도 길다)로 확인됨.

2-2. 다중회귀 (표준화 β)

수면시간 예측 모델 (R² = 0.686):

변수β (std)해석
취침 시각-0.801유일한 유의 변수
잔류 카페인0.061사실상 0
마지막 커피 시각0.092사실상 0
운동-0.013무관
야간 운동0.065무관
주말0.056무관

카페인을 통제하든 안 하든, 취침 시각 하나가 수면시간 변동의 68.6%를 설명한다.

2-3. 오후 카페인 (≥14시) 자연실험

지표오전만 (n=83)오후 포함 (n=27)차이Cohen's d
잔류 카페인33.4mg41.5mg+8.0mg0.58 (medium)
총 수면6.9h6.9h-0.0htrivial
깊은수면%11.3%10.5%-0.8%ptrivial
수면 효율94.2%94.0%-0.2%ptrivial
WASO26.9min28.6min+1.7mintrivial

잔류 카페인은 실제로 +8mg 증가했지만(medium effect), 모든 수면 지표의 차이는 trivial (d < 0.2).


3. 분석 2: 피로 교란변수 가설

사용자 가설: "피곤한 날 커피를 더 마시고, 피곤하니까 잠도 잘 잔다"

3-1. 피로 지수(Fatigue Index) 구성

PCA PC1 (분산 설명 34.5%)을 사용한 합성 지수:

프록시PCA Loading
전날 수면 부족0.521
5일 누적 수면부채0.585
HRV 저하-0.005
RHR 상승-0.473
전날 수면 효율 저하-0.404

검증: 전날 수면시간과 r=-0.683 (피로 지수가 높을수록 전날 수면이 짧았음).

3-2. 피로 → 카페인?

Fatigue → Daily Caffeine: r = 0.090, p = 0.70 — 유의하지 않음

피로해도 커피를 더 마시지 않는다. 카페인 섭취의 자기상관(ACF)이 lag 1~5 모두 0.14 미만으로, 커피 소비는 컨디션과 무관한 습관적 패턴이다.

3-3. Granger 인과 검정

검정Fp결과
카페인 → 수면?1.650.197유의하지 않음
수면 → 카페인?0.360.701유의하지 않음

양방향 모두 인과관계 없음. 두 변수는 독립적이다.

3-4. Baron-Kenny 매개 분석

Path모델βp
cSleep ~ Caffeine (총 효과)-0.0010n.s.
aCaffeine ~ Fatigue4.270.70
bSleep ~ Fatigue-0.0201n.s.
c'Sleep ~ Caffeine + Fatigue (직접 효과)-0.0010n.s.

간접효과 Bootstrap 95% CI: [-1.41, 1.20] — 0을 포함하여 유의하지 않음.

3-5. 최종 인과 판정

Model A (카페인 → 수면 악화):    기각
Model B (피로 → 양쪽 교란):     기각
Model C (혼합):                기각
→ 결론: 카페인과 수면은 독립 변수

4. 분석 3: 수면 분절(자다 깨기)

4-1. 카페인 ↔ 수면 분절 상관

카페인 변수WASO깨어남 수효율분절지수
일일 카페인 (mg)-0.09-0.040.08-0.02
마지막 커피 시각-0.07-0.060.10-0.11
오후 카페인 (mg)-0.02-0.050.03-0.03
잔류 카페인 (mg)0.150.21-0.060.04

모든 상관이 |r| < 0.22로, 카페인은 수면 분절에도 유의미한 영향이 없다.

4-2. 수면 전반부 vs 후반부

카페인의 약리 효과가 있다면 취침 직후(전반부)에 더 강해야 한다.

잔류 카페인 ↔전반부후반부
깨어남 (min)r=0.197r=-0.018
깊은수면 (min)r=0.057r=-0.007

전반부에 미세하게 더 관련이 있지만, 0.20에도 미치지 못하는 수준.

4-3. 극단값 비교

구분WASO깨어남효율
적게 마신 날 (147mg)29.7min7.9회93.8%
많이 마신 날 (301mg)24.5min7.5회94.5%

카페인을 2배 넘게 마신 날이 오히려 수면 분절이 적다.


5. 분석 4: 최적 수면 조건

5-1. 잘 자면 다음날 컨디션이 좋아지는가?

수면 지표→ 다음날 HRV→ 다음날 RHR→ 다음날 걸음수
총 수면r=0.10r=0.13r=0.04
깊은수면%r=-0.11r=-0.22r=-0.07
수면 효율r=-0.01r=-0.04r=-0.15
수면 품질 종합r=-0.02r=-0.06r=-0.12

유일한 약한 신호: 깊은수면이 많으면 다음날 RHR이 약간 낮음 (r=-0.22). HRV/걸음수와는 무관.

5-2. 최적 취침시간

취침시간대별 수면 품질

취침시간N총 수면깊은수면 min깊은수면 %WASO수면 효율
~21:3058.8h54min10.3%43min92.4%
21:30~22:30238.2h46min9.4%41min92.4%
22:30~23:00187.7h42min9.2%38min92.5%
23:00~23:30186.9h47min11.5%27min94.1%
23:30~00:00146.9h44min10.7%27min94.1%
00:00~00:30136.4h46min12.1%25min94.0%
00:30~01:00116.3h39min10.5%22min94.6%
01:00~285.6h44min13.4%17min95.3%

핵심 발견: 깊은 수면 절대량(min)은 취침 시각과 거의 무관하다 — 언제 자든 ~44-46분. 단 21시 이전에 자면 54min으로 증가.

종합 품질 최적: 22:00 전후 — 수면 8.2h + 깊은수면 46min의 밸런스.

5-3. 취침시간 외 수면 품질 결정 변수

다중회귀 결과 (표준화 β, 영향력 순)

깊은수면 분(min) 예측 (R²=0.135):

변수β해석
야간운동 (≥18시)-0.232가장 강한 부정적 영향
3일 수면부채+0.161부채 높으면 보상적 증가
걸음수-0.131과도한 활동 → 감소
주말-0.119주말에 약간 감소
카페인-0.041무관

깊은수면 비율(%) 예측 (R²=0.278):

변수β해석
취침 시각+0.415늦게 잘수록 비율 증가 (시간 짧으니까)
3일 수면부채+0.224homeostatic 보상
야간운동-0.191깊은 수면 억제
카페인-0.068무관

운동 영향 상세

운동 조건N깊은수면 min깊은수면%수면 품질 z
운동 안 함1848min10.8%+0.09
가벼운 운동 (≤60min)7345min11.7%+0.02
강한 운동 (>60min)3942min10.1%-0.07
운동 시간대N깊은수면 min수면 품질 z
18시 이전7546min+0.04
18시 이후3739min (-7min)-0.13

6. 종합 권장사항

수면 최적화 레버 (영향력 순)

순위변수효과근거
1취침 시각 22:00 전후수면시간 68.6% 설명회귀 β=-0.801
2운동은 18시 이전깊은수면 +7minβ=-0.232
3운동 강도 60분 이하깊은수면 +6min그룹 비교
4커피는 수면 관점에서 현재 패턴 유지 가능수면에 직접 영향 없음모든 수면 지표 |r| ≤ 0.22 (최강 r=0.21, small effect)
5수면 부채 시 일찍 자기자연 보상 발생β=+0.224

⚠️ 카페인 권장사항 scope 제한 (2026-04-11): 위 #4 "커피 현재 패턴 유지"는 수면 outcome에만 해당합니다. 후속 caffeine-multidim.md 리포트는 아침 카페인이 일상 HRV(자율신경)에 약한 음의 연관(r=-0.215, dose-response 존재, 교란 통제 후 유지)을 보인다고 결론 내립니다. HRV 최적화가 목표라면, 첫 커피를 오후(가급적 10시 이후)로 늦추거나 줄이는 것이 effective signal로 지지되는 유일한 카페인 레버리지입니다. 효과 크기는 작지만(HRV ~2.8ms 감소, 본인 SD의 55%) 생리학적으로 타당합니다.

커피에 대해 (금단 예측 — 연구 기반)

현재 패턴을 유지해도 수면에 문제 없으나, 만약 금단 시:

  • 1~2일: 두통, 졸음, 집중력 저하 (50% 확률)
  • 3~5일: 증상 완화, 일시적 조기 취침
  • 2~4주: 안정화, 깊은 수면 비율 11% → 13~16% 가능 (Weibel et al. 2021, Sleep)
  • HRV/RHR 변화는 작을 것 (당신 데이터에서 카페인↔일상 HRV r=-0.17, caffeine-multidim.md §5 참조)

참고 문헌: Rogers et al. (2010) — 카페인의 "각성 효과"는 대부분 금단 증상의 해소. 2~3주 적응 후 동일 에너지 수준.


7. 분석 한계

  1. N=110: 중간 수준. 약한 효과(|r| < 0.15)는 검출력 부족 가능.
  2. 카페인 0mg 일 없음: 대조군 부재로 완전한 인과 추론 불가.
  3. Apple Watch 한계: EEG 기반이 아닌 가속도계+PPG 기반 수면 단계 추정.
  4. HRV 민감도: 수면 회복의 미세한 차이를 포착하기에 불충분할 수 있음.
  5. 자가 보고 없음: 주관적 피로, 기분, 각성 데이터 미포함.
  6. 음주 데이터 부족: 1건만 기록되어 교란 변수 통제 불가.

부록: 분석 방법론

단계방법목적
v1Pearson 상관, 그룹 비교탐색적 분석
v2약동학 모델(반감기 5h), 다중회귀, dose-response quartile교란 변수(취침 시각) 통제
v3PCA 피로지수, Cross-correlation, Granger 인과, Baron-Kenny 매개 분석, Bootstrap 2000회인과 방향 검증
v4수면 분절 분석, 전/후반부 차등 효과, 수면 품질 합성 점수수면 미세구조 검증
v530분 슬라이딩 윈도우, 다변수 수면 품질 회귀최적 조건 탐색

도구: Bun + TypeScript (외부 통계 라이브러리 없이 자체 구현: OLS, F-test, PCA power iteration, Bootstrap, ACF/CCF)

<!-- charts:section:start -->

📊 데이터 시각화

아래 차트들은 research/taeho-health/sleep-caffeine/charts.mjs 가 raw Health Data Bridge 데이터를 직접 읽어 SVG로 생성한 것입니다. 본문 텍스트와 다소 다른 윈도우 / aggregation 을 사용할 수 있고, 본문의 정교한 통계 (Granger / PK / mediation 등) 결과를 시각적으로 보완하는 보조 자료입니다. 자세한 재생산 절차는 data/README.md 참고.

잠든 시각 × 평균 총 수면 시간

bedtime-sleep-curve

잠든 시각이 늦어질수록 평균 총 수면 시간이 짧아지는 inverse 관계가 보입니다. report.md §5의 "22시 부근이 sleep duration에 가장 유리하다" 결론을 시각화한 것입니다. 본문의 multivariate 회귀 (β=-0.801)를 단변량 그림으로 풀어 본 형태.

카페인 4분위 × 평균 총 수면

caffeine-quartile-sleep

일일 카페인 섭취량을 4분위로 나눈 그룹별 평균 총 수면 시간. report.md §2-1의 "용량-반응 관계가 명확하지 않다"를 시각적으로 보여줍니다. Q1↔Q4 차이는 SD 범위 안이라 우연 가능성 농후.

카페인 변수 × 수면 지표 상관 매트릭스

caffeine-sleep-heatmap

카페인 6변수 × 수면 8지표의 Pearson 상관 매트릭스 (* = |t|>2 ≈ p<0.05). 총 카페인 mg과 잠든 시각의 약한 양의 상관 외에는 거의 모든 셀이 |r|<0.2 — "카페인은 수면 outcome에 약하게 영향을 준다"는 본문 결론과 부합. 단, n=113 데이터에서의 관찰일 뿐 인과 증명은 아님.

총 수면 예측 회귀 (표준화 β forest plot)

sleep-predictor-forest

총 수면 시간을 예측하는 표준화 회귀 (4 predictors: 취침 시각 / 일일 카페인 / Active kcal / Steps). 취침 시각의 β가 압도적이고 다른 변수들은 거의 0에 가깝다는 본문 §2-2의 multivariate 결과를 시각화. (본 그림의 CI는 indicative이며 정식 OLS bootstrap이 아님 — 정밀한 추론은 본문 표 참조.)

<!-- charts:section:end -->

0 / 122