Repository navigation
07 データ処理
規格化・平滑化・ベースライン補正・積分など、読み込んだデータに加工を施す機能をまとめています。ほとんどの処理は元のデータセットを変更せず、結果を新しいデータセットとして追加します。
- 処理の始め方と共通のルール
- 規格化(ノーマライズ)
- Savitzky-Golayフィルタ(平滑化/微分)
- ベースライン補正
- 区間積分
- 累積積分
- 共通X格子へのリサンプリング/補間
- 重複X値の検出
- 行フィルタ
- 列の値で系列に分割
- 外れ値検出(Z-score/IQR)
- 複数データセットを使う処理
- 反復測定から誤差を計算する
- 処理履歴を確認する
データ処理のメニューは次のどちらからでも開けます。中身は同じです。
- データセットリストでデータセットを右クリック ▸ データ処理
- メニューバーの データセット ▸ データ処理
データ処理 の下には次の10項目があります。
| メニュー項目 | 結果 |
|---|---|
| 規格化(ノーマライズ)... | 新しいデータセット |
| Savitzky-Golayフィルタ(平滑化/微分)... | 新しいデータセット |
| ベースライン補正... | 新しいデータセット(ベースライン曲線も任意で追加) |
| 区間積分(台形則/Simpson則)... | 積分値を結果ダイアログに表示 |
| 累積積分(台形則/Simpson則)... | 新しいデータセット |
| 共通X格子へのリサンプリング/補間... | 新しいデータセット |
| 重複X値の検出... | 新しいデータセット(平均化)または行のマスク(除去) |
| 行フィルタ... | 条件に合わない行をマスク |
| 列の値で系列に分割... | 値ごとに新しいデータセット |
| 外れ値検出(Z-score/IQR)... | 結果を表示し、必要ならマスク |
共通のルールは次のとおりです。
- 対象は「カレント」のデータセット1件です。 複数選択していても、リストでフォーカスのある(最後にクリックした)データセットだけが処理されます。
- マスクした行は除外されます。 処理はマスク(非表示にした行)を除いた点で計算します。また、XやYが空欄(NaN)の行も自動的に除外されます。
-
結果は元のデータセットと同じ場所に追加されます。 ダイアログの「出力データセット名」で名前を変えられます。既定の名前は元の名前に
_normalizedなどの接尾辞を付けたものです。 -
新しいデータセットの列名は
xとyになります。 多くの処理は結果をXの昇順に並べ替えます。
注意: 規格化・平滑化・ベースライン補正などで追加されたデータセットは、
Ctrl+Z(元に戻す)では消えません。不要になったら、データセットを選んで削除してください(削除は元に戻せます)。一方、マスクを変更する処理(重複X値の「除去」、行フィルタ、外れ値のマスク適用)と「列の値で系列に分割」はCtrl+Zで取り消せます。
マスクした行は、データ表示/編集画面からいつでも解除できます。詳しくは データの編集と計算 を参照してください。
Yの値を、ある基準値で割って規格化します。スペクトルの強度をそろえて形を比べたいときに使います。
| 項目 | 説明 | 既定値 |
|---|---|---|
| 基準 | 「最大値基準」または「特定X値での強度基準」 | 最大値基準 |
| 基準X値 | 「特定X値での強度基準」のときだけ入力できます | データのXの最小値 |
| 出力データセット名 | 追加するデータセットの名前 | 元の名前_normalized |
- 最大値基準: Yの最大値が 1.0 になるように、すべてのYを最大値で割ります。
- 特定X値での強度基準: 指定したXでのYを(前後の点から直線で補間して)求め、その値が 1.0 になるように割ります。例えば「波長 520 nm での吸光度を 1 にそろえる」といった使い方です。
指定したXがデータの範囲外のときや、基準値がほぼ0のときは、エラーになり規格化されません。
データを少しずつずらした「窓」ごとに多項式を当てはめ、ノイズを減らします(平滑化)。同じ仕組みで1次微分・2次微分のスペクトルも作れます。ピークの形を保ったままノイズを落とせるのが特長です。

| 項目 | 説明 | 既定値 |
|---|---|---|
| 種類 | 「平滑化」「1次微分」「2次微分」 | 平滑化 |
| 窓幅(奇数) | 1回の当てはめに使う点の数。3以上の奇数 | 5(データ点数が5未満ならその点数) |
| 多項式の次数 | 各窓で当てはめる多項式の次数(1〜10) | 2 |
| 出力データセット名 | 種類に応じて _smoothed / _deriv1 / _deriv2 が付きます |
元の名前_smoothed |
パラメータの目安:
- 窓幅を大きくするほど、強く平滑化されます。ただし大きくしすぎると、細いピークがつぶれます。
- 多項式の次数を上げるほど、ピークの形が保たれやすくなりますが、平滑化の効き目は弱くなります。
- 窓幅は奇数で、かつ次数より大きくする必要があります。条件を満たさないとエラーになります。
注意: 微分はXの間隔がほぼ等間隔であることを前提にしています。間隔には、隣り合う点の間隔の中央値が使われます。
スペクトルの傾いた背景や、ゆるやかなうねり(ベースライン)を推定し、それを差し引いたデータを作ります。

「手法」で4つの方式から選びます。方式ごとに設定項目が切り替わります。
| 手法 | 考え方 | 設定項目(既定値) |
|---|---|---|
| ALS(Asymmetric Least Squares) | 滑らかな曲線を当てはめながら、曲線より上にある点(ピーク)の重みを小さくする処理を繰り返し、ピークの下をなぞるベースラインを求めます | lam(平滑さ) 100000 / p(非対称重み) 0.0100 / 反復回数 10 |
| 多項式(反復フィット) | 多項式を当てはめ、曲線より上にはみ出た点を曲線の値に置き換えてから当てはめ直す、を繰り返します | 次数 3 / 反復回数 10 |
| ラバーバンド(下側凸包) | データの下側にゴムひもを張ったような折れ線をベースラインにします | なし |
| 手動点 | 指定したXの位置を通る線をベースラインにします | アンカー点のX座標(既定はデータの左端と右端)/ 補間方法「直線」または「3次スプライン」 |
各手法のパラメータの意味:
- lam(平滑さ): 大きいほどベースラインが硬く、滑らかになります。ピークまでなぞってしまう場合は大きくします。
- p(非対称重み): 0より大きく1より小さい値です。小さいほどベースラインがピークを避けて下側を通ります。目安は 0.001〜0.1 です。
- 次数(多項式): 0〜10。データ点数より小さくする必要があります。
-
アンカー点のX座標(手動点): カンマ区切りで2点以上を入力します(例:
0, 20, 50, 80, 100)。各点のYは、その位置の実データから自動的に求めます。点はデータのXの範囲内に置く必要があります。「3次スプライン」には3点以上が必要です。
その他の項目:
| 項目 | 説明 | 既定値 |
|---|---|---|
| 出力データセット名 | 補正後のデータの名前 | 元の名前_baseline_corrected |
| 推定したベースライン曲線も別データセットとして追加する | オンにすると、推定したベースライン自体も 出力名_baseline という名前で追加されます |
オフ |

ヒント: 補正がうまくいったかは、「推定したベースライン曲線も別データセットとして追加する」をオンにして、元データと重ねて確認すると分かりやすくなります。
指定したXの範囲でYを積分し、面積(積分値)を求めます。新しいデータセットは作らず、結果をダイアログに表示します。
| 項目 | 説明 | 既定値 |
|---|---|---|
| 積分方法 | 「台形則(Trapezoidal)」または「Simpson則」 | 台形則 |
| 最小X / 最大X | 積分する範囲(両端を含みます) | データのXの最小値 / 最大値 |
| ベースラインを差し引く(範囲の両端を結ぶ直線を差し引いてから積分) | オンにすると、範囲の両端でのYを結んだ直線をYから引いてから積分します | オフ |
- 台形則は、隣り合う点を直線で結んだ台形の面積を足し合わせます。
- Simpson則は、点を放物線でつないで面積を求めます。滑らかなデータではより正確になりやすい方法です。どちらもデータ点数が偶数か奇数かによる制限はありません。
- 範囲はデータのXの範囲内で指定し、範囲内に2点以上が必要です。
結果ダイアログには、積分方法、積分範囲、ベースライン差し引きの有無、使用データ点数、積分値が表示されます。「コピー」で結果の文章をクリップボードに、「CSVとして保存...」で積分に使った点(X、Y(元データ)、Y(積分に使用))をCSVファイルに保存できます。
ヒント: 「ベースラインを差し引く」は、傾いた背景の上にあるピークの面積を手早く求めるための簡易機能です。本格的に背景を除きたい場合は、先にベースライン補正を行い、補正後のデータセットで区間積分してください。
Xの左端から各点までの積分値を並べた新しいデータセットを作ります。式で書くと、各点 x_i について ∫[x_min, x_i] y dx です。先頭の点の値は常に 0 になります。
| 項目 | 説明 | 既定値 |
|---|---|---|
| 積分方法 | 「台形則(Trapezoidal)」または「Simpson則」 | 台形則 |
| 出力データセット名 | 追加するデータセットの名前 | 元の名前_cumsum |
範囲を絞りたい場合は、区間積分 を使ってください。
データを別のXの並び(格子)の上に補間し直します。X点がそろっていない複数の測定を、同じX点で比べたり計算したりしたいときに使います。
| 項目 | 説明 | 既定値 |
|---|---|---|
| リサンプリング先の格子 | 「他のデータセットのX格子」または「等間隔グリッド」 | 他のデータセットのX格子(他にデータセットが無いときは等間隔グリッド) |
| データセット | (他のデータセットのX格子のとき)X点を借りるデータセット | 先頭のデータセット |
| 開始X / 終了X / 点数 | (等間隔グリッドのとき)格子の範囲と点の数 | データのXの最小値 / 最大値 / 100 |
| 補間方法 | 「線形補間」または「3次スプライン補間」 | 線形補間 |
| 範囲外を外挿する(既定はNaNにする) | 元データのXの範囲外にある格子点の扱い | オフ |
| 出力データセット名 | 追加するデータセットの名前 | 元の名前_resampled |
- 線形補間は前後の点を直線で結びます。3次スプライン補間は滑らかな曲線で結びます(4点以上必要)。
- 「範囲外を外挿する」がオフのとき、元データの範囲外の点は空欄(NaN)になります。オンにすると、線形補間では端の傾きのまま、3次スプラインでは端の曲線を延長して値を作ります。範囲から離れるほど不正確になるので注意してください。
- 元データに同じXが複数ある場合は、そのうち1つの値だけが使われます。先に重複X値の検出で整理しておくと確実です。
同じXの値を持つ行を探し、平均するか除外します。重複が見つからないときは、その旨のメッセージだけが表示されます。重複があると、ダイアログに件数が表示されます。
| 処理方法 | 動作 |
|---|---|
| 平均化(新しいデータセットを作成) | 同じXを持つ行のYを平均し、1点にまとめた新しいデータセットを作ります。既定の名前は 元の名前_averaged です |
| 除去(先頭以外をマスク) | 同じXのうち最初に出てきた行だけを残し、残りの行をマスクします。元のデータセットに対する操作で、Ctrl+Z で取り消せます |
条件式を満たさない行をマスクします。行は削除されないので、後から解除できます。
- データセットを右クリック ▸ データ処理 ▸ 行フィルタ... を選びます。
- 条件式を入力します。ダイアログに、使える列名の一覧が表示されます。
- 「OK」を押すと、条件を満たさない行がマスクされます。
条件式の例:
y > 0.5(x > 0) and (y < 100)
列名はそのまま式の中で使えます。比較演算子(>、<、==、!= など)と and / or / not が使えます。すでにマスクされている行は、そのままマスクされた状態で残ります(マスクが追加されるだけで、解除はされません)。Ctrl+Z で取り消せます。
注意: 列名に空白や
(・)などの記号が含まれていると、その列は式の中で使えません(引用符などで囲む書き方もありません)。条件に使う列は、あらかじめ温度Aやtimeのような名前に変更しておいてください(列名の変更)。
1つの表に「試料名」「条件」などの区分の列があり、その値ごとに別の系列として描きたいときに使います。
- データセットを右クリック ▸ データ処理 ▸ 列の値で系列に分割... を選びます。
- 分割に使う列を選んで「OK」を押します。
列の値ごとに、元の名前 (値) という名前のデータセットが追加されます。
- X軸・Y軸の列は元のデータセットの設定を引き継ぎます。
- 色は使用中のカラーパレットから順に割り当てられます。
- 系列の順番は、表の中でその値が最初に出てきた順です。
- 分割列が空欄の行はどの系列にも入らず、除外された件数がステータスバーに表示されます。
- 元のデータセットはそのまま残ります。
- 値が1種類しかない場合は分割されません。30種類を超える場合は、実行前に確認のメッセージが出ます(連続値の列を誤って選んでいないか確認してください)。
- 追加されたすべての系列は、
Ctrl+Z1回でまとめて取り消せます。
Yの値から外れ値の候補を探します。まず結果を確認し、必要なときだけマスクする、という使い方を想定しています。
| 項目 | 説明 | 既定値 |
|---|---|---|
| 検出方法 | 「Z-score」または「IQR(四分位範囲)」 | Z-score |
| しきい値(|Z| >) | (Z-scoreのとき)この値を超えたら外れ値 | 3.00 |
| 係数(IQR ×) | (IQRのとき)IQRに掛ける係数 | 1.50 |
| 検出した外れ値をマスク(除外)に適用する | オンのときだけ、検出した点をマスクします | オフ |
- Z-score: 各点について Z = (Y − 平均) / 標準偏差(標本標準偏差、n−1 で割る)を計算し、|Z| がしきい値を超える点を外れ値とします。
- IQR: 第1四分位数 Q1 と第3四分位数 Q3 の差を IQR として、Q1 − 係数×IQR より小さい点、Q3 + 係数×IQR より大きい点を外れ値とします。箱ひげ図の「ひげ」の外側にあたります。有効な点が4点未満のときは検出されません。
「OK」を押すと、結果ダイアログに検出方法と検出件数が表示されます。「CSVとして保存...」で、外れ値と判定された点の X と Y を保存できます。マスクを適用した場合は Ctrl+Z で取り消せます。
データセットリストで2件以上を選択すると(Ctrl キーを押しながらクリック)、右クリックメニューに 複数データセット が現れます。
| メニュー項目 | 選択数 | 内容 |
|---|---|---|
| データセット間演算... | ちょうど2件 | AとBの差・和・積・商を計算します |
| X軸アライメント(相互相関)... | ちょうど2件 | Bを左右にずらしてAに重ねます |
| 平均±SD生成... | 2件以上 | 平均曲線と標準偏差を作ります |
| バッチ列計算... | 2件以上 | 同じ計算式をすべてに適用します |
| バッチカーブフィット... | 2件以上 | 同じフィットをすべてに適用します(曲線フィット) |
2件を使う処理では、選択したデータセットの一方がA、もう一方がBになります。どちらがAになったかはダイアログの上部に表示されるので、実行前に確認してください。
演算を「A - B」「B - A」「A + B」「A × B」「A ÷ B」「B ÷ A」から選び、結果を新しいデータセットとして追加します。出力データセット名の既定値は Aの名前 vs Bの名前 です。
- Bの値は、AのXの位置に直線で補間してから計算します。2つのデータのX点がずれていても計算できます。
- 計算されるのは、AとBのXの範囲が重なっている部分だけです。重なりがない場合はエラーになります。
- A・Bの両方にY誤差列が設定されているときは、結果にも誤差列(
y_err)が付きます。誤差は、2つの誤差が独立であると仮定した一般的な伝播式(和・差なら √(σA² + σB²))で計算されます。片方にしか誤差列がない場合、誤差列は作られません。
ヒント: 試料のスペクトルからブランク(溶媒など)を引く、2つの測定の比をとる、といった用途に使えます。
2つのデータの形が最もよく重なるずれ量を相互相関から自動で求め、BのXをずらした新しいデータセットを作ります。Aは基準で動きません。ダイアログで入力するのは出力データセット名だけです(既定は Bの名前_aligned)。求めたずれ量はステータスバーに表示されます。
同じ条件で繰り返し測定した複数のデータセットから、平均の曲線と標準偏差(SD)を作ります。
- すべてのデータセットのXの範囲が重なる部分に、共通の等間隔X点を作ります。点の数は、選択中で最も点数の多いデータセットに合わせます。
- 各データセットをその点に直線で補間し、点ごとに平均と標本標準偏差を計算します。
- 実行すると出力データセット名を尋ねられます(既定は
先頭の名前 他N件の平均±SD)。 - 結果のデータセットには
y_mean(平均)とy_sd(SD)の列があり、SDはY誤差列として設定済みです。そのままエラーバーや誤差バンドで表示できます。
選択したすべてのデータセットに、同じ計算式で新しい列を追加します。計算式の書き方は データの編集と計算 の列計算と同じです。ダイアログには、選択したすべてのデータセットに共通する列名が候補として表示されます。
注意: バッチ列計算は
Ctrl+Zで元に戻せません。
1つのデータセットの中に、同じ条件で繰り返し測った列(例: 測定1、測定2、測定3)がある場合、行ごとの平均と誤差を計算できます。
- データセットを選び、画面下部のボタン列にある「データ表示/編集」(ツールチップ名)を押します。
- データ表示/編集画面の「誤差の自動計算...」ボタンを押します。
- 反復測定として扱う列に2つ以上チェックを入れます。
- 「誤差の種類」と「出力列名 (ベース)」を指定して「OK」を押します。
| 項目 | 説明 | 既定値 |
|---|---|---|
| 誤差の種類 | 「SD (標準偏差)」「SEM (標準誤差)」「95%CI (信頼区間)」 | SD (標準偏差) |
| 出力列名 (ベース) | 追加する列の名前の元になる文字列 | measurement |
平均の列(例: measurement_mean)と誤差の列(例: measurement_SD、measurement_SEM、measurement_CI95)の2列が追加されます。
- SDは標本標準偏差です。SEMは SD/√n、95%CIは t分布の値を使って t × SD/√n で求めます(n はその行の有効な測定値の数)。
- 空欄を含む行は、その行にある有効な値だけで計算します。
- 追加した誤差列を、プロパティの「データ列」区分にある「Y誤差列」で選ぶと、エラーバーとして表示できます(データセットのプロパティ)。
注意: この操作は
Ctrl+Zで元に戻せません。
データ処理やフィットで作られたデータセットは、「どの元データに、どんな処理をしたか」という処理履歴を覚えています。
表示 ▸ 処理履歴 にチェックを入れると、処理履歴ドックが表示されます。データセットリストでデータセットを選ぶと、ドックにツリーが表示されます。
- 一番上が、選択中のデータセットの名前です。
- その下に、そのデータセットを作った処理(例: 「ベースライン補正(ALS法)」「Savitzky-Golayフィルタ(window=5, polyorder=2, deriv=0)」)が表示されます。
- 処理の下には、元になったデータセットが表示されます。元データも処理で作られたものなら、さらにその処理と元データ、と祖先までさかのぼって表示されます。
- 元になったデータセットがすでに削除されている場合は「(削除済み)」と表示されます。
処理履歴を持つデータセットでは、右クリック ▸ エクスポート ▸ 「方法」文をコピー... が使えます。処理の流れを説明する文章がクリップボードにコピーされるので、論文やレポートの「方法」の下書きに使えます。
ヒント: 処理履歴が記録されるのは、規格化、Savitzky-Golayフィルタ、ベースライン補正、累積積分、リサンプリング、重複X値の平均化、列の値で系列に分割、データセット間演算、X軸アライメント、平均±SD生成、ヒストグラム/KDE、曲線フィット、多峰フィットなどで作られたデータセットです。ファイルから読み込んだ元データや、ピーク検出の結果には処理履歴はありません。
Graphica v1.4.2 時点の内容です。画面や項目名が異なる場合は Issues でお知らせください。