1ヶ月の睡眠とHRVを可視化したら、"やる気が出ない日"の正体が見えた
推測するな、測定せよ — 血糖値の次は自律神経
以前、フリースタイルリブレで血糖値を測定してみたという記事で、自分の体内で何が起きているかを数値で把握する試みを書いた。Rob Pikeの格言「推測するな、測定せよ(Don’t guess, measure)」を身体に適用する実験だ。
あのとき衝撃だったのは、同じ食事でも食べ方や組み合わせで血糖値の反応がまったく違うということだった。「身体の中は、思っているより複雑で、思っているより予測可能」——それが血糖値から学んだことだ。
今回、その計測対象を睡眠と**心拍変動(HRV: Heart Rate Variability)**に広げた。1ヶ月分のApple Watchデータを自作アプリに同期し、行動ログと照合してみたら、「やる気が出ない日」の正体が見えてきた。
HRVとは何か — 自律神経の「余裕」を数値化する
心拍変動(HRV)とは、心拍と心拍の間隔のばらつきのことだ。
直感に反するかもしれないが、ばらつきが大きいほど健康な状態を示す。交感神経(戦闘モード)と副交感神経(回復モード)が柔軟に切り替わっている証拠だからだ。逆にHRVが低い——心拍が一定のリズムで打っている——状態は、自律神経が「余裕を失っている」サインとされる。
Apple Watchが計測するHRVは、SDNN(全RR間隔の標準偏差)をベースにしたもので、単位はミリ秒(ms)。一般的に20代男性の正常範囲は50〜100ms程度だが、個人差が大きいので自分のベースラインとの比較が重要になる。
計測環境
- デバイス: Apple Watch Series 9
- データ取得: HealthKit → 自作のiOSアプリ → Supabase(PostgreSQL)に日次同期
- 計測項目: HRV (ms)、安静時心拍数 (bpm)、歩数、睡眠時間、活動カロリー
- 期間: 2026年3月1日〜3月30日(30日間)
データの同期はHealthKit APIからの自動取得で、毎日の値がSupabaseのdaily_logsテーブルに記録される。自分でアプリを作った理由は、Apple純正のヘルスケアアプリでは「日をまたいだ相関分析」が難しいからだ。エンジニアが自分の身体をデバッグするには、生データへのアクセスが要る。
30日分のデータを並べてみた
まずは生データを見てほしい。
| 日付 | 睡眠(h) | HRV(ms) | RHR(bpm) | 歩数 | 行動ラベル |
|---|---|---|---|---|---|
| 3/1 | - | 90 | - | 32,294 | 🏃 レース |
| 3/2 | 7.8 | 51 | - | 10,258 | 🔧 作業 |
| 3/3 | 6.4 | 57 | - | 9,209 | 🔧 作業 |
| 3/4 | 7.3 | 80 | 45 | 10,384 | 🔧 作業 |
| 3/5 | 6.9 | 74 | 51 | 10,141 | 🔧 集中開発 |
| 3/6 | 4.9 | 76 | 49 | 13,487 | 🍺 社交+飲酒 |
| 3/7 | 4.0 | 58 | 57 | 18,895 | 🍺 社交+飲酒 |
| 3/8 | 6.1 | 70 | 52 | 7,803 | 📚 セミナー+🍺 |
| 3/9 | 4.3 | 47 | 61 | 11,372 | 🍺 社交 |
| 3/10 | 4.5 | 55 | 59 | 15,352 | 🏔 旅行 |
| 3/11 | 4.0 | 57 | 65 | 10,273 | 🏔 旅行 |
| 3/12 | 7.8 | 73 | 54 | 8,346 | 🔧 集中開発 |
| 3/13 | 8.0 | 93 | 53 | 8,825 | 🔧 集中開発 |
| 3/14 | 5.3 | 61 | 60 | 9,458 | 🍺 旅行+飲酒 |
| 3/15 | 8.1 | 55 | 59 | 13,514 | 😴 回復 |
| 3/16 | 6.5 | 65 | 52 | 9,161 | 🔧 作業+🍺 |
| 3/17 | 7.6 | 59 | 56 | 8,428 | 🏠 リラックス |
| 3/18 | 6.4 | 66 | 53 | 12,196 | 🔧 作業 |
| 3/19 | 8.9 | 60 | 53 | 7,809 | 🏠 帰省 |
| 3/20 | 6.6 | 68 | 51 | 4,764 | 🏠 家族 |
| 3/21 | 6.0 | 62 | 56 | 12,676 | 🍺 外出+飲酒 |
| 3/22 | 7.3 | 62 | 58 | 10,637 | 🔧 作業 |
| 3/23 | 0.8 | 51 | 53 | 15,486 | 🏃 ランニング |
| 3/24 | 8.8 | 69 | 56 | 10,711 | 😴 回復 |
| 3/25 | 5.8 | 53 | 57 | 8,674 | 📚 セミナー+🍺 |
| 3/26 | 5.6 | 45 | 55 | 507 | 🍺 飲酒 |
| 3/27 | 0.3 | 44 | 60 | 11,513 | 🍺 社交 |
| 3/28 | 8.0 | 85 | 54 | 13,480 | 🏠 家族 |
| 3/29 | 6.4 | 58 | 48 | 20,708 | 🚶 散歩 |
| 3/30 | - | 64 | - | 111 | 🏠 休息 |
月平均: 睡眠 6.0h / HRV 63ms / RHR 54bpm
データを眺めていて最初に気づいたのは、HRVの振れ幅が大きいということだ。最低44ms、最高93ms。倍以上の差がある。そしてこの波は、ランダムではなく、明確なパターンを持っていた。
「回復→パフォーマンス→消耗」の3日サイクル
データを時系列で追っていくと、ある周期が浮かび上がってきた。
Day 1: 回復日(睡眠7.5h+) → HRVが回復する
Day 2: パフォーマンス日(HRV高値) → 集中力が高い、良い仕事ができる、アイデアが出る
Day 3: 消耗日(社交・飲酒・夜更かし) → HRV急落、翌日の回復日が必要になる
具体例を見てみよう。
サイクル1: 3/11 → 3/12 → 3/13
| 日付 | 睡眠 | HRV | 何が起きたか |
|---|---|---|---|
| 3/11 | 4.0h | 57 | 旅行最終日、長距離運転で疲労 |
| 3/12 | 7.8h | 73 | 回復。オフィスで集中開発。「久しぶりに充実感を得た日」 |
| 3/13 | 8.0h | 93 | 月間最高HRV。深い集中ができた |
行動ログを見返すと、3/12-13は「オフィスで一人黙々と開発に没入した日」だった。旅行後にしっかり寝た結果、HRVが73→93msと急回復し、月で最も生産的な2日間になっている。
サイクル2: 3/24 → 3/25-26 → 3/27
| 日付 | 睡眠 | HRV | 何が起きたか |
|---|---|---|---|
| 3/24 | 8.8h | 69 | 前日の睡眠不足から反動で回復 |
| 3/25 | 5.8h | 53 | セミナー後に飲酒を伴う会食 |
| 3/26 | 5.6h | 45 | 連日の飲酒。歩数507歩(月間最低) |
| 3/27 | 0.3h | 44 | HRV月間最低。行動ログ:「やる気が出ない」 |
3/24に8.8時間寝て回復したのに、その後2日連続で飲酒+短時間睡眠を重ねた結果、HRVが69→53→45→44msと坂道を転がるように落ちていく。
3/27の行動ログには「タスクがない」「困ってしまう」というネガティブな記述が並んでいた。当時は「仕事の問題」だと思っていたが、HRV 44msの状態では前向きな思考自体が困難になることがデータから見えてくる。
飲酒がHRVに与える定量的インパクト
3月の30日間で、飲酒を伴う日を特定し、翌日のHRVと比較した。
飲酒日 vs 非飲酒日
| 翌日HRV平均 | 翌日RHR平均 | サンプル数 | |
|---|---|---|---|
| 飲酒日 | 53ms | 58bpm | 8日 |
| 非飲酒日 | 68ms | 52bpm | 22日 |
| 差分 | -22% | +12% |
飲酒した翌日は、HRVが平均22%低下し、安静時心拍数が12%上昇する。
さらに注目すべきは連日飲酒の累積効果だ。
| パターン | 翌日HRV |
|---|---|
| 単発飲酒 → 翌日 | 55-65ms |
| 2日連続飲酒 → 翌日 | 44-47ms |
1日だけの飲酒ならHRVは翌日にある程度回復するが、2日連続で飲むとベースラインの30%以下まで落ち込み、回復に2日以上かかる。
これはアルコールが副交感神経の活動を抑制し、睡眠の質(特に深い睡眠の割合)を低下させるためだと考えられる。「量」よりも「連日」が効く、というのは直感に反する発見だった。
食事データとの照合
同じ期間の食事ログ(65件)も分析した。
朝食の定番化が起きていた
3月前半と後半で、朝食のパターンが変わっていた。
| 期間 | 朝食内容 | 出現回数 |
|---|---|---|
| 3/1-14 | バラバラ(プロテインバー、ソイプロテイン等) | - |
| 3/15-29 | 納豆+めかぶ+生卵+味噌汁 | 10回/15日 |
3/15以降、朝食が「納豆+めかぶ+生卵+味噌汁」にほぼ固定された。栄養学的に見ると:
- 納豆: ナットウキナーゼ(血流改善)、ビタミンK2、発酵食品として腸内環境に寄与
- めかぶ: 水溶性食物繊維(フコイダン)、食後血糖値の上昇を緩やかにする
- 生卵: 良質なタンパク質、コリン(脳機能に関与)
- 味噌汁: 発酵食品、ナトリウム(朝の血圧安定化)
この組み合わせは腸内マイクロバイオームの記事で触れた「発酵食品+食物繊維」のパターンと一致している。意識的に選んだわけではなく、身体が求めるものに従った結果、理にかなった組み合わせに収束したのが面白い。
カレー+ナンの血糖値スパイク問題
ランチのログを見ると、「インドカレー(ニルワナム)」が月4回登場していた。以前CGMで計測したとき、ナン+カレーは食後血糖値が180mg/dL超まで跳ね上がるメニューだった。
血糖値スパイクの後には反動で急降下(リアクティブ・ハイポグリセミア)が起き、午後の眠気や集中力低下を引き起こす。これは「午後のやる気が出ない」のもう一つの要因かもしれない。
セルフモニタリング疲れ
食事ログのカロリー記録は、3月前半はAI推定で記録されていたが、3/14以降はほぼ全件が未記録になっていた。
これはセルフモニタリング疲れ——記録すること自体が負担になって続かなくなる現象——の典型だ。CGM(持続血糖測定)やHRVのように自動で取得できるデータと、食事ログのように手動で入力が必要なデータでは、継続率に大きな差が出る。
精密栄養の実践では、この「記録のハードルをいかに下げるか」が重要なテーマになる。
HRVが低い日に何が起きていたか
ここからが本題だ。HRVの値と、その日の行動ログ(主観的な記述)を照合してみた。
HRV 80ms以上の日(月3日)
| 日付 | HRV | 行動ログの記述 |
|---|---|---|
| 3/1 | 90 | レースで5位入賞。アドレナリン全開 |
| 3/4 | 80 | 「やりたいことができる、集中できる」 |
| 3/13 | 93 | 「久しぶりに仕事して充実感を得た」 |
HRV 45ms以下の日(月3日)
| 日付 | HRV | 行動ログの記述 |
|---|---|---|
| 3/9 | 47 | 「睡眠負債が溜まっていく」 |
| 3/26 | 45 | 「ちょっとメンヘラ化して生きているような気がする」 |
| 3/27 | 44 | 「タスクがそこまでないので困ってしまう」「ふがいなさ」 |
HRVが高い日には「充実」「集中」「アイデアが出る」という記述が並び、低い日には「困る」「不安」「ふがいない」というネガティブワードが増える。
「やる気が出ない」は性格の問題でも、仕事の問題でもなく、自律神経の回復度で説明できる状態だった。
これは逆に言えば、HRVを見れば「今日は何をすべきか」を事前に判断できるということだ。
HRV駆動の1日設計 — 実験から得た3つのルール
この1ヶ月の分析から、自分に適用し始めたルールが3つある。
ルール1: 飲酒翌日は意思決定・創作をしない
HRVが低い状態では、前向きな判断や創造的な作業に向いていない。飲酒翌日は管理業務、ルーチンワーク、コードレビューのような、判断力への負荷が少ないタスクに回す。
ルール2: 7.5h睡眠の翌日を「ゴールデンタイム」にする
データが示す通り、7.5時間以上睡眠した翌日のHRVは平均73ms。このHRV高値の日を自分のプロダクト開発や重要な意思決定に充てる。クライアントワークではなく、自分の事業にこのゴールデンタイムを使う。
ルール3: 週2日は23時就寝を死守する
月平均睡眠6.0hは、目標7.5hに対して-1.5h/日の赤字。これを毎日解消するのは現実的ではないが、週に2日、23時に寝る日を固定すれば、HRVの回復サイクルを安定させられる。
HRVを見てから1日を始める
Apple Watchを着けて寝ると、翌朝にはその夜のHRVが記録されている。朝起きて最初にこの数値を確認し、その日の計画を微調整する。
- HRV > 70ms: ゴールデンタイム。創造的な作業、重要な意思決定、新しいプロジェクトの着手
- HRV 50-70ms: 通常モード。定常業務、打ち合わせ、コーディング
- HRV < 50ms: 回復優先。ルーチンワーク、読書、散歩。無理に生産性を出そうとしない
これは「気合で乗り越える」の対極にある考え方だ。身体の状態を受け入れ、それに合わせて行動を設計する。
腸-脳軸の記事で触れたBDNF(脳由来神経栄養因子)は、睡眠の質とHRVの安定に依存する。つまり、HRVを整えることは脳の成長基盤を整えることに等しい。短期的な生産性の話ではなく、長期的な脳の健康投資でもある。
まとめ: 身体はログを吐いている
エンジニアとして、プロダクションのサーバーがエラーを吐いたら原因を調査する。メトリクスを監視し、アラートを設定し、パフォーマンスが劣化したらボトルネックを特定する。
自分の身体も同じだ。HRVは自律神経のメトリクス、睡眠時間はリソース利用率、安静時心拍数はサーバーの負荷に相当する。身体は常にログを吐いている。それを読むかどうかは自分次第だ。
1ヶ月の計測で見えたのは、「やる気」や「集中力」といった曖昧な感覚が、実は睡眠時間とHRVで予測可能な生理的状態だということ。そして飲酒の累積効果、食事パターンの影響、回復サイクルの存在——どれも推測ではなく、データが教えてくれたことだ。
次回は、血液検査のデータを解析する。HRVや睡眠が「今日の状態」を示すのに対し、血液検査は「今月の身体の方向性」を示してくれる。短期メトリクスと長期メトリクスの組み合わせで、より精密なセルフデバッグができるはずだ。
この記事は「エンジニアの健康データハック」シリーズの第1回です。自分の身体をデータで理解し、パフォーマンスを最適化するための実験記録を連載していきます。
記事の更新をメールで受け取る
質問・リクエストを送る
記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。