データ解析ガイド
ラマンスペクトルの包括的な解析手法
📋 目次
探索的データ解析
データの概要把握
基本統計量
解析タブ → 統計サマリー
表示される情報:
- サンプル数: 150
- グループ数: 3
- 波数ポイント: 1601
- 波数範囲: 400-2000 cm⁻¹
- 平均強度: 0.523 ± 0.145
- 最小値: -0.023
- 最大値: 1.987
スペクトルの可視化
すべてのスペクトルを重ねて表示
分析タブ → 可視化 → すべてのスペクトル
オプション:
□ グループごとに色分け
□ 透明度: 0.3(重なりを見やすく)
□ 平均スペクトルを重ねて表示
グループ平均の比較
分析タブ → 可視化 → グループ平均
表示:
- 各グループの平均スペクトル
- 標準偏差(シェード領域)
- 信頼区間(オプション)
用途:
→ グループ間の大まかな違いを確認
ヒートマップ
分析タブ → 可視化 → ヒートマップ
設定:
- 行: サンプル
- 列: 波数
- カラーマップ: 'viridis'、'RdBu'、'jet'
用途:
- データ全体のパターンを視覚化
- 外れ値の検出
- グループ構造の確認
次元削減
PCA(Principal Component Analysis)
原理
高次元データを低次元に射影し、分散を最大化
数学的定義:
X = T × P^T + E
X: 元のデータ(n × m)
T: スコア(n × k)主成分空間の座標
P: ローディング(m × k)各変数の寄与
E: 残差
目的:
- データの可視化(通常2-3次元)
- ノイズ除去
- 特徴量削減
実行方法
分析タブ → PCA → 実行
設定:
n_components: 2-10
- 可視化: 2-3
- 前処理: 5-50
- ノイズ除去: 説明分散90%まで
scaling: True(推奨)
データを標準化してからPCA
center: True
平均を0にする
スコアプロット
PCA結果 → スコアプロット
表示:
- X軸: PC1(第1主成分)
- Y軸: PC2(第2主成分)
- 点の色: グループ
- 点のサイズ: 調整可能
解釈:
- 近い点: 類似したスペクトル
- 遠い点: 異なるスペクトル
- グループの分離: クラスター形成
3Dスコアプロット
PCA結果 → 3Dスコアプロット
軸:
- X: PC1
- Y: PC2
- Z: PC3
インタラクティブ:
- マウスで回転
- ズーム
- サンプル選択
ローディングプロット
PCA結果 → ローディングプロット
表示:
各波数のPC1, PC2への寄与
解釈:
- 高い正の値: そのPCに正の寄与
- 高い負の値: そのPCに負の寄与
- 0に近い: そのPCとは無関係
用途:
→ どの波数がグループ分離に重要かを特定
スクリープロット
PCA結果 → スクリープロット
表示:
各主成分の説明分散
解釈:
- 「エルボー」の位置: 有用な成分数
- 例: PC1-3で90% → 3成分で十分
使用例:
成分1: 45%
成分2: 25%
成分3: 15%
成分4: 8%
成分5: 4%
→ 3-4成分が適切
バイプロット
PCA結果 → バイプロット
表示:
- スコア(サンプル): 点
- ローディング(変数): 矢印
解釈:
- 矢印の方向: その変数が増加する方向
- 矢印の長さ: その変数の重要度
- サンプルと矢印の位置関係:
サンプルがその変数で高い値を持つ方向
UMAP(Uniform Manifold Approximation and Projection)
PCAとの比較
PCA:
✓ 線形変換
✓ 解釈しやすい
✓ 高速
✗ 非線形構造を捉えられない
UMAP:
✓ 非線形構造を保持
✓ 局所的な構造と大域的な構造を両方保持
✓ 複雑なデータに適する
✗ 解釈が難しい
✗ やや遅い
実行方法
分析タブ → UMAP → 実行
設定:
n_neighbors: 15(デフォルト)
- 小さい(5-10): 局所構造重視
- 大きい(30-50): 大域構造重視
min_dist: 0.1(デフォルト)
- 小さい(0.01-0.1): 密なクラスター
- 大きい(0.3-0.5): 広がったクラスター
n_components: 2
通常は2次元で可視化
使用ケース
UMAP が適している場合:
- PCAで分離が不明確
- 非線形な関係がある
- 複雑なデータ構造
- より視覚的に明確な分離が必要
PCA が適している場合:
- 線形な関係
- 解釈性が重要
- 高速処理が必要
- 主成分の意味を知りたい
t-SNE
特徴
非線形次元削減、可視化に特化
利点:
✓ 優れたクラスター可視化
✓ 複雑な構造を捉える
欠点:
✗ 計算が遅い
✗ 大域的な距離は保持されない
✗ 再現性の問題(ランダムシード依存)
パラメータ
perplexity: 30(デフォルト)
- 小さい(5-15): 局所構造重視
- 大きい(50-100): 大域構造重視
learning_rate: 200
- 調整が必要な場合がある
n_iter: 1000
- 収束に十分な反復数
注意点
⚠️ t-SNEの制限:
- クラスター間の距離は意味がない
- クラスターサイズは意味がない
- 各実行で結果が異なる可能性
- 大規模データでは遅い(n > 5000)
推奨:
→ 探索的可視化にはUMAPを優先
→ t-SNEは補完的に使用
クラスタリング
K-means
原理
k個のクラスター中心を最適化
アルゴリズム:
1. k個の中心をランダムに初期化
2. 各点を最も近い中心に割り当て
3. 各クラスターの中心を更新
4. 収束するまで繰り返し
目的関数:
minimize: Σ ||x_i - μ_k||²
実行方法
分析タブ → クラスタリング → K-means
設定:
n_clusters: クラスター数
- エルボー法で決定
- 通常 2-10
n_init: 10
- 異なる初期化で複数回実行
- 最良の結果を選択
max_iter: 300
- 収束に十分な反復数
クラスター数の決定
エルボー法
分析タブ → クラスタリング → エルボー法
プロット:
X軸: クラスター数(k)
Y軸: イナーシャ(クラスター内平方和)
探す: グラフの「エルボー」(急激な変化)
例:
k=2: イナーシャ = 1000
k=3: イナーシャ = 600
k=4: イナーシャ = 500 ← エルボー
k=5: イナーシャ = 480
k=6: イナーシャ = 470
→ k=4 が適切
シルエット分析
分析タブ → クラスタリング → シルエット分析
シルエットスコア: -1 〜 +1
- 1に近い: よくクラスター化されている
- 0に近い: クラスター境界上
- 負: 誤ったクラスターに割り当て
判定基準:
スコア > 0.5: 良好
スコア 0.3-0.5: 許容
スコア < 0.3: 不良
また、各クラスターのスコア分布も確認
Gap統計量
最適なクラスター数を統計的に決定
計算:
Gap(k) = log(W_k) - E[log(W_k*)]
W_k: クラスター内分散
E[log(W_k*)]: 参照分布での期待値
最大のGap(k)を選択
階層的クラスタリング
原理
ボトムアップアプローチ:
1. 各点を個別のクラスターとして開始
2. 最も近い2つのクラスターを結合
3. すべてが1つのクラスターになるまで繰り返し
結果: デンドログラム(樹形図)
実行方法
分析タブ → クラスタリング → 階層的
設定:
linkage: クラスター間距離の定義
- 'ward': 分散を最小化(推奨)
- 'average': 平均距離
- 'complete': 最大距離
- 'single': 最小距離
metric: 距離メトリック
- 'euclidean'(推奨)
- 'correlation'
- 'cosine'
デンドログラムの解釈
デンドログラム表示:
|
__|__
| |
__|__ _|_
| | | |
A B C D
解釈:
- 高さ: クラスター間の距離
- 低い結合: 類似度が高い
- 高い結合: 類似度が低い
クラスター数の決定:
水平線を引いて切断
→ 交差する垂直線の数 = クラスター数
DBSCAN
特徴
密度ベースのクラスタリング
利点:
✓ クラスター数を事前指定不要
✓ 任意の形状のクラスター検出
✓ 外れ値を自動検出
欠点:
✗ パラメータ調整が難しい
✗ 密度が異なるクラスターには不向き
パラメータ
eps: 近傍の半径
- 小さすぎる: 多くのノイズ点
- 大きすぎる: すべてが1つのクラスター
- k-距離プロットで決定
min_samples: コアポイントの最小近傍数
- 経験則: 次元数 × 2
- 2次元データ: 4-5
- 高次元: より大きく
使用例
分析タブ → クラスタリング → DBSCAN
設定:
eps: 0.5(データに依存)
min_samples: 5
結果:
- クラスター 0, 1, 2, ...: 検出されたクラスター
- -1: ノイズ点(外れ値)
用途:
- 外れ値検出
- 不規則な形状のクラスター
- クラスター数が不明
統計分析
t検定
2群の比較
分析タブ → 統計検定 → t検定
設定:
group1: グループA
group2: グループB
検定タイプ:
- 独立サンプル: 異なるサンプル
- 対応サンプル: 同じサンプルの前後
検定の種類:
- 両側検定(デフォルト): A ≠ B
- 片側検定: A > B または A < B
有意水準: 0.05
結果の解釈
出力:
- t統計量: 2.45
- p値: 0.018
- 自由度: 48
- 信頼区間: [0.05, 0.45]
解釈:
p < 0.05 → 統計的に有意な差がある
各波数でのp値プロット:
X軸: 波数
Y軸: p値
水平線: α = 0.05
有意な波数: p値 < 0.05 の波数
→ グループ間で差がある領域
ANOVA(Analysis of Variance)
3群以上の比較
分析タブ → 統計検定 → ANOVA
設定:
groups: すべてのグループ
検定タイプ:
- 一元配置: 1つの因子
- 二元配置: 2つの因子
仮説:
H0: すべてのグループの平均が等しい
H1: 少なくとも1つのグループが異なる
多重比較
ANOVAで有意な場合 → どのグループ間が異なる?
事後検定:
- Tukey HSD: すべてのペアを比較
- Bonferroni: 保守的
- Dunnett: コントロール群との比較
分析タブ → 統計検定 → 事後検定:
結果例:
A vs B: p = 0.003 ***
A vs C: p = 0.234 n.s.
B vs C: p = 0.012 *
***: p < 0.001
**: p < 0.01
*: p < 0.05
n.s.: 有意でない
多重比較補正
問題
例:
1000波数 × α=0.05 = 50の偽陽性が期待される
解決: 多重比較補正が必要
Bonferroni補正
最も保守的な補正
α_adjusted = α / n_tests
例:
α = 0.05
n = 1000波数
α_adjusted = 0.05 / 1000 = 0.00005
判定: p < 0.00005 の場合のみ有意
FDR(False Discovery Rate)補正
よりバランスの取れた補正
Benjamini-Hochberg法:
q値(FDR調整済みp値)を使用
判定: q < 0.05
特徴:
- Bonferroniより緩やか
- より多くの発見
- 偽発見率を制御
使用方法
分析タブ → 統計検定 → 設定:
□ 多重比較補正を有効化
方法:
- Bonferroni(保守的)
- FDR(推奨)
- Holm
- Sidak
効果量
重要性
p値の限界:
- サンプルサイズに依存
- 実用的な重要性を示さない
解決: 効果量を併記
Cohen’s d
2群間の標準化された差
d = (mean1 - mean2) / pooled_std
解釈:
d < 0.2: 小さい効果
d = 0.2-0.5: 中程度の効果
d = 0.5-0.8: 大きい効果
d > 0.8: 非常に大きい効果
使用:
t検定の結果と併記
Eta-squared (η²)
ANOVAでの効果量
η² = SS_between / SS_total
解釈:
η² < 0.01: 小さい
η² = 0.01-0.06: 中程度
η² > 0.14: 大きい
使用:
ANOVA の結果と併記
相関分析
ピアソン相関
線形相関を測定
分析タブ → 相関分析 → ピアソン
相関係数 r: -1 〜 +1
- r = 1: 完全な正の相関
- r = 0: 無相関
- r = -1: 完全な負の相関
解釈:
|r| > 0.7: 強い相関
|r| = 0.4-0.7: 中程度の相関
|r| < 0.4: 弱い相関
スペアマン相関
順位相関(非線形でもOK)
分析タブ → 相関分析 → スペアマン
利点:
- 外れ値に頑強
- 単調な関係を検出
- 正規分布の仮定不要
使用ケース:
- 非線形な関係
- 順序データ
- 外れ値がある
相関行列
すべての変数間の相関
分析タブ → 相関行列
表示:
ヒートマップ
- 赤: 正の相関
- 青: 負の相関
- 白: 無相関
用途:
- 特徴量選択
- 多重共線性の検出
- 変数間の関係理解
ピーク解析
ピーク検出
分析タブ → ピーク解析 → ピーク検出
設定:
height: 最小ピーク高さ
- ベースラインの5倍(推奨)
distance: 最小ピーク間距離
- 10 cm⁻¹(推奨)
prominence: ピークの卓立度
- 0.1-0.5
width: 最小ピーク幅
- 3-5ポイント
結果:
検出されたピーク位置リスト:
[450, 620, 1003, 1450, 1585, 1620, ...]
ピークフィッティング
分析タブ → ピーク解析 → フィッティング
モデル:
- Gaussian: 対称的なピーク
- Lorentzian: 裾が広いピーク
- Voigt: Gaussian + Lorentzian
- Pseudo-Voigt: Voigt の近似(高速)
パラメータ:
- 中心位置
- 高さ
- 幅(FWHM)
- 面積
用途:
- 重なったピークの分離
- ピーク位置の精密決定
- ピーク面積の定量
ピーク同定
分析タブ → ピーク解析 → ピーク同定
データベース参照:
- 内蔵ラマンピークデータベース
- カスタムライブラリ
マッチング:
検出されたピーク vs データベース
許容誤差: ±5 cm⁻¹
結果:
1450 cm⁻¹ → CH₂ bending
1585 cm⁻¹ → C=C stretching
1620 cm⁻¹ → Aromatic C=C
結果の解釈
PCA結果の解釈
スコアプロット分析
観察項目:
1. クラスターの形成
明確なグループ分離があるか?
2. 外れ値
クラスターから大きく離れた点
3. グループ内の変動
クラスターの広がり
4. グループ間の距離
よく分離している vs 重なっている
ローディング解釈
重要な波数の特定:
1. |loading| が大きい波数を特定
2. その波数の化学的意味を調査
3. 文献やデータベースと照合
例:
PC1のローディングが大きい波数:
- 1450 cm⁻¹: CH₂ bending
- 1585 cm⁻¹: C=C stretching
→ PC1はこれらの結合の違いを表す
クラスタリング結果の解釈
評価項目:
1. クラスター数の妥当性
生物学的/化学的に意味があるか?
2. クラスターの品質
シルエットスコア
クラスター内分散
3. クラスターの特徴
各クラスターの平均スペクトル
特徴的な波数
4. 既知のグループとの一致
教師なし学習の結果が
既知のラベルと一致するか?
統計検定結果の解釈
報告すべき内容:
1. 検定統計量とp値
t = 2.45, p = 0.018
2. 効果量
Cohen's d = 0.65(中程度)
3. 信頼区間
95% CI: [0.05, 0.45]
4. 多重比較補正
Bonferroni補正後も有意
5. 生物学的/化学的意味
差がある波数の解釈
レポート作成
レポート用エクスポート(現状)
現時点では、PDF/Word/HTML 形式の自動レポート生成は未対応です。 代わりに、分析結果を「フォルダ」としてまとめて出力する形式が利用される場合があります。
例(フォルダ構成の一例):
plot.pngdata.csvreport.txtmetadata.json
カスタムレポート
カスタムレポート(PDF/Word/HTML など)は将来的に対応予定です。
図のエクスポート
各図を右クリック → 画像として保存:
フォーマット:
- PNG: プレゼンテーション(300-600 DPI)
- SVG: 編集可能(Illustratorなど)
※ PDF/EPS 出力は現時点では未対応です。
設定:
DPI: 300(標準)、600(高品質)
サイズ: カスタム(mm単位)
背景: 透明 or 白
🔗 関連ドキュメント
最終更新: 2026年1月24日