2016-10-17 3 views
0

Ich versuche, eine 3D-Plot einer zufälligen ziehen aus einer Dirichlet-Verteilung zu erstellen, aber es scheint nur in 2 Dimensionen zeichnen, obwohl ich Daten für drei Variablen habe.Probleme mit Dirichlet 3D-Plot

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

Wie Sie sehen können, habe ich auf zwei Arten versucht, mit zwei verschiedenen Paketen. In der ersten Abbildung sehen Sie, dass die Y-Werte zu fehlen scheinen, aber ich bin nicht sicher warum.

Wenn ich versuche, ein anderes Paket zu verwenden, fehlen nicht nur die y-Werte, sondern die anderen beiden Werte werden so dargestellt, als ob sie auf einer 45-Grad-Linie liegen, was nicht korrekt ist. Jede Hilfe wird sehr geschätzt! enter image description here

Antwort

2

Die y-Werte fehlen nicht. In Ihrem Fall wird eine Dirichlet-Verteilung der Ordnung 3 Punkte haben, die auf einem 2-dimensionalen Simplex (dh einer 2d-Ebene) liegen, da die Koordinaten für jeden Punkt zu 1 summieren müssen. (Die pdf-Plots auf der Wikipedia page können hilfreich sein Sehen Sie das.)

In Ihrer zweiten Handlung sind die Punkte nicht wirklich auf einer 45-Grad-Linie (sie sehen einfach so aus). Das interaktive 3D-Diagramm aus dem Paket rgl kann hilfreich sein, um dies zu sehen.

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

Ein Plot, der wie folgt aussieht:

enter image description here

tatsächlich hat Punkte auf einem 2D-simplex, die Sie, wenn Sie es drehen sehen:

enter image description here

+0

Dank @Weghuang Wong! – tlev

+0

Gerne helfen. Wenn die Antwort Ihre Frage gelöst hat, markieren Sie sie bitte als akzeptiert. –