サンプルごとに目的変数の値が複数あったり分布をもったりするときの解析方法

シェアする

分子設計、材料設計、プロセス設計、プロセス管理・制御において、分子記述子・実験条件・製造条件・プロセス条件・プロセス変数などの説明変数 x と物性・活性・特性などの目的変数 y の間で、データセットを用いて数理モデル y = f(x) を構築します。構築したモデルに x の値を入力して y の値を予測したり、y が目標値となるような x の値を設計したりします。

モデルを構築するデータセットについて、基本的にはサンプルごとに x1 の値、x2 の値、・・・、y1 の値、y2 の値、・・・ といったベクトル (一行) で与えられ、それを横ベクトルとすると、サンプルを縦につなげていくことで、複数のサンプルが行列で表現されるデータセットになります。

一方で、例えば合成した材料に対して、同じ評価実験を複数回行うときなど、同じサンプルに対して y の値が複数個あるときがあります。y としては活性で一つですが、同じサンプルで繰り返し評価実験をする場合など、あるサンプルが y の値を複数もったり y として分布をもったりすることがあります。

y が分布をもつと聞くと、ガウス過程回帰 (Gaussian Process Regression, GPR) を想像される方がいらっしゃるかもしれません。

ガウス過程回帰(Gaussian Process Regression, GPR)~予測値だけでなく予測値のばらつきも計算できる!~
ガウス過程による回帰(Gaussian Process Regression, GPR)について、pdfとパワーポイントの資料を作成しました...

確かに GPR モデルにより、y の予測値だけでなくその分散を計算できます。ただ、GPR における y の分布の由来は、回帰係数が分布をもつことと、y の測定誤差の分布です。そして測定誤差の分布はすべてのサンプルで同じです。実際の実験結果においてサンプルごとに y の値が複数ある状況が、GPR で仮定している状況と同じであれば問題ありませんが、多くの場合にサンプルごとに y の値のばらつきは異なり、GPR で仮定している y の分布に当てはめるのは難しいと思います。

そのような場合は、サンプルごとに y の値を一つずつサンプリングすることで、データセットからサブデータセットを作り、サブデータセットの数だけモデルを複数構築するとよいでしょう。アンサンブル学習と同様の考え方です。具体的に説明します。

まず、一つのサブデータセット内に、すべてのサンプルは含まれますが、同じサンプル (x の値は同じであるが y の値が異なるサンプル) が二つあることはありません。そのためサブデータセットを作るときは、サンプルごとに、y の値をランダムに一つ選択します。このサンプルを集めてサブデータセットとします。あるサンプルにおいて、サブデータセットを構築するごとに、y の値がランダムに選択されますが、これまでのサブデータセットで選択された値と同じ値が選択されても OK です。

そして、サブデータセットごとに x と y の間で回帰分析手法によりモデルを構築します。データセットの数だけモデルが得られることになります。y の値を予測するときは、すべてのモデルに x の値を入力することで、y の予測値が複数個得られ、例えばそのヒストグラムが予測結果になります。予測結果を一つの値としたいときは、平均値 (もしくは中央値) を計算します。ばらつきを計算したいときは標準偏差を計算するとよいでしょう。

以上のようにすることで、サンプルごとに y の値が複数あるデータセットでも、任意の回帰分析手法でモデル構築を行えます。ご参考になれば幸いです。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする