端末内の履歴と、クラウド同期で取り込まれた履歴を直接集計します。デフォルトの「得点」は Performance (%) です。
画面中央の刺激が明るくなったら、できるだけ速くボタンを押してください。刺激前または100 ms未満の反応は false start です。通知を切り、同じ端末・姿勢・入力方法で測ると比較しやすくなります。
クラウド同期を使わない場合も、JSONでスマホ・PC間の履歴とベースラインを移行できます。同一測定は重複排除して統合します。
測定していないときでも履歴は保持されます。別端末の測定は、自動同期または「今すぐ同期」の完了直後に統合されます。
1ページ50件で表示します。履歴本体はIndexedDBに最大10,000件保存し、条件で絞り込みできます。同期ではrecordIdと削除tombstoneを使って統合します。
基礎 → 測定品質 → 睡眠・分析 → 保存・同期 → 限界の順で整理しています。
Psychomotor Vigilance Test(PVT)は、睡眠不足・長時間覚醒・概日リズムのずれによる持続的注意の低下に敏感な反応時間課題です。10分PVTでは反応から次刺激まで 2–10秒のランダム刺激間隔と、一般に 500 msを超える反応を lapse とする定義が広く用いられています。
Brief PVT(PVT-B)は、3分に短縮する代わりに反応から次刺激までの刺激間隔を 1–4秒にし、lapse閾値を 355 msに下げた検証研究があります。3.15では反応後のフィードバック時間をこのISI内に含め、追加の待ち時間にしません。短時間で実用的ですが、研究によっては10分版との完全な互換性に疑問も示されています。そのため、このHTMLは3分版と10分版を混同せず別モードとして扱います。
睡眠不足への感度を考え、Lapses + False starts(LpFS)、mean response speed(1/RT)、slowest 10% response speed、lapse probability を主要指標にしました。平均RTや中央値RTだけでは、長いlapseや反応分布の変化を十分に捉えられないことがあります。
3.13以降の本測定では、各有効反応を「測定開始からの経過ms」と「RT(ms)」の組として履歴に保存します。30秒timeoutは通常RT線とは分離したイベントとして保存し、false startの発生時刻もms単位で保持します。分析画面で各3分/10分測定の経時変化を再描画できます。3.12以前は個々のRT系列を履歴に保存していなかったため、過去分を後から復元することはできません。
同じタップやキー入力が端末側で短時間に二重入力として届くことによる、2回目の不要な false start を防ぐため、1つの入力を判定した後120msは追加入力を完全に無視します。PVT-Bでも次刺激まで最短1秒あるため、この120msは次の正規刺激への反応を妨げません。無視された入力は得点・false start・RT・ISIのいずれにも影響しません。
3.16では測定内RT推移の対象選択をグラフの箱内へ移しました。モード、品質、測定環境、日付、KSS、Performance、メモで絞り込み、条件に一致する測定を件数上限なしで同一の経過時間軸へ重ねて比較できます。大量表示時は線の太さ・透明度と凡例表示だけ自動調整し、測定系列そのものは省略しません。履歴表の「分析」を押すと、その履歴だけを選択した状態でこの箱へ直接移動します。
3.20以降、「曜日ごと」「日付ごと」は測定日時ではなく起床日時を基準にします。日付をまたいで測定しても同じ起床後の測定はその起床日へ分類されます。起床日時が未記録の履歴は、この2グラフから除外します。
Performanceの棒グラフは0〜100固定ではなく、観測値の差が見やすい範囲へ自動トリミングします。最低約5ポイントの表示幅を確保し、0未満・100超にはしません。絶対値は棒上の数値・ツールチップで確認できます。
3.24では主睡眠の就床時間・実睡眠時間・起床日時・主睡眠Somnusのいずれかが未入力の場合、開始ボタン直前に不足項目を表示します。本測定開始時にも不足項目を再確認し、明示的に了承した場合のみ未入力のまま開始できます。入力形式が不正な場合は測定を開始しません。
3.27以降、実睡眠時間が1時間未満の睡眠エピソードはSomnus対象外として扱い、Somnusスコア欄を無効化します。1時間以上へ変更すると入力可能になります。Somnus時間加重平均も1時間以上のSomnus対象睡眠だけを使い、1時間未満の睡眠は総実睡眠時間・追加睡眠時間・睡眠回数には含めますがSomnus加重平均には含めません。
3.28以降、理論上負の値を取らない指標では、自動余白によって負の目盛りが表示されないよう軸を理論下限でトリミングします。3.29で「時刻ごとの得点」を24時間円環へ変更し、3.30で時間帯背景・時間目盛り・バー表現を調整、3.33でPerformance円環を大型化して値軸目盛りを0時方向・棒より前面へ配置しました。3.34では全グラフへ共通ツールチップを追加し、3.40では円環の固定時間帯背景を明瞭化するとともに、交差検証不能時でも数学的に可能な線形回帰を表示するよう改善しました。3.41ではlag 1〜4の区間表記を明確化し、3.42では分析・測定・結果・説明の表示順を全域で再整理、3.43ではlag結果カードを時間順表記と4区分の統計表示へ再設計し、3.44では「測定内RT」の各反応点にも共通ツールチップを実装しました。反応時間・response speed・睡眠時間・起床後時間・睡眠効率・Somnusなどが対象です。一方、「環境別ベースライン比 RS (%)」のように負値自体に意味がある指標は負側を残します。
主睡眠と追加睡眠を別々に保存し、総実睡眠・主睡眠・追加睡眠・睡眠回数・統合睡眠効率・直近睡眠からPVTまでの時間を派生させます。Somnusは主睡眠・直近睡眠・SomnoMeter独自の時間加重平均を別指標として保持します。
睡眠日サマリーとの関係では、同じ wakeDateISO(同じ主睡眠の起床)に属する複数PVT測定を先に平均し、同じ睡眠の後に何回測定したかで過剰に重くならないようにします。同じ睡眠の後に何回測ったかでその睡眠が過剰に重くならないようにしています。
睡眠効率・実睡眠時間を含む散布図にはトレンドラインを表示します。散布図の回帰は、横軸に2種類以上の値があればn≥2で線形回帰を表示します。n=2〜3は少数データの参考線として破線表示し、n≥4では線形回帰を基準モデルとして評価します。2次回帰はn≥10かつ横軸3種類以上、LOESSはn=16〜500かつ横軸5種類以上で候補にします。複雑なモデルは交差検証の予測誤差を線形より10%以上改善した場合だけ採用し、過学習を抑えます。n≤200ではLOOCV、n>200では全観測を1回ずつ検証に回す決定的10-fold CVを使い、描画停止を防ぎます。回帰線・曲線は観測されたx範囲内だけに描き、線形回帰では95%平均信頼帯も表示します。Pearson rに加えSpearman ρも併記します。
「記録値精密」は各測定を平均せず、測定した時刻(秒まで)に対応する24時間軸上へ棒として配置します。10分・30分・1時間では、それぞれの固定区間内に複数測定があれば選択中の指標を平均します。どの表示でも24時間の横軸位置は一定で、測定がない時間帯を詰めません。
各グラフはSVGまたは2倍解像度PNGで個別保存できます。「分析HTMLを書き出す」では、現在のフィルター・集計結果・表示中グラフを自己完結HTMLとして保存します。
3.15では履歴を暗号化chunkに分割し、Durable Objectのrevision commitで同じSync IDの同時更新を直列化します。削除はtombstoneとして同期するため、別端末の古い履歴から削除済みデータが復活しません。書き込みにはSync IDとは別のWrite Secretを使い、WorkerにはそのSHA-256 verifierだけを保存します。既存KVの旧single-blob暗号データは初回3.15同期時に自動移行します。
履歴本体はlocalStorageではなくIndexedDBへ保存し、最大10,000件を保持します。3.15以降は各測定の反応時間推移を経過msとRT(ms)の整数ペアとして保存し、ストレージ永続化状態と使用量も表示します。旧版のlocalStorage履歴は初回起動時に自動移行します。ページ上では負荷を抑えるため最新50件を表示し、JSON/CSVには保存済み履歴全件を書き出します。RT系列により長期同期データは大きくなるため、定期的なJSONバックアップを推奨します。
刺激提示は requestAnimationFrame に合わせてRTの起点を置き、30秒無反応を30,000 msのlapseとして記録します。また、測定中のタブ離脱・画面非表示を検出し、その測定を品質注意として表示します。専用PVT機器と完全に同等ではありません。特にPVT-Bの355 ms閾値は元研究でもハードウェア依存の可能性が限界として挙げられているため、端末間の絶対RT比較には使わず、同一端末での個人内比較を重視してください。
Karolinska Sleepiness Scale(KSS)は 1–9 の主観的眠気尺度で、反応時間・PVT lapse・EEG指標と有意に関連することが示されています。主観だけ、反応時間だけのどちらか一方に依存せず、両方を並べて表示します。
PERCLOS(眼が約80%以上閉じている時間割合)は有力な眠気指標ですが、Webカメラだけの単一HTMLで眼瞼開度を十分な精度・標準化で推定するには端末差、照明、眼鏡、カメラ位置などの影響が大きいです。精度を装うより、今回は検証しやすいPVTとKSSに限定しました。