r语言计算概率的代码怎么写

Python07

r语言计算概率的代码怎么写,第1张

R一个很方便的用处是提供了一套完整的统计表集合。函数可以对累积分布函数P(X≤x),概率密度函数,分位函数(对给定的q,求满足P(X≤x) >q的最小x)求值,并根据分布进行模拟

在统计学中,产生随机数据是很有用的,R可以产生多种不同分布下的随机数序列。这些分布函数的形式为rfunc(n,p1,p2,...),其中func指概率分布函数,n为生成数据的个数,p1, p2, . . .是分布的参数数值。上面的表给出了每个分布的详情和可能的缺省值(如果没有给出缺省值,则意味着用户必须指定参数)。

例:用0~1之间的均匀分布产生10个随机点

>runif(10)

[1] 0.961465376 0.0075219250.193619234 0.137027246 0.739370654 0.072907082

[7] 0.674551635 0.6507778110.984664183 0.796723066

大多数这种统计函数都有相似的形式,只需用d、p或者q去替代r,比如密度函数(dfunc(x, ...)),累计概率密度函数(也即分布函数)(pfunc(x,...))和分位数函数(qfunc(p, ...),0<p<1)。最后两个函数序列可以用来求统计假设检验中P值或临界值。例如,显著性水平为5%的正态分布的双侧临界值是:

>qnorm(0.025)

[1] -1.959964

>qnorm(0.975)

————————————————

Bayes判别,它是基于Bayes准则的判别方法,判别指标为定量资料,它的判别规则和最大似然判别、Bayes公式判别相似,都是根据概率大小进行判别,要求各类近似服从多元正态分布。

1. Bayes准则:寻求一种判别规则,使得属于第k类的样品在第k类中取得最大的后验概率。

基于以上准则,假定已知个体分为g类,各类出现的先验概率为P(Yk),且各类均近似服从多元正态分布,当各类的协方差阵相等时,可获得由m个指标建立的g个线性判别函数Y1,Y2,…,Yg,分别表示属于各类的判别函数值:

其中Cjk即为判别系数,通过合并协方差阵代入即可计算得各个指标的判别系数,而C0k中则加以考虑了先验概率P(Yk):

2. 先验概率的确定:若未知各类的先验概率时,一般可用:

(1)等概率(先验无知):P(Yk)= 1/g(all groups equal)。

(2)频率:P(Yk)= nk/N (当样本较大且无选择偏倚时用,compute from sample size)

3. 判别规则:

(1)计算样品属于各类的判别函数值,把对象判别为Y值最大的类。

(2)根据所得Y值,我们亦可以进一步计算属于k类的后验概率,再将对象判给后验概率最大的一类。

以上两种判别规则的结果是完全一致的。

函数介绍

实现Bayes判别可以调用程序包klaR中NaiveBayes()函数,其调用格式为:

NaiveBayes(x,grouping,prior,usekernel =FALSE,fL = 0, ...)

复制

x为训练样本的矩阵或数据框,grouping表示训练样本的分类情况,prior可为各个类别指定先验概率,默认情况下用各个类别的样本比例作为先验概率,usekernel指定密度估计的方法,默认情况下使用标准的密度估计,设为TRUE时,则使用核密度估计方法;fL指定是否进行拉普拉斯修正,默认情况下不对数据进行修正,当数据量较小时,可以设置该参数为1,即进行拉普拉斯修正。

例子:利用Iris数据集进行Bayes判别

>install.packages("klaR")

>X<-iris[1:100,1:4]

>G<-as.factor(gl(2,50))

>library(klaR)

>x<-NaiveBayes(X,G)

>predict(x)

$class

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

91 92 93 94 95 96 97 98 99 100

2 2 2 2 2 2 2 2 2 2

复制

由分析结果可知,根据已知分类的训练样品建立的判别规则,出现了0个样本错判,回代的判别正确率为100%。