R 基于贝叶斯统计的账户盈亏概率

R 基于贝叶斯统计的账户盈亏概率,r,statistics,bayesian,dirichlet,R,Statistics,Bayesian,Dirichlet,我正在尝试估计一个帐户的赢或输的概率,我想用贝叶斯方法来做这件事。我对这些方法不是很熟悉,但我想我理解了其中的大意 我知道一些关于输赢的信息。胜利通常以一些活动的组合为特征;损失通常是由不同的活动组合造成的。我希望能够根据与该账户相关的活动的当前数量,得到一个新的观察结果是赢还是输的后验概率 以下是我的数据示例:(为了简单起见,这只是一个示例) 从这里我知道30%的观察结果是1(赢),70%的结果是0(输)。假设我想使用其他列来获得一个新观察的赢/输概率,该观察可能有少量事件(电子邮件、电话和回

我正在尝试估计一个帐户的赢或输的概率,我想用贝叶斯方法来做这件事。我对这些方法不是很熟悉,但我想我理解了其中的大意

我知道一些关于输赢的信息。胜利通常以一些活动的组合为特征;损失通常是由不同的活动组合造成的。我希望能够根据与该账户相关的活动的当前数量,得到一个新的观察结果是赢还是输的后验概率

以下是我的数据示例:(为了简单起见,这只是一个示例)

从这里我知道30%的观察结果是1(赢),70%的结果是0(输)。假设我想使用其他列来获得一个新观察的赢/输概率,该观察可能有少量事件(电子邮件、电话和回调)与之相关

现在让我们假设我想使用不同事件的计数/比例作为新观察的先验。这就是我开始被绊倒的地方。我的想法是为赢和输创建一个dirichlet分布,所以有两个独立的分布,一个为赢,一个为输。使用每个结果的事件计数/比例作为优先级。我想我不知道如何在R中做到这一点。我想我的做法是使用最大似然估计每个结果的dirichlet分布(因为我有3个变量)。我一直在尝试使用R中
sirt
包中的
dirichlet.simul
dirichlet.mle
函数。我不确定是否需要先模拟一个

另一个问题是,一旦我有了这个分布,我就不清楚如何得到一个新观测的后验分布。我读过几篇论文,似乎找不到一个简单的方法来解决这个问题。(或者我的理解有一些漏洞)。任何朝着正确方向的推动都将不胜感激

这是我迄今为止尝试过的代码:

### FOR WON ACCOUNTS
 set.seed(789)
 N <- 6
 probs <- c(0.535714286, 0.330357143, 0.133928571 )
 alpha <- probs
 alpha <- matrix( alpha , nrow=N , ncol=length(alpha) , byrow=TRUE  )
 x <- dirichlet.simul( alpha )
 dirichlet.mle(x)
$alpha
[1] 0.3385607 0.2617939 0.1972898

$alpha0
[1] 0.7976444

$xsi
[1] 0.4244507 0.3282088 0.2473405

### FOR LOST ACCOUNTS
set.seed(789)
N2 <- 14
probs2 <- c(0.528037383,0.308411215,0.163551402 )
alpha2 <- probs2
alpha2 <- matrix( alpha2 , nrow=N , ncol=length(alpha2) , byrow=TRUE  )
x2 <- dirichlet.simul( alpha2 )
dirichlet.mle(x2)

$alpha
[1] 0.3388486 0.2488771 0.2358043

$alpha0
[1] 0.8235301

$xsi
[1] 0.4114587 0.3022077 0.2863336
韩元账户的
###
种子(789)

N我显然没有正确理解你的问题,因此为了我自己的理解,我可以问一下为什么你用两个独立的分布对二元结果建模?像使用例如
JAGS
Stan
来估算logit模型这样更直接的方法在这里不更容易/更合适吗?因此我从伯努利/二项分布开始,因为我试图预测二元结果。但在摆弄了它之后,我认为最好能够用事件的混合描述每个事件的赢/输(这可能是不正确的)。所以我换成了dirichlet。我将研究一下
JAGS
Stan
。谢谢。此外,由于您的问题似乎侧重于找到正确的统计方法来建模数据,您可以将问题迁移到,这是专门针对此类问题的。我显然没有正确理解您的问题,因此,为了我自己的理解,我可以问一下,为什么要用两个独立的分布对二元结果进行建模?像使用例如
JAGS
Stan
来估算logit模型这样更直接的方法在这里不更容易/更合适吗?因此我从伯努利/二项分布开始,因为我试图预测二元结果。但在摆弄了它之后,我认为最好能够用事件的混合描述每个事件的赢/输(这可能是不正确的)。所以我换成了dirichlet。我将研究一下
JAGS
Stan
。谢谢。此外,由于您的问题似乎侧重于找到正确的统计方法来建模数据,您可以将问题迁移到,这是专门针对此类问题的。
### FOR WON ACCOUNTS
 set.seed(789)
 N <- 6
 probs <- c(0.535714286, 0.330357143, 0.133928571 )
 alpha <- probs
 alpha <- matrix( alpha , nrow=N , ncol=length(alpha) , byrow=TRUE  )
 x <- dirichlet.simul( alpha )
 dirichlet.mle(x)
$alpha
[1] 0.3385607 0.2617939 0.1972898

$alpha0
[1] 0.7976444

$xsi
[1] 0.4244507 0.3282088 0.2473405

### FOR LOST ACCOUNTS
set.seed(789)
N2 <- 14
probs2 <- c(0.528037383,0.308411215,0.163551402 )
alpha2 <- probs2
alpha2 <- matrix( alpha2 , nrow=N , ncol=length(alpha2) , byrow=TRUE  )
x2 <- dirichlet.simul( alpha2 )
dirichlet.mle(x2)

$alpha
[1] 0.3388486 0.2488771 0.2358043

$alpha0
[1] 0.8235301

$xsi
[1] 0.4114587 0.3022077 0.2863336