アプリ版:「スタンプのみでお礼する」機能のリリースについて

3次元混合正規分布のパラメータ推定

標本(X,Y,Z,値)が大量にあり、これを3次元の混合正規分布で近似しようとしています。
現在、平均や分散などのパラメータの算出をEMアルゴリズムを用いて行おうと考えています。
いろいろ調べて勉強してみましたが、標本をどのように使えばいいか理解することができません。

この標本はどのような形で式につかえばよいでしょうか?
そもそもEMアルゴリズムを用いてこの問題を解くことができるのでしょうか?
また、この標本をもとにパラメータを決定する代替方法があれば、教えていただけると助かります。
説明不足な点があるかもしれませんが、よろしくお願いします。

A 回答 (5件)

おはようございます。



1対1というのは、(X軸, Y軸)=(年, 値)、(月, 値)、(時間, 値)ということです。
値を推定したいのですよね??
年、月、時間が値に及ぼす影響をそれぞれ単回帰的に検討してみるということです。
それでそれぞれの関係をベースに全部の因子をいれた式を検討してみては?

研究のご成功を祈ります。
    • good
    • 0
この回答へのお礼

こんばんは。

まだ結果は出ていませんが、これ以上つきあわせるのも申し訳ないですし、
EMアルゴリズムが使えないとわかったこと、代替方法を教えていただいたことで、
今回の質問の目的は達成されていると思いますので、今回は回答を閉め切りたいと思います。
あとはやってみて、無理ならほかの方法を検討してみます。

何日にもわたって相談に乗っていただき、ありがとうございました。
質問するか迷っていたのですが、質問して本当によかったと思います。

>研究のご成功を祈ります。
ありがとうございます、明日からも頑張っていきます。

お礼日時:2010/10/09 01:04

こんにちは。



とりあえず、構造を把握するために1対1で関数を当てはめてみては如何でしょう?
いきなり複雑な方へ行くと構造をうまくつかめないかもしれません。
2峰性の関数だったら4次関数とか5次関数、あるいは三角関数をとりあえず当てはめてみるとか。。
例:W=a0+a1X+a2X^2+a3X^3+a4X^4+ε
これだと、重回帰でソフト使えばパッと出ますよね。
うまく当てはまるかはデータを見てないので何ともいえませんが。。
これで各変数を検討してから組み合わせてモデルを検討していっても良いかもしれません。

しかし、相談者さんのモチベーションとして、経時的な変動を追って、予測、傾向分析等を行いたいのであれば正確には時系列解析を用いる必要があるかもしれません。
これに関しては、さらに複雑なのでちょっとした勉強が必要だと思います。。
時系列は門外漢なのでうまく説明できませんが、初等テキストをご覧になってみては如何でしょう?

以上、とり急ぎ。

この回答への補足

こんばんは。
素早い回答とアドバイスありがとうございます。

1対1というのは(x軸,y軸)=(年,月)(月,時間)(年,時間)としてそれぞれ見てみるということで合っていますか?
今回の場合、固定範囲のみを考えていますので、それより先の予測などは考えていません。

明日、重回帰のソフトを用いるなりしてうまくいくかどうか試してみたいと思います。
うまくいけばいいのですが…。

進展がありましたら、また「この回答へのお礼」部分などに書き込みたいと思います。
作業に時間がかかりそうなのでとりあえず補足と方針だけ報告します。

補足日時:2010/10/08 02:33
    • good
    • 0

おはようございます。



これは。。混合正規分布ではないですね。。
単なる関数関係です。
分布というのはそもそもランダム変数の生起確率の密度を表すものであって、ヒストグラムのように、横軸は見たい項目、縦軸は見たい項目の度数(密度)で表した時の形状を見ます。
この場合は横軸も縦軸も異なった項目ですので、これは両項目の関数関係を見ているに過ぎません。

X、Y、Zの分布は本質的な問題にはならないというのはわかりづらいですよね。
そもそも、回帰の説明変数にランダム性を規定しないではないというのは、相談者さんの指定された説明変数(年、月、時間)は「データをとってみたらたまたま2009年だった」という乱数ではなく、制御されている因子のはずです。さらに、年、月、時間を指定してとってみたら項目はこういう値になる、というのが関数関係です。しかし、年、月、時間を指定して項目のデータをとってみても必ず関数上に乗った値が出るわけでなく、ランダム性(あるいは未知の因子による影響)が付与されます。これが誤差分布です。すなわち、この誤差分布は応答変数に関連する分布ということです。
説明変数に関しても、コレステロール(応答)を見るためにたまたま被験者を集めたら○○歳だった、というランダム性を考慮する場合もあり、説明変数、応答変数のいずれにもランダム性を考慮するモデルを適用することもありますが、稀だと思います。

今回の回帰式の導出のモチベーションは月の間のデータをとっていないところを補完したいということですか?
無理やり補完するのであれば、4次関数や5次関数を用いればできるかもしれませんが、データを全く取っていない領域の説明変数について式で項目の値を補完することは、外挿とまでは言わないまでも、推定値の妥当性が低くなる恐れのあることを留意すべきです。

また、その部分の補完を意図しないのであれば、月の真ん中でデータを割って二つのモデルを当てはめることも考えられます。

以上、とり急ぎ。

この回答への補足

こんにちは。
たびたびの回答ありがとうございます。
また、詳しい説明をありがとうございます。助かります。

根本的に勘違いをしていたようですね、すみません;
今回のモチベーションはデータをとっていない領域の値f(年,月,時間)を尤もらしく補間したい、
または、データのない部分も含め任意の(年,月,時間)における値を算出できる近似関数を作りたいということです。

最初は3次元ガウス関数にあてはめて
W=A(exp(-(x-μ)^2/σ^2)+exp(-(y-μ)^2/σ^2)+exp(-(z-μ)^2/σ^2) 
(それぞれの平均と分散は別の値
とおいてこれが複数あるものとして、各パラメータ(分散、平均、A)を少しずつ変化させて、
持ちデータとの差の二乗和を最小にするパラメータを求めることで近似関数と求めようとしていましたが、
パラメータが多すぎて決定に時間がかかりすぎるため、別の方法を探していました。
今になってすみません、説明不足でした。。

何度も回答してもらって申し訳ないですが、よろしくお願いします。

補足日時:2010/10/07 13:30
    • good
    • 0

こんにちは。



プロットというのはどういうプロットでしょうか?
X、Y、Zのそれぞれのヒストグラムを描いてみて、明らかな峰が二つ存在すれば混合正規分布でモデル化する理由にはなります。

しかしながら、回帰問題ですと、X、Y、Zの分布は本質的な問題にはなりません。
回帰式を書くと(「値」をWとします)
W=f(X,Y,Z)+ε
となり、X,Y,Zを固定したときの誤差項εの分布が問題になります。
すなわち、X,Y,Zは定数扱いで、これを固定した際のWのバラつきをモデル化するのです。
この分布が正規分布であればより簡単な回帰問題に帰着します。

まずどのような関数を当てはめるかは、始めは交互作用を考えずにWとX、WとY、WとZの関係を図示し(散布図で良いでしょう)その関係性を表すのにどのような関数が良いかを考えます。
たとえば比例関係であれば
W=a+bX+cY+dZ+ε
という重回帰式になるでしょうし、Xは比例関係でY、Zは二次関数(中心部が高いということはもしやこれかな?)であれば
W=a+bX+c1Y+c2Y^2+d1Z^2+d2Z^2+ε
となります。このような式も重回帰の一種で多項回帰と呼ばれます。
そこにX×Yの項とかを含めて交互作用を検討することも出来ます。
色々なモデルを当てはめてモデル選択基準のAICなどで、どの変数を入れるかを選択すれば良いと思います。

もちろんスプラインでも良いと思いますが推定不能だったのでしょうか。

以上、ゴチャゴチャとした回答でスミマセン。

この回答への補足

こんにちは。
回答ありがとうございます。

プロットというのは、前回の例で言うと、年月時を軸とした3次元空間に
温度を色で表わして点を打ったという意味です。
すると、ある年月時間の(中心部)のが温度がその周辺で最も高く、そこから外側に向けて滑らかに
低くなっていく(もしくは中心部が低く、滑らかに高くなっていく)分布が空間上にいくつか見える
分布となっていました。
例えば、月-時間平面に平行な断面を見ると下のような形になります。(崩れてたらすみません)

時間
↑   ○       ○○
|  ○●×     ○×●○
|○●◎●○   ○●●○
|  ○×○      ○×
|   ○
――――――――――――→月
◎…高い ●…普通 ○…低い ×…データなし

値と各軸の散布図は1~3つの峰を持つ混合正規分布のようになります。

平滑化スプラインは 温度=f(月,時間)として一度やったのですが、データの抜けている部分が
0値扱いされ、データの抜けている範囲が広いと平滑化してもその部分が不自然に低い値になってしまうのでうまくいきませんでした。
また、温度=f(年,月,時間)に拡張したときに、計算機でプログラムを用いると配列が大きくなりすぎて
メモリが足りなくなってしまうため断念しました。

間違っていたらすみませんが、回答者様がおっしゃっているスプラインは平滑化のことではなく補間のことでしょうか?

>しかしながら、回帰問題ですと、X、Y、Zの分布は本質的な問題にはなりません。
>回帰式を書くと(「値」をWとします)
>W=f(X,Y,Z)+ε
>となり、X,Y,Zを固定したときの誤差項εの分布が問題になります。
>すなわち、X,Y,Zは定数扱いで、これを固定した際のWのバラつきをモデル化するのです。

ここについては勉強不足で理由がよくわからないので勉強してみます。

わかりにくい部分があるかもしれませんが以上です。よろしくお願いします。

補足日時:2010/10/06 17:16
    • good
    • 0

こんばんわ。



標本(X,Y,Z,値)というのはどういうことでしょう?
3次元分布ですと(X, Y, Z)の組(たとえば身長、体重、年齢)がn個あり、X、Y、Zのそれぞれが○○分布に従っているとき、(X, Y, Z)は3次元○○分布に従うといいます。因みにX、Y、Zがそれぞれ独立であればわざわざ3次元分布で扱う必要はありません。
もし3次元混合正規分布で扱うならばEMアルゴリズムということになるのでしょうが、正直、結構複雑になると思いますし、場合によっては解けないかと思います(多分
他のモデルを当てはめることは考えられませんか?

一つ気になる点は、もしかして相談者さんの標本では、X,Y,Zが座標を表すのではないですか?違ってたらすみません。
この場合は、値=f(X, Y, Z)という関数で表され、これは回帰問題ということになるでしょう。

以上、データ対をもう少し詳しく書いていただけるとシチュエーションを特定しやすいですのでお願いします

この回答への補足

回答ありがとうございます。
説明不足と理解不足ですみません。

おっしゃる通りX,Y,Zは座標を表わしていて、(X,Y,Z)のときの値がわかっているので
回答者様が書かれたように値=f(X, Y, Z)となると思います。
それぞれの軸は例えば(年,月,時間)値はその時間の温度といった形です。

これをプロットして図で見ると、正規分布のように中心の値が一番高く(or低く)
そこから外側に滑らかに値が変化していく楕円球がいくつかあるような分布をしていました。
(この例の場合年方向には正規分布にはなりませんが)
そこで、これを混合正規分布で表わそうと考え、各正規分布のパラメータ決定の方法を模索している状況です。

目的は分布のデータのない部分の穴埋めをして任意の点の値が推定できるようにすることなので、
混合正規分布でなくても構いません。
一度平滑化スプラインによる平滑化で穴埋めを試みましたが、データ不足のためうまく表すことができませんでした。

不足があればまた補足させていただきますのでよろしくお願いします。

補足日時:2010/10/05 20:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!