ソフトセンサーの検討など時系列データを解析するとき用のモデルの評価指標 (改良版 r2) [金子研論文]

わたしもついに Beware of … 系の論文を書いてしまいました。その名の通り、注意喚起する系の論文です。過去には他にこんなものがありました。

 

 

今回は、r2 based on the latest measured y-values (r2LM) という、ソフトセンサー解析などの時系列データ解析のための新しい rを開発し、いろいろなソフトセンサー解析を行った論文が、Journal of Chemometrics に掲載されましたのでご紹介致します。

Just a moment...

 

金子研オンラインサロン内ではこの論文を共有しています。ちなみに提案手法を実行できるコードはこちらにあります。

GitHub - hkaneko1985/r2lm: r2 based on the latest measured y-values (r2LM)
r2 based on the latest measured y-values (r2LM). Contribute to hkaneko1985/r2lm development by creating an account on Gi...

 

どうして時系列データで一般的な r2 を使うとダメなのか?

それは、実際にはモデルの推定性能は高くないにもかかわらず、テストデータを用いたときでも r2 が大きく(ときには 0.999 にも!?) なってしまうことがあるためです。なぜそうなるかについて説明します。

そもそも r2 とは、トレーニングデータを使った場合でもテストデータを使った場合でも、そのデータにおける目的変数 y のばらつきの中で、回帰モデル (たとえばソフトセンサー) によって説明できた割合をあらわす指標のことです。

回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証 (Model validation)
いろいろな回帰モデル・クラス分類モデルを構築したり、モデルの中のハイパーパラメータ (PLSの成分数など) を決めたりするとき、モデルを評価・比較しなければなりません。そのためのモデルの検証 (model validation) の方法につ...

 

テストデータの r2 は、r2T (r2 for test data) とか r2P (r2 in prediction) とか書かれることもありますね。たとえば r2T = 0.9 のとき、モデルはテストデータの y のばらつきのうち 90% を説明できた、と考えます。

r2 を式で表すとこちらにようになります。

 

 

n がサンプル数、y(t)t 番目のサンプルにおける y の実測値、yEST(t)t 番目のサンプルにおける y のモデルによる推定値、yAVE が y の実測値の平均値です。分母が y の平均からの実測値のばらつき、分子が y の推定誤差のばらつきを表します。

時系列データのとき、t は時間的な意味合いを持ちます。t が大きくなるということは、それだけ時間が進むということです。

時系列データの特徴はいくつもありますが、r2 に関連するものは次の2つです。

  1. 時間的に近いサンプルの値が似ている
  2. トレーニングデータが更新される

1. について、横軸を時間にしたデータ点のプロットは、スペクトルデータに似ています。そのため、スペクトルデータの前処理と同じような処理が、時系列データにも使えたわけです。

スペクトル・時系列データの前処理の方法~平滑化 (スムージング) と微分~
スペクトル解析のときや、時系列データを扱うときの話です。 いくつかの点でスペクトルデータと時系列データは似ています。たとえば、隣同士の値が似ているっていう点ですね。他にも、データにノイズが含まれるという点も共通した特徴です。 このようにスペ...

 

2. についてはこちらに書いたとおりです。

時系列データを扱うときの3つの注意点(ソフトセンサー解析など)[データ解析用のPythonプログラム付き]
一般的なデータ解析において、回帰モデルやクラス分類モデルをつくることを考えます。トレーニングデータとテストデータに分けて、トレーニングデータで回帰モデルやクラス分類モデルを構築して、そのモデルがどのくらいの推定性能をもつか、テストデータで検...

 

y の新しい測定データを使って、回帰モデル (ソフトセンサー) を再構築したり、次の y の値を推定できたりするわけです。

これらの特徴から、ある時刻の y の値を推定するとき、直近の y の実測値をその推定値として用いても、ある程度近い値になることが想像できると思います。回帰モデルがなくても、最新の y の実測値を、y の推定値として出力し続けていれば、そこそこ合ってしまうわけです。

このため、どんなモデルを用いたとしても、そしてテストデータで検証したとしても、r2 の値は大きくなる傾向があります。しかし、本来知りたいのは、回帰モデルによって、どれくらい y の値を説明できたか、です。時系列データを用いたときの r2 は、その知りたいことからかけ離れています。たとえば r2T = 0.9 のときでも、モデルによってテストデータの y のばらつきのうち 90% を説明できた、とはいえないわけです。

 

ではどうするか? → 直近の y からのばらつきを考えよう!

そこで r2 based on the latest measured y-values (r2LM) の登場です。式で表すと次のようになります。

 

 

もともとの r2 と似ていますね。違うのは、yAVEy(t-1) だけです。どういうことかというと、r2 では分母が y の平均値からのばらつきであったのに対し、r2LMy の一時刻前の値からのばらつきなのです。こうすることで、時系列データのように、(値が似ている) 時間的に近い値があるなかで、回帰モデルによってどれだけ y を説明できたか、指標として表せるわけです。たとえば、テストデータにおける r2LM = 0.9 のとき、モデルによってテストデータの y のばらつきのうち 90% を説明できた、といえます。

論文ではいくつかのケースにおいてソフトセンサー解析を行い、r2LM の有用性を検証しています。

興味のある方は、論文をご覧になっていただけると幸いです。金子研オンラインサロン内ではこの論文を共有しています。またこちらの DCEKit で、便利に r2LM をご利用いただけます。

DCEKit (Data Chemical Engineering toolKit) を PyPI にリリース!
これまで化学データ・化学工学データのデータ解析に役立つツールや金子研で開発された手法に関する Python コードを Github にて公開してきました。このたびは、これらのツール・手法 (の一部) に加えて、新たな機能を追加して、DCEK...

 

以上です。

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

タイトルとURLをコピーしました