5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

3次元分布に対して周辺密度関数を図示するプログラムを書きました

Posted at

結論:以下の図が描けます.

sample.gif
(アニメーションはわかりやすさのために別の処理を行ったものです.)
scatter3mpdf_sample.png
3次元の分布データに対し,周辺化した3つの2次元分布,3つの1次元分布の密度関数を図示しました.

内容

MATLABにはscatterhistという便利な関数があります.
scatterhist 周辺ヒストグラムをもつ散布図

2次元の分布データを渡すと,散布図を描いてくれる上にそれぞれの変数に対して周辺化したヒストグラムも併記してくれます.オプションをつけると密度推定した密度関数としても描画してくれます.

研究テーマの中で,3次元空間に対してこれができるとうれしいな,と思い立ちましたが,ちょっと調べた感じだと出来合いの関数は無さそうです.

ので,作りました.MATLABのFileExchangeで公開済みです.
scatter3mpdf

名前のmpdfはMarginalized Probaibility Distribution Function(周辺化確率密度関数)の頭文字です.

やったこと

  • 入力を3つの次元それぞれのデータベクトルx, y, zとして,scatter3で散布図を描く.この時各軸の範囲を保存しておく.
  • デフォルトの設定で見て奥の方の平面に,1つの次元を周辺化した2次元の度数分布を求める.度数分布を求めるのはhist3,色付き平面を描画するのはpcolorsurfの組み合わせ.
  • 1つの変数に周辺化した(1つの変数のみ取り出せばよい!)確率密度関数をksdensity(カーネル密度推定)で求めた.ヒストグラムを書きたかったけれども描画が面倒なので断念.

オプション

  • ecdf(経験的累積度数関数)を描画できるようにしました.オプションで設定可能です.
  • 1次元の密度関数を図示する幅を設定できます.少し狭くするとこんな見た目になります.

scatter3mpdf_sample_cdf.png

公開場所

MATLAB FileExchangeで公開中です.(大事なことなので繰り返し)

scatter3mpdf

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?