介護予防事業C型 KCL層別化解析ツール
使い方ガイド

care_prevention_c_analysis.py|2026-03-24 作成

このツールでできること

介護予防事業C型(短期集中予防サービス)の参加者データに対し、基本チェックリスト(KCL)得点を用いたセグメント回帰を行い、身体機能改善が期待できる群と期待できない群の境界点(breakpoint)を自動的に同定します。

学会発表でそのまま使えるSVG形式の図7点・表3点・テキストレポート1点を一括出力します。

解析手法:Muggeo (2003) のセグメント回帰(piecewise-regression)。Breakpointの95%信頼区間とDavies検定を含む。2群比較にはMann-Whitney U検定とCohen's dを使用。

セットアップ(初回のみ)

1 必要パッケージのインストール

コマンドプロンプト(またはターミナル)で以下を実行:

py -m pip install piecewise-regression japanize-matplotlib scipy pandas numpy matplotlib

py はWindows環境のPythonランチャーです。Mac/Linuxの場合は python3 に読み替えてください。

2 ファイル配置の確認
C:\Users\kawag\work\analysis\
  care_prevention_c_analysis.py ... 解析スクリプト本体
  care_prevention_c_data.csv ... あなたの実データ(要作成)
  output/ ... 結果が自動生成されるフォルダ

データの準備(最重要)

個人情報の取り扱い:CSVには匿名化済みのIDのみを使用し、氏名・住所・電話番号等は含めないでください。個人情報保護法・医療ガイドラインに準拠すること。

CSV列の仕様

列名説明必須
id文字列参加者ID(匿名化済み, 例: P001)必須
age整数年齢必須
sex整数性別(0=男性, 1=女性)必須
kcl_total整数基本チェックリスト総合得点(0-25)必須
kcl_motor整数KCL 運動器領域(0-5, 質問6-10)推奨
kcl_nutrition整数KCL 栄養領域(0-2, 質問11-12)推奨
kcl_oral整数KCL 口腔機能領域(0-3, 質問13-15)推奨
kcl_isolation整数KCL 閉じこもり領域(0-2, 質問16-17)推奨
kcl_cognition整数KCL 認知機能領域(0-3, 質問18-20)推奨
kcl_depression整数KCL うつ領域(0-5, 質問21-25)推奨
kcl_iadl整数KCL IADL領域(0-5, 質問1-5)推奨
tug_pre小数TUG 初回(秒)必須
tug_post小数TUG 終了時(秒)必須
grip_pre小数握力 初回(kg)推奨
grip_post小数握力 終了時(kg)推奨
walk5m_pre小数5m歩行速度 初回(秒)推奨
walk5m_post小数5m歩行速度 終了時(秒)推奨
cs30_pre整数CS-30 初回(回)推奨
cs30_post整数CS-30 終了時(回)推奨
sessions整数参加回数推奨
最小構成:id, age, sex, kcl_total, tug_pre, tug_post の6列があれば解析可能です。列が多いほど出力される図表が増えます。

CSVの例

# 先頭行はヘッダー(列名)
id,age,sex,kcl_total,kcl_motor,tug_pre,tug_post,grip_pre,grip_post,sessions
P001,78,1,5,2,12.3,10.1,18.5,19.2,20
P002,82,0,12,4,15.8,14.9,25.3,25.0,18
P003,75,1,3,1,9.5,8.2,20.1,21.8,22
# ... 以下同様
エンコーディング:Excelで保存する場合は「CSV UTF-8 (コンマ区切り)」を選択してください。Shift-JIS(cp932)でも自動判定しますが、UTF-8 BOM付きを推奨します。

実行方法

1 CSVファイルのパスを設定

care_prevention_c_analysis.py を開き、以下の行を実データのパスに変更:

# 100行目付近
DATA_PATH = r"C:\Users\kawag\work\analysis\care_prevention_c_data.csv"
# ↑ ここをあなたのCSVファイルのパスに変更
2 スクリプトを実行
# コマンドプロンプトで実行
cd C:\Users\kawag\work
py analysis\care_prevention_c_analysis.py

実行時間: n=100で約10〜20秒程度

3 結果を確認

analysis\output\ フォルダに全ファイルが出力されます。

デモモード:CSVファイルが見つからない場合、自動的にダミーデータ(n=100)を生成して動作確認できます。パスを変更せずにそのまま実行すればデモモードになります。

出力ファイル一覧

図(SVG + PNG)

fig1_segmented_tug.svg
セグメント回帰: KCL vs TUG改善量。Breakpointと95%CI、各群の平均改善量を表示。学会ポスターのメイン図に最適。
fig2_segmented_grip.svg
セグメント回帰: KCL vs 握力改善量
fig3_segmented_walk5m.svg
セグメント回帰: KCL vs 5m歩行改善量
fig4_segmented_cs30.svg
セグメント回帰: KCL vs CS-30改善量
fig5_scatter_matrix.svg
4指標の相関散布図。回帰直線・相関係数(r)・p値を表示。補助的な図として使用。
fig6_boxplot_groups.svg
Breakpointで分けた2群の箱ひげ図。Mann-Whitney U検定のp値とデータ点を重畳表示。
fig7_frailty_transition.svg
フレイル状態別(ロバスト/プレフレイル/フレイル)の改善量棒グラフ。誤差バーはSE。

表(SVG + PNG)

table1_demographics.svg
Table 1: 対象者の基本属性(年齢・性別・KCL・フレイル分布・身体機能初回値)
table2_segmented_results.svg
Table 2: セグメント回帰の結果(Breakpoint・95%CI・Davies検定・傾き)
table3_group_comparison.svg
Table 3: 2群比較(平均改善量・p値・Cohen's d・群内Wilcoxon検定)

レポート

analysis_report.txt
全解析結果のテキストサマリー。コピー&ペーストで抄録や報告書に転記可能。

SVGファイルの活用方法

PowerPointに貼り付ける場合

「挿入」→「画像」→ SVGファイルを選択。PowerPoint 2019以降はSVGをネイティブサポートしています。拡大してもぼやけません。

SVG非対応環境の場合は、同時出力されるPNG(300dpi)をご使用ください。

Illustratorで編集する場合

SVGは svg.fonttype = 'none' で出力しているため、テキストがそのまま編集可能です。フォント・色・位置を自由に調整できます。

印刷・PDF用

SVGはベクター形式のため、どのサイズに拡大しても画質が劣化しません。A0ポスターにもそのまま使用可能です。

変化量の計算方法(自動処理)

指標計算式正の値の意味
ΔTUGtug_pre - tug_post秒数減少 = 改善
Δ握力grip_post - grip_prekg増加 = 改善
Δ5m歩行walk5m_pre - walk5m_post秒数減少 = 改善
ΔCS-30cs30_post - cs30_pre回数増加 = 改善

全指標で正の値 = 改善に統一されます。ユーザー側での計算は不要です。

フレイル状態の自動分類

分類KCL総合得点根拠
ロバスト0-3点Satake et al. (2018)
日本老年医学会雑誌 55(3)
プレフレイル4-7点
フレイル8点以上

トラブルシューティング

「piecewise-regression がインストールされていません」

py -m pip install piecewise-regression

日本語が文字化けする

japanize-matplotlib がインストールされていない場合、MS Gothicにフォールバックします。以下を実行:

py -m pip install japanize-matplotlib

「必須列が不足しています」エラー

CSVの列名が仕様と一致しているか確認してください。Excelで保存した際にBOMが付いたり列名にスペースが入ることがあります。

# CSVの先頭行を確認
id,age,sex,kcl_total,tug_pre,tug_post
# ↑ スペースや全角文字が混入していないこと

「Breakpointの推定に失敗」

KCL得点の分布に偏りがある(ほぼ全員が同じ得点帯)場合に発生します。データ数が20件未満の場合もスキップされます。この場合、デフォルト値(10点)で2群比較が行われます。

Breakpointの信頼区間が広すぎる

n=100前後では信頼区間がやや広くなることがあります。これは統計的に正常です。学会発表では「探索的知見」として報告し、今後のサンプルサイズ拡大の必要性に言及してください。

学会発表での統計手法の記載例

【方法】セグメント回帰(Muggeo, 2003)を用いて、基本チェックリスト(KCL)総合得点と身体機能改善量の関係におけるbreakpoint(変化点)を推定した。Breakpointの存在についてはDavies検定で検証し、95%信頼区間をブートストラップ法で算出した。Breakpointで分割した2群間の比較にはMann-Whitney U検定を使用し、効果量はCohen's dで算出した。解析にはPython 3.14 piecewise-regression 1.5.0を使用した。有意水準はp<0.05とした。

倫理的配慮

必須事項:

[AI構成] 本ガイドはAIが生成したものです。解析手法の妥当性は統計専門家にご確認ください。