分子設計、材料設計、プロセス設計、プロセス管理・制御において、分子記述子・実験条件・製造条件・プロセス条件・プロセス変数などの説明変数 x と物性・活性・特性などの目的変数 y の間で、データセットを用いて数理モデル y = f(x) を構築します。構築したモデルに x の値を入力して y の値を予測したり、y が目標値となるような x の値を設計したりします。
モデルを構築するデータセットについて、基本的にはサンプルごとに x1 の値、x2 の値、・・・、y1 の値、y2 の値、・・・ といったベクトル (一行) で与えられ、それを横ベクトルとすると、サンプルを縦につなげていくことで、複数のサンプルが行列で表現されるデータセットになります。
一方で、例えば合成した材料に対して、同じ評価実験を複数回行うときなど、同じサンプルに対して y の値が複数個あるときがあります。y としては活性で一つですが、同じサンプルで繰り返し評価実験をする場合など、あるサンプルが y の値を複数もったり y として分布をもったりすることがあります。
y が分布をもつと聞くと、ガウス過程回帰 (Gaussian Process Regression, GPR) を想像される方がいらっしゃるかもしれません。
確かに GPR モデルにより、y の予測値だけでなくその分散を計算できます。ただ、GPR における y の分布の由来は、回帰係数が分布をもつことと、y の測定誤差の分布です。そして測定誤差の分布はすべてのサンプルで同じです。実際の実験結果においてサンプルごとに y の値が複数ある状況が、GPR で仮定している状況と同じであれば問題ありませんが、多くの場合にサンプルごとに y の値のばらつきは異なり、GPR で仮定している y の分布に当てはめるのは難しいと思います。
そのような場合は、サンプルごとに y の値を一つずつサンプリングすることで、データセットからサブデータセットを作り、サブデータセットの数だけモデルを複数構築するとよいでしょう。アンサンブル学習と同様の考え方です。具体的に説明します。
まず、一つのサブデータセット内に、すべてのサンプルは含まれますが、同じサンプル (x の値は同じであるが y の値が異なるサンプル) が二つあることはありません。そのためサブデータセットを作るときは、サンプルごとに、y の値をランダムに一つ選択します。このサンプルを集めてサブデータセットとします。あるサンプルにおいて、サブデータセットを構築するごとに、y の値がランダムに選択されますが、これまでのサブデータセットで選択された値と同じ値が選択されても OK です。
そして、サブデータセットごとに x と y の間で回帰分析手法によりモデルを構築します。データセットの数だけモデルが得られることになります。y の値を予測するときは、すべてのモデルに x の値を入力することで、y の予測値が複数個得られ、例えばそのヒストグラムが予測結果になります。予測結果を一つの値としたいときは、平均値 (もしくは中央値) を計算します。ばらつきを計算したいときは標準偏差を計算するとよいでしょう。
以上のようにすることで、サンプルごとに y の値が複数あるデータセットでも、任意の回帰分析手法でモデル構築を行えます。ご参考になれば幸いです。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。