化学分野でのAIを使った研究が多数報告されていてデータ解析は流行のトピックとなっていますが、専門外からすれば、データ解析は専門知識を駆使して何千行もの長いコードを書くとても難しい作業があると思われがちです。実は、多くのPCにインストールされているMicrosoft Excelでも立派な統計解析することはできます。今回は、そんなエクセルを使った実験データの解析を紹介します。
はじめに
もちろん複雑なデータ解析には、専門的な知識を必要としますが、簡単な解析は誰もが日常行っていることです。例えば有機合成の実験において反応時間と収率を調べたときに、下記のようなグラフになれば何となく傾向がつかめ、何かの式(この場合は一次反応式)で近似できることがわかります。この「傾向を掴んで、当てはまりが良い数式を選択して近似する」という実験データを考察するときにいつも行っている作業はまさしく解析の作業であり、特別なことをせずに傾向を掴む=自然にデータ解析を行っていることになります。この例の場合では、収率に対して反応時間という一つの変数でグラフを書いたたためXYのグラフから直感で傾向を掴むことができましたが、反応時間に加えて触媒量と反応温度も同時に振った結果では、3つの変数となり、もはや直感で傾向を掴むことはできません。そこで、多変量解析が必要になります。以後、エクセルを使った分析を紹介していきますが、実用的な方法の内容になっているため、使った手法の理論については専門書を参考にしてください。
環境の準備
必要なソフトはMicrosoft Excelです。バージョンが2007以降であれば、紹介する機能を有しています。「データ」の分析にあるデータ分析という機能を使いますが、この機能が表示されていない場合にはアドインで分析ツールをアクティブにする必要があります。その方法は、こちらなどを参照してください。表計算ソフトはExcelだけでなくいろいろなソフトがありますが、下記で説明するような機能を有しているのはExcelだけのようでまた、クラウド版のExcelではこの機能は使えないようです。
データセットの準備
手持ちの実験データがなかったので、データアーカイブから適当なデータセットをダウンロードして使いました。これはねじの数を数える機械について、スピードやセンサーの感度を変えて機械が数えるスピードを調べた結果で、下記のような意味を持つ8つのパラメーターが調べられています。
RUN:試験した順番
SPEED1:板の回転速度
TOTAL:加えたねじの数
SPEED2:変化後の回転速度
NUMBER2:回転速度が変化した後に数えられたねじの数
SENS:センサーの感度
TIME:ねじを数えるのにかかった時間
T20BOLT:20個のねじを数えるのにかかる時間
T20BOLTは、TIMEをTOTALで割ることで算出されます。ここでは、それぞれのパラメーターの意味を深く考える必要はなく、T20BOLTに影響を与えているパラメーターを探して、なるべく早くねじを数えられる条件を探すことが目的になります。合成の実験で考えるなら、T20BOLTが収率で、他のパラメーターが、温度や反応時間、触媒量、反応スケールに相当します。
とりあえず、T20BOLTをY軸、各パラメータをX軸にプロットしてみました。
パッと見て右肩や左肩上がりの直線が書けそうなグラフはないので、一つのパラメーターとT20BOLTが強い相関を持っていることはなさそうです。そこで、データ分析の「回帰分析」をいう機能を使って複数のパラメーターを使った近似を行います。回帰分析とは 簡単に言うとY = f(X) というモデルを当てはめる事で、XYのグラフを見て近似曲線あてはめるのも回帰分析を行っていることになります。詳しい解説は、「回帰分析」とググると山ほど解説記事が出てくるので参照してください。
いろいろな回帰分析がありますがこのExcelの機能では、y=ax+bz+cといった一次多項式にあてはめることを行います。手順は簡単で、Yに相当する行とパラメーターの範囲を選択するだけです。オプションで解析結果のグラフの作成ができるので、必要に応じて作成します。データの配列にはルールがあり、行ごとのパラメーター(列に一つの条件・結果)が並んでいないと分析できずエラーになります。
とりあえず、T20BOLTをY範囲、TIME以外をX範囲として解析を行いました。TIMEはT20BOLTと同様に結果を示すので除外しました。RUNは関係すべきでないですが、試験する順番が関係しているかもしれないのでX範囲に加えました。
このようなシートが出力されました。いろいろな値が出力されますが特定の値にのみ着目します。パラメーター一つ一つの詳細についてはこちらの17ページ以降がたいへん参考になります。
まず係数ですが、これが近似式の定数に相当します。つまりT20BOLT=0.41×RUN+10.65×SPEED1+0.70×TOTAL-0.17×SPEED2-2.59×NUMBER2+0.14×SENS-29.45というモデルが作られたことになります。そしてモデルの当てはまりの良さは補正R2で示され、1に近づくほど良いモデルとなります。この場合ですと0.50なので実データの半分程度を説明できると考えます。残差出力では、実測値(表示されない)と予測値の差(残差)が表の上から順に出力されていますが、残差が大きい観測値もあり、当てはまりが良いモデルとは言いにくいです。
次に、回帰分析の肝であるP値を確認します。P値とは帰無仮説の下で実際にデータから計算された統計量よりも極端な(仮説に反する)統計量が観測される確率のことで、値が低いほど有意差が高いとなり、一般的にP値が5%または1%以下の場合に帰無仮説を偽として棄却し対立仮説を採択するつまり、そのパラメーターは影響があると判断します。このモデルではSPEEDは有意差が高く、TOTALもそこそこですが、他はあまり有意差がないと言えます。
総じてそこそこのモデルが出来上がりましたが、P値が高いパラメーターが複数含まれているので、最適化が必要だと考えるのが自然です。そこで、SPEEDとTOTALのみをパラメーターとして回帰分析を行いました。
すると、補正R2が少しだけ改善しましたが、TOTALのP値が悪くなってしまいました。6個のパラメーターは必要ないが2個のパラメーターでは足りないようです。そこで、いくつかのパラメーターを加えて回帰分析を行ったところ、RUN、TOTAL、SPEED1の結果で補正R2が改善され、比較的低いP値がそれぞれのパラメーターで観測されました。よってこの検討ではT20BOLT=0.43×RUN+10.65×SPEED1+0.71×TOTAL-31.69というモデルが良くあてはまり、早くねじをカウントするには、板の回転速度を遅くして、加えるねじも少なくしてたほうが早くねじを機械が数えることができ、試験回数が増えてくると遅くなる傾向を示すと言えます。
上記の例のように単純にP値が高いパラメーターを抜いただけでは、良いモデルにはなるとは限らず、P値が補正R2のバランスがとれたモデルを作るにはパラメーターの抜き差しを繰り返してみる必要があります。またデータ分析の相関を使うと、それぞれのパラメーターの相関を調べることができ、反応を見たい項目と相関が高いパラメーターは、回帰分析でも考慮すべきパラメーターになる可能性があります。
そもそもこの解析の目的はなく、ただ単純に当てはまりが良いモデルを作ることでしたが、実際の実験では、条件を最適化するなどの目的があると思います。この例でいうならば、SPEED1はよく調べたいがTOTALは、他の装置の都合上変えられないという前提があるなら、SPEED1は必ず入れ、TOTALは入れないモデルで検討すべきとなります。モデルの構築の答えは一つではなく、またP値が0.05以下で有意差があるというのも一般的な傾向の話なので、個々の実験の誤差に応じて柔軟に考える必要があります。ただし最初から項目を絞ると影響が強いパラメーターを見つけることができない可能性もありますので、この例でいうならRUN、合成実験では気温や湿度など、なるべく多くの項目を取り込んだほうが解析しやすいと思います。この回帰分析という機能は、いくつかの関数を走らせて値を算出しているだけなので、直接関数を入れて値を調べることもできますが、配列数式を取り扱うことになります。またエクセルでは一次多項式のモデルとなるので、それ以外の式に当てはまる場合には、値自身を変換(2次式なら二乗のパラメーターを作る、logならY範囲をlogに変換するなど)してからこの回帰分析を必要があります。
このように簡単な回帰分析はエクセルで可能ですが、できないことや手間がかかることも多くあり、より複雑な解析には別の方法が必要です。また、良いモデルを作るために最適化された条件で実験を行うことも解析においては有用です。さらには回帰分析も手法の一つであり、これ以外にもたくさんの手法が開発されています。
エクセルだけでだいぶ長い記事になったので、次回の記事にてエクセル以外を使った解析について取り上げていきます。
参考文献
使用したデータセット:Submitted by W. Robert Stephenson (wrstephe@iastate.edu), Iowa State University
関連書籍
[amazonjs asin=”B086KQN4ZV” locale=”JP” title=”これならわかる化学のための統計手法: 正しいデータの扱い方”] [amazonjs asin=”4274224414″ locale=”JP” title=”化学のための Pythonによるデータ解析・機械学習入門”]AIに関するケムステ過去記事
- AIを搭載した化学物質毒性評価サービス「Chemical Analyzer」の販売を開始
- AI翻訳エンジンを化学系文章で比較してみた
- AIによる創薬に新たな可能性 その研究と最新技術に迫る ~米・Insitro社 / 英・ケンブリッジ大学の研究から~
- AIが作った香水、ブラジルで発売
- 専門家要らず?AIによる圧倒的高速なスペクトル解釈
- 高選択的な不斉触媒系を機械学習で予測する
- 構造化学の研究を先導する100万件のビッグデータ
- NMRの化学シフト値予測の実力はいかに
- 材料研究分野で挑戦、“ゆりかごから墓場まで”データフル活用の効果
- AIで世界最高精度のNMR化学シフト予測を達成
- 「人工知能時代」と人間の仕事