2016-03-21 15 views
1

正規分布の単変量正規密度関数を(x、y、z)座標系にプロットします。 私が使用していたコードは次のとおりです。3D a(x、y)点を中心としたRの正規分布のプロット

library(rgl) 
open3d() 

x <- seq(0, 10, length=100) 
y <- seq(0, 10, length=100) 


z = outer(x,y, function(x,y) dnorm(x,2.5,1)*dnorm(y,2.5,1)) 

persp3d(x, y, z,col = rainbow(100)) 

enter image description here

問題私遭遇は私だけではなく、その平均値を中心にするだけでなく、直線や円上にあるように正規分布をしたいということです。後者の場合、出力は火山に似ていると予想します。私はループ内でいくつかの確率を最初に作り出さなければならないと思う。これどうやってするの?または、出力をプロットするために、いくつかのサーフェスコマンドを使用する必要がありますか?私はかなりこれは二変量正常とは関係がないと確信しています。

ベスト 富士

答えて

2

最初の部分は簡単です:ちょうどあなたのzは、例えばyに依存せてはいけない:

z = outer(x,y, function(x,y) dnorm(x,2.5,1)) 
persp3d(x, y, z,col = rainbow(100)) 

第二部では、あなたはそれの意味を想像することができます正規分布はx^2+y^2=1円にあります。半径方向の無限の正規分布を持ちます。試してみよう:

#define the volcano function 
volcano<-function(x,y,sigma=1/2) { 
    alpha<-atan(y/x)+pi*(x<0) 
    d<-sqrt((cos(alpha)-x)^2 + (sin(alpha)-y)^2) 
    dnorm(d,0,sigma) 
} 
x<-seq(-2,2,length.out=100) 
y<-seq(-2,2,length.out=100) 
z<-outer(x,y,volcano) 
persp3d(x, y, z,col = rainbow(100)) 
関連する問題