-1

我正在寻找 R 中的一个包,它可以帮助我计算事件的后验概率。有没有?

好的,我正在处理这样一个数据集

年龄 教育 年级 及格
group1 小学 50 否
group2 高等教育 20 否
group1 中学 70 是
group2 中学 67 是
group1 中学 55 是
group1 中学 49 否
group1 中学 76 是

我有一个学生通过考试的先验概率是 0.6,现在我需要得到一个学生通过考试的后验概率,因为他的年龄、教育水平和年级
我知道我应该首先获得 P(age=group1| pass=yes )* P(education=primary| pass=yes)* P(grade>50 |pass=yes)
但这应该针对每种情况(行)进行,我有一个包含 1000 行的日期
所以,我想我可以得到一个功能可以帮助我!

4

2 回答 2

1

有许多可用的包/功能。您应该查看贝叶斯推理任务视图

此外,如果您的先验不是完整分布并且只是概率的点估计,那么您可能实际上并没有进行贝叶斯推理,只是在频率论框架中使用贝叶斯规则。非常不一样。但现在我们进入了 CrossValidated 领域。

于 2013-07-09T15:27:56.917 回答
-1

这是只有一个变量(教育)和变量(通过)的答案:

# get the prior probabilities  
prior<- c(prior_no, prior_yes)

# get contingency table of values for mydata
edu_table<- with(mydata,table(mydata$pass, mydata$education))

# get the sum across (pass)
tots<- apply(edu_table,1,sum)

# create matrix of 0's
ppn<- edu_table*0  
post<- edu_table*0  

# use a loop to get the prior probabilities& posterior probabilities
for(i in 1:length(tots)){
  for( j in 1: 4){

    ppn[i,j]=edu_table[i,j]/tots[i]
    post[i,j]=prior[i]*ppn[i,j]/(prior[1]*ppn[1,j]+prior[2]*ppn[2,j])

  }
} 

ppn # probability of education=j given y=i
post # posterior probability of y=i given education=j
于 2013-06-25T20:43:39.757 回答