関数データとは、考えたり他人に説明したりするのが難しいテーマです。SASがJMP 14で関数データエクスプローラーを導入して以来、私はその機能について議論する機会を何度も得てきました。しかし、関数データ分析(FDE)全般を扱う上での主な課題は、「関数」データという概念を理解することです。そこで、関数データとは何か、関数データ分析が何を提供してくれるのかを人々に理解してもらうために、私が効果的に使ってきたちょっとした思考実験をご紹介したいと思います。私の小さなトラッカープラグインによると、これを読むのに約4分30秒かかるはずです。
お誕生日おめでとう!
You can sing the "Happy Birthday" song, right? That's because you have a "functional" form of the song in your memory. 「ハッピーバースデー」の歌を歌えますよね? それは、歌の「実用的な」形が記憶されているからです。誕生日パーティーにいるところを想像してみてください。伝統的な「ハッピーバースデー」の歌を歌うことになるでしょうが、あなたはそれを気にしません。歌を知っていて、どんな開始音でも、(声域に関係なく)歌がどのように聞こえるべきかを知っているからです。なぜそうなのか、少し考えたことはありますか? 「ハッピーバースデー」の無数のバリエーションを知っているわけではないと考えるのは当然です。なぜあなたは、その歌の知識にそれほど自信を持てるのでしょうか?
簡単に言うと、あなたの脳は曲の「形」を記憶に保存しています。開始音さえ分かれば、脳は適切な音程を再構築して「ハッピーバースデー」のメロディーを奏でることができます。この議論の文脈では、あなたの記憶には曲の「機能的な」形が保存されていると言えます。y軸に頻度、x軸に曲を聴き始めてからの時間をとったグラフを作成すると、おそらく次のようになるでしょう。
関数データ解析 (FDA) は、人間の心が歌に対して行うのと同じことを、他の種類の時間ベースのデータに対して行います。(ここで「時間」は比較的緩やかな解釈であることに注意してください。) FDA は、複数の曲線 (「ハッピーバースデー」のメロディー) で構成されるデータセットから始め、単純な数式 (線、曲線など) の小さな断片を使用して、データの一般的な形式 (形「ハッピーバースデー」のメロディーの曲線)を使って、方程式内の少数の定数を調整することで、元のデータセットのどの曲線も再現できます。こうした数学的な妙技の結果、大規模で構造的に複雑なデータセットを、少数の定数と単一の(悪夢のような)方程式に還元できるのです。嬉しいことに、興味深い情報は定数の中にあるので、通常はその方程式を直接扱う必要はありません。すごいでしょう?
ちなみに、ええ、数学オタクだってことは分かってますよ。でも、昔はこうじゃなかったんです。大学時代に悪い仲間とばかり付き合っていたせいなんです。皆さん、友達選びは慎重に!
機能的なハッピーバースデー
これまで少し触れてきたように、「ハッピーバースデー」の歌は関数データ分析を使って分析できるはずです。ネタバレになりますが、実際にできます。JMP Proの関数データエクスプローラーを使って、その方法と、関数データ分析の各要素がインターフェースのどこにあるのかを説明します。
まずはデータ自体から始めましょう(図とともにJMPパブリックで入手可能です)。下のインタラクティブなグラフは、西洋音楽の12のキーすべてにおけるメロディーを示しています。各ドットにカーソルを合わせると、表示されている周波数に対応する単語(または単語の一部)が表示されます。x軸は時間です。データテーブルは、時間(x軸)、周波数(y軸)、キー(各関数のID)の3つのデータ列で構成されています。これがFDAを開始するために必要なものです。つまり、時間のようなx軸と応答を持つ一連の曲線です。
さて、これはFDAの細かい部分に関する話であり、FDEのチュートリアルではないので、「Happy Birthday」の関数形式を設定した部分に進みます。JMP ProのFunctional Data Explorerでのクリックごとの手順が必要な場合は、ドキュメントに例があります。それでは、以下は「Happy Birthday」のFDE出力のJMP Liveレポートです。
先ほどのちょっとした思考演習を思い出してください。何を見ているのかを理解するために見つける必要があるものが2つあります。それは、関数形式(メロディーの形)と、特定のキーの曲を生成するために関数形式を変更する係数です。Functional PCAの見出しの下にある小さなグラフを探してください(ウィンドウを下にスクロールする必要があるかもしれません)。これが「ハッピーバースデー」の歌の「関数形式」(FDAの専門用語では基底関数と呼ばれます)です。その形式を再現するために必要なすべての係数などはレポートに含まれています(またはデータテーブルにエクスポートできます)。表示されている線は、そのモデリング作業すべてを視覚的に表現したものです。次に、Functional Summariesアウトラインボックスを開きます。心配しないでください。ここでは多くのことが起こっていますが、FPCとMeanの列にのみ関心があります。JMPは、Mean値とFPCを使用して、特定の開始音の曲を再構築します(より複雑なデータの場合は、複数のFPCが得られることがあります)。他の情報もすべて役立ちますが、根本的に、それらは「ハッピーバースデー」の歌の各バージョンを再現するために必要な情報です。そして、あなたの脳はそれらすべてを瞬時に処理するのです…驚くべきことです。
結論
つまり、そういうことです!関数データ分析は、人間の脳が本来行っていることをコンピュータにやらせようとする試みの一例に過ぎません。すごいでしょう?とはいえ、関数データ分析でできることの可能性は非常に魅力的です。時系列データを他のモデリング手法に適した形式に変換したり、実験計画法(DOE)の一部として利用したりできます。可能性は無限大です。
うーん、それは面白そうな連載記事になりそうですね…うーん…