2016-10-17 104 views
0

我試圖從Dirichlet分佈中創建一個隨機抽取的3D陰謀,但它似乎只是在2維的陰謀,即使我有三個變量的數據。遇到Dirichlet 3D陰謀的問題

draw <- rdirichlet(100, alpha = c(.3,.4,.3)) 
scatter3D(x ,y, z) 
scatterplot3d(draw[,1:3]) 

正如您所看到的,我嘗試了兩種使用兩種不同軟件包的方法。首先,您可以在下面的圖片中看到他們的y值似乎已經丟失,但我不知道爲什麼。 enter image description here

當我嘗試使用不同的包時,不僅y值缺失,而且其他兩個值被繪製爲如果它們在45度線上,這是不正確的。任何幫助是極大的讚賞! enter image description here

回答

2

y值不會丟失。在你的情況下,由於每個點的座標必須總和爲1,因此階次3的Dirichlet分佈將具有位於二維單形(即2d平面)上的點。(對於Wikipedia page的pdf圖可能對看到這個。)

在你的第二個情節中,這些點實際上並不在45度線上(他們只是看起來像)。 rgl包中的交互式3D圖可能對您有所幫助。

draw <- gtools::rdirichlet(100, alpha = c(.3, .4, .3)) 
rgl::plot3d(draw) 

,看起來像這樣一個情節:

enter image description here

實際上有一個2D-單,你可以看到,如果你將其旋轉點:

enter image description here

+0

謝謝@黃煌煌! – tlev

+0

樂意幫忙。如果答案解決了您的問題,請將其標記爲已接受。 –