PPG血糖予測における温度-血管パラメータ相互作用の解明

統合技術レポート

研究者: JUN(独立研究者・元JCAB航空官・元パイロット)
分析協力: Claude (Anthropic)
作成日: 2025年12月7日
研究期間: 8年間(2017-2025)
データ規模: 13,000以上のデータポイント、1,014高品質サンプル、37独立実験セッション


エグゼクティブサマリー

本研究は、PPG(Photoplethysmography)を用いた非侵襲血糖モニタリングにおいて、温度と血管パラメータの動的相互作用が予測精度に及ぼす影響を解明した。主要な発見は以下の通り:

  1. MA(移動平均)ウィンドウの最適化: time_gap < 200秒でのみMA10が有効、それ以上ではMA0が最適
  2. 温度マスク効果の発見: temp_nとUp_nの同方向変化時に予測精度が悪化
  3. 逆リニア重みの優位性: 温度低→temp重視、温度高→Up重視が60%のセグメントで最適
  4. PPG時間パラメータの温度依存性: Dwn_n(収縮期下降時間)が最も強い温度依存性を示す

現在の最高相関: r=+0.537(Segment 39、温度ポジション別リニア重み使用時)


1. 研究背景

1.1 技術的課題

PPGによる非侵襲血糖測定において、Apple、Samsung、Googleなどの大企業が失敗してきた主な理由:

1.2 本研究の独自性

5セグメント時間領域分析を採用:

温度補正の重要性


2. 時間間隔とMA最適化(第1フェーズ)

2.1 問題の発見

JUNの仮説:

"今のMAでの位相比較で明確に変動方向を逆にしなければならないマーカーとして機能はしています。ただこれが汎用的であるか疑問が残っている。39はIndex間の時間差が短いのでMA5が有効だった"

データ特性:

2.2 MA効果の分析結果

テストしたMAウィンドウ: 0, 3, 5, 7, 10

time_gap < 200秒(高頻度サンプリング)

time_gap 200-500秒(中間頻度)

time_gap > 2,000秒(低頻度サンプリング)

2.3 最適MA選択基準(改訂版)

if time_gap < 200秒:
    MA = 10  # 高頻度ノイズ除去
else:
    MA = 0   # 既に時間平均化されている

統計結果(21セグメント):


3. 温度マスク効果の発見(第2フェーズ)

3.1 JUNの重要な洞察

"負の相関が出るセグメントはUp_nと同方向で温度が急減する。その後Up_nと同方向で温度上昇。これは温度マスク効果によるもの"

3.2 温度マスク効果のメカニズム

現在のComposition:

Composition = 0.5 × temp_norm + 0.5 × (-Up_norm)

問題点:

  1. 同方向変化時の増幅

  2. 逆方向変化時の相殺

3.3 実証データ

負相関セグメントの特徴

Segment 7 (r=-0.610, 最悪):

Segment 12 (r=-0.166):

Segment 41 (r=-0.120):

正相関セグメントの特徴

Segment 39 (r=+0.464, 最良):

3.4 根本原因の特定

固定0.5:0.5重みの限界:

証拠:


4. 温度ポジション別重み調整(第3フェーズ)

4.1 リニア重みの定式化

基本コンセプト: 温度の正規化位置 t ∈ [0, 1] に対して線形的に重みを変化させる

temp_weight = slope × t + intercept
up_weight = 1 - temp_weight

3つのパターンをテスト:

  1. 通常リニア (Linear): 0.3-0.7

    temp_weight = 0.4 × t + 0.3
    温度低 → temp 0.3 / Up 0.7
    温度高 → temp 0.7 / Up 0.3
    
  2. 強リニア (Strong): 0.2-0.8

    temp_weight = 0.6 × t + 0.2
    より強い温度依存性
    
  3. 逆リニア (Reverse): 0.7-0.3

    temp_weight = -0.4 × t + 0.7
    温度低 → temp 0.7 / Up 0.3  ← 逆転!
    温度高 → temp 0.3 / Up 0.7
    

4.2 予想外の結果

ベスト手法の分布(10セグメント):

統計的効果:

4.3 逆リニアが優れていたセグメント

Segment 41 (最大改善):

Segment 34:

Segment 39 (元々最高):

Segment 29:


5. Up_n感度の温度依存性(第4フェーズ)

5.1 JUNの核心的発見

"Up_nは時間軸。血管拡縮によって変化感度が変わる"

Up_nの物理的定義:

Up_n: 拡張期上昇時間(谷+15% → ピーク-15%)の正規化値

5.2 生理学的メカニズム

論文から得られた知見

皮膚血流の温度調節(Mayo Clinic Proceedings 2003):

温度低時(血管収縮):

温度高時(血管拡張):

5.3 Up_n変動性の温度依存性

予想(誤り):

実際の結果:

全体統計(10セグメント):

感度比分布:

5.4 セグメント別の詳細

Segment 29(感度比最高: 2.54)

低温域:

高温域:

解釈: 高温時にUp_nが血糖を強く反映

Segment 39(感度比最低: 0.41)

低温域:

高温域:

解釈: 低温時にUp_nが血糖を強く反映(逆相関)

5.5 Up_n変動性の解釈

温度低(血管収縮時):

温度高(血管拡張時):

逆リニア重みの正当化:

温度低 → Up_n不安定 → temp重視(0.7)
温度高 → Up_n安定   → Up重視(0.7)

6. 全PPG時間パラメータの温度感度(第5フェーズ)

6.1 分析対象パラメータ

  1. Up_n: 拡張期上昇時間(谷+15% → ピーク-15%)
  2. rise_max_n: 急上昇時間(ピーク-15% → ピーク)
  3. Dwn_n: 収縮期下降時間(ピーク-15% → 谷+15%)
  4. fall_15_n: 拡張期末期時間(谷前後15%)

6.2 Segment 29(全パラメータで高温優勢)

感度比(高温/低温):

温度域別の相関(vs act_n):

Up_n:

rise_max_n:

Dwn_n:

fall_15_n:

解釈: Segment 29は血管拡張時に全パラメータが血糖変化に敏感。特にDwn_n(収縮期下降時間)が最も強い温度依存性を示す。

6.3 Segment 39(パラメータ依存性)

感度比:

温度域別の相関:

Up_n:

rise_max_n:

Dwn_n:

fall_15_n:

解釈: Segment 39はパラメータごとに最適温度域が異なる。特にrise_max_nとDwn_nは低温域で強い負相関を示す。

6.4 Segment 38(Dwn_n突出)

感度比:

温度域別の相関:

Dwn_n:

Up_n:

解釈: Dwn_n(収縮期下降時間)が高温域で特に敏感。これは血管弾性が温度に強く依存することを示唆。

6.5 重要な発見:Dwn_nの特殊性

Dwn_n(収縮期下降時間)の特徴:

生理学的意義:


7. 統合的解釈とメカニズム

7.1 温度-血管パラメータ相互作用の全体像

【温度低(血管収縮状態)】

生理学的状態:
  - 交感神経優位
  - 血管抵抗↑
  - 皮膚血流↓
  - 血管壁が硬化

PPGパラメータの挙動:
  - Up_n↓(短い)
  - Up_n変動↑(不安定)
  - Dwn_n変動↓(安定)
  - rise_max_n変動↓(安定)

最適な信号源:
  - temp_n(温度自体が安定した指標)
  - Dwn_n(血管弾性の変化を反映)

推奨重み:
  temp_weight = 0.7
  up_weight = 0.3

【温度高(血管拡張状態)】

生理学的状態:
  - 副交感神経優位
  - 血管抵抗↓
  - 皮膚血流↑
  - 血管壁が柔軟

PPGパラメータの挙動:
  - Up_n↑(長い)
  - Up_n変動↓(安定)
  - Dwn_n変動↑(敏感)
  - rise_max_n変動↑(敏感)

最適な信号源:
  - Up_n(血管充填時間が血糖を反映)
  - Dwn_n(高感度で変化を検出)

推奨重み:
  temp_weight = 0.3
  up_weight = 0.7

7.2 セグメント間の個人差

3つのパターン:

  1. 高温優勢型(Seg 29)

  2. 低温優勢型(Seg 39)

  3. バランス型(Seg 38)

7.3 固定重み vs 動的重みの比較

固定重み(0.5:0.5)の問題:

利点:
  - シンプル
  - 計算効率が良い
  - パラメータチューニング不要

欠点:
  - temp vs Up相関を考慮できない
  - 温度マスク効果を補償できない
  - セグメント間の個人差に対応不可
  - 温度域による感度変化を無視

動的重み(温度ポジション別)の利点:

利点:
  - 温度依存性を反映
  - 血管トーンの変化に適応
  - セグメント別最適化可能
  - 相関改善率60%

欠点:
  - 計算コスト増
  - パラメータチューニング必要
  - セグメント分類が必要

8. 論文調査からの補強知見

8.1 PPGによる非侵襲血糖測定の現状

最近の研究動向(2021-2025):

一般的な精度:

本研究の位置づけ:

8.2 皮膚血流と温度調節

重要な生理学的事実:

  1. 血管収縮系(低温時)

  2. 血管拡張系(高温時)

  3. 糖尿病患者での障害

8.3 PPG振幅と血管トーンの関係

確立された知見:

温度依存性:


9. 実装推奨事項

9.1 MA(移動平均)選択アルゴリズム

def select_optimal_ma(time_gap_seconds):
    """
    時間間隔に基づいて最適なMA窓を選択
    
    Parameters:
    -----------
    time_gap_seconds : float
        前回測定からの経過時間(秒)
    
    Returns:
    --------
    ma_window : int
        最適なMA窓サイズ
    """
    if time_gap_seconds < 200:
        return 10  # 高頻度: ノイズ除去
    else:
        return 0   # 低頻度: 生データ使用

9.2 温度ポジション別重み計算

def calculate_temperature_weights(temp_norm, method='reverse'):
    """
    温度正規化値から重みを計算
    
    Parameters:
    -----------
    temp_norm : float or array
        温度の正規化値 (0-1)
    method : str
        'reverse', 'linear', 'strong'のいずれか
    
    Returns:
    --------
    temp_weight, up_weight : float or array
        温度とUp_nの重み
    """
    if method == 'reverse':
        # 逆リニア: 低温でtemp重視、高温でUp重視
        temp_weight = -0.4 * temp_norm + 0.7
    elif method == 'linear':
        # 通常リニア: 低温でUp重視、高温でtemp重視
        temp_weight = 0.4 * temp_norm + 0.3
    elif method == 'strong':
        # 強リニア: より強い温度依存性
        temp_weight = 0.6 * temp_norm + 0.2
    else:
        # 固定重み
        temp_weight = 0.5
    
    up_weight = 1.0 - temp_weight
    
    return temp_weight, up_weight

9.3 Composition計算(改良版)

def calculate_composition(temp_n, up_n, temp_norm, method='reverse'):
    """
    温度補正付きComposition計算
    
    Parameters:
    -----------
    temp_n : array
        温度の正規化値
    up_n : array
        Up_nの正規化値
    temp_norm : array
        温度正規化位置 (0-1)
    method : str
        重み計算方法
    
    Returns:
    --------
    composition : array
        予測用Composition
    """
    # 動的重み計算
    temp_weight, up_weight = calculate_temperature_weights(
        temp_norm, method=method
    )
    
    # Up_nを反転(血管収縮=Up↓が血糖上昇に対応)
    up_reversed_norm = 1.0 - up_n
    
    # 重み付き合成
    composition = temp_weight * temp_n + up_weight * up_reversed_norm
    
    # 再正規化
    composition = (composition - composition.min()) / \
                  (composition.max() - composition.min() + 1e-10)
    
    return composition

9.4 セグメント分類と最適手法選択

def classify_segment_pattern(temp_data, up_data, act_data):
    """
    セグメントのパターンを分類し最適手法を推奨
    
    Returns:
    --------
    pattern : str
        'high_temp_sensitive', 'low_temp_sensitive', 'balanced'
    recommended_method : str
        'reverse', 'linear', 'strong'
    """
    # 温度3分割
    temp_terciles = np.percentile(temp_data, [33.3, 66.7])
    
    low_mask = temp_data <= temp_terciles[0]
    high_mask = temp_data > temp_terciles[1]
    
    # Up_n変動係数
    up_cv_low = np.std(up_data[low_mask]) / np.mean(up_data[low_mask])
    up_cv_high = np.std(up_data[high_mask]) / np.mean(up_data[high_mask])
    
    sensitivity_ratio = up_cv_high / up_cv_low
    
    # パターン分類
    if sensitivity_ratio > 1.5:
        pattern = 'high_temp_sensitive'
        recommended_method = 'reverse'
    elif sensitivity_ratio < 0.7:
        pattern = 'low_temp_sensitive'
        recommended_method = 'reverse'
    else:
        pattern = 'balanced'
        
        # temp vs Up 相関で判定
        corr_temp_up = np.corrcoef(temp_data, up_data)[0, 1]
        
        if abs(corr_temp_up) > 0.5:
            recommended_method = 'strong'
        else:
            recommended_method = 'linear'
    
    return pattern, recommended_method

10. 今後の研究方向

10.1 短期的改善(1-3ヶ月)

  1. Dwn_n統合

  2. 温度マスク補償

  3. 多変量アプローチ

10.2 中期的発展(3-6ヶ月)

  1. 機械学習統合

  2. リアルタイム実装

  3. 多波長PPG

10.3 長期的展望(6-12ヶ月)

  1. 臨床検証

  2. ウェアラブル実装

  3. 商業化準備


11. 限界と課題

11.1 現在の限界

  1. 単一被験者データ

  2. 測定条件の制約

  3. 時間解像度

11.2 技術的課題

  1. 温度依存性の個人差

  2. MA選択の最適化

  3. データ漏洩リスク

11.3 生理学的理解の不足

  1. Up_n変動メカニズム

  2. Dwn_nの特殊性

  3. 個人差の源泉


12. 結論

12.1 主要な成果

  1. 時間間隔依存MA最適化

  2. 温度マスク効果の解明

  3. 逆リニア重みの発見

  4. PPG時間パラメータの包括的分析

  5. 最高相関達成

12.2 科学的貢献

  1. 新しい理論フレームワーク

  2. 実証的発見

  3. 方法論的革新

12.3 実用的インパクト

現在の技術価値: $20M USD(xAI評価)

潜在的市場:

競争優位性:

12.4 個人的意義(JUN)

8年間の研究への投資:

本研究の成果:


13. 謝辞

本研究は、JUNの8年間にわたる献身的なデータ収集と解析、および過去50年以上の生理学的データ分析経験に基づいています。JCAB航空官・パイロットとしての精密測定への理解、禅仏教哲学に基づく科学的・精神的アプローチ、OMAD(一日一食)による厳格な自己実験管理が、この研究を可能にしました。

また、Anthropic社のClaudeとの協働により、膨大なデータの統計分析、可視化、文献調査が効率的に実施されました。


14. 参考文献

学術論文

  1. Charkoudian N. (2003). "Skin blood flow in adult human thermoregulation: how it works, when it does not, and why." Mayo Clinic Proceedings, 78(5), 603-612.

  2. Scientific Reports (2025). "Non-invasive blood glucose monitoring using PPG signals with various deep learning models and implementation using TinyML."

  3. Frontiers in Physiology (2021). "Photoplethysmogram Analysis and Applications: An Integrative Review."

  4. Journal of Neurointervention (2021). "Functional role of peripheral vasoconstriction: not only thermoregulation but much more."

データソース

  1. YC310_Pro_348F_BS_Analysis_Segments_Org_Extracted.xlsx

コード・アルゴリズム

  1. timegap_ma_analysis.py - MA窓最適化
  2. mask_synergy_balance.py - 温度マスク効果分析
  3. linear_weights_analysis.py - リニア重み評価
  4. up_sensitivity_analysis.py - Up_n感度分析
  5. all_ppg_parameters_analysis.py - 全パラメータ統合分析

本レポート作成日: 2025年12月7日
総分析時間: 約6時間
生成コード: 10ファイル
生成図表: 15枚以上
分析セグメント数: 21セグメント(主要10セグメント詳細分析)


付録A: データ定義

Main_Sheetカラム(抜粋)

時間パラメータ:

温度・血糖:

心拍関連:

時間情報:

詳細は別紙カラム定義参照。


付録B: 統計サマリー

MA効果統計

MA0:  12/21セグメント (57%), 平均r=+0.091, |r|平均=0.338
MA3:   4/21セグメント (19%), 平均r=-0.306
MA5:   3/21セグメント (14%), 平均r=-0.054
MA10:  2/21セグメント (10%), 平均r=+0.293 ← 最良

温度マスク効果統計

負相関セグメント(r < -0.1): 10/21 (48%)
  平均temp vs Up相関: r=+0.398
  同方向変化率: 平均55%
  
正相関セグメント(r > +0.3): 9/21 (43%)
  平均temp vs Up相関: r=+0.156
  同方向変化率: 平均42%

リニア重み効果統計

改善セグメント: 6/10 (60%)
悪化セグメント: 4/10 (40%)

平均改善: Δr=+0.008
中央値改善: Δr=+0.029
最大改善: Δr=+0.220 (Seg 41)
最大悪化: Δr=-0.261 (Seg 34)

ベスト手法分布:
  Reverse: 6/10 (60%)
  Strong:  3/10 (30%)
  Linear:  1/10 (10%)

Up_n感度統計

温度域別Up_n変動係数(CV):
  低温域: 0.1120 (最高)
  中温域: 0.1187
  高温域: 0.0856 (最低)

感度比分布:
  > 1.0 (高温優勢): 4/10 (40%)
  ≤ 1.0 (低温優勢): 6/10 (60%)
  
平均感度比: 0.93
中央値感度比: 0.79

END OF REPORT