我要做的是为我的数据创建一个三维表面图。我为石头剪刀游戏创建了贝叶斯多项模型;先验分布theta(具有三个边缘的矢量; theta1,theta2,theta3)遵循Dirichlet分布,一个采样模型,由多项分布中的1000个绘制组成,然后基于此输出我在后验分布中更新了我的参数(仍然遵循Dirichlet分布)。下面我正在寻找在这种情况下遵循Beta(10,20)分布的边缘theta1,theta2,theta3的三维表面图。
我想要的是rock1在x轴上,paper1在y轴上,剪刀1在z轴上。我知道我需要长度为z =长度x *长度的y,因为我有x和y的矩阵,如下所示,但我不知道该怎么做。有谁可以请帮助以下?
>x=theta1=rbeta(1000,10,20)
>y=theta2=rbeta(1000,10,20)
>z=1-x-y
>surface3d(x,y,z)
答案 0 :(得分:1)
我会告诉你你的要求,但是跟我的统计艺术评论家说话,看起来并不是很有趣。
x=theta1=rbeta(100,10,20)
y=theta2=rbeta(100,10,20)
z=outer(x,y,FUN=function(x,y){1-x-y}); require(rgl); open3d()
surface3d(x,y,z); decorate3d(xlab="X", ylab="Y", zlab="Z")
我还质疑它是否真的代表了潜在的Dirichlet模型。
我从Latex预览器中获得了以下代码中的代码: