我正在做一个小项目,以帮助我学习R。我正在尝试使用决策理论来估计何时应该上班/上课。我上班之前已经有了一个(连续的)后验概率密度函数,我将其命名为“ posteriortimetoBPS”。我还定义了一个损失函数,该函数告诉我如果我迟到/早到((a-theta)等于我上课之前到达的时间)有多糟:
# theta = time it takes to get from home->work
# a = how many minutes before work I leave
loss = function(theta,d)
{
ifelse(a<theta,(a-theta)+33,
ifelse((a-theta)>-2,(a-theta),(-a+theta)-2)
)
}
维基百科告诉我,正确的方法是使用以下等式(不幸的是,由于我没有足够的信誉点来发布图片,因此我无法复制syntax wikipedia uses)(其中pi *是后验的) :
p(ᴨ*,Θ)=∫Θ L(Θ,a)dᴨ*(Θ)
我上一堂数学课是微积分2,所以我不太了解这个表示法,也不了解如何将其转化为代码。我所见过的大多数积分都以“ dx”或“ dy”之类的东西结束,我不知道如何编码,以至于它是相对于一个函数进行集成的。我了解到功能“集成”是相对于要集成的功能中的第一个运算符进行集成的,那么我该怎么做?
最终结果应该看起来像这样,但我很确定我还没有结束:
estimatedloss = function(posteriortimetoBPS,a)
integrate(
loss(theta,a),
0,
Inf
)
此外,我很确定我需要取p(pi *,a)的期望值才能获得估计的损失p(a),但我不确定