首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算经验概率

计算经验概率
EN

Stack Overflow用户
提问于 2014-05-02 23:08:24
回答 3查看 7.3K关注 0票数 2

感觉这个问题应该被问到,但是搜索了stats.stackexchange后我找不到答案。

我在R中有这个数字向量:

代码语言:javascript
复制
x <- c(0.01, 0.50, 0.00, 0.28, 0.00, 0.15, 0.67, 0.00, 0.23, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.23, 0.00, 0.15, 0.00)

使用R码,我如何计算值范围的概率?例如,一个值在0和0.01之间的概率是多少?

另外,使用R码,值等于或小于0.3的概率是多少?

EN

回答 3

Stack Overflow用户

发布于 2014-05-02 23:22:03

当您说“介于”时,您应该说明包括哪些端点(如果有的话)。

有很多方法可以解决这些问题;我并不是以有效的方式来解决这些问题,只是演示了各种方法。

P(a

代码语言:javascript
复制
diff(ecdf(x)(c(0,0.01)))

对于P(X <= b):

代码语言:javascript
复制
ecdf(x)(0.3)

另一种方法,用于获得P(X=x):

代码语言:javascript
复制
table(x)/length(x)

为了得到P(X <= x):

代码语言:javascript
复制
cumsum(table(x))/length(x)

因此,如果您想要包含两个端点,可以这样做:

对于P(a <= X <= b):

代码语言:javascript
复制
p <- table(x)/length(x)
diff(ecdf(x)(c(0,0.01)))+ p[names(p)=="0"]

或者:

代码语言:javascript
复制
p <- table(x)/length(x)
sum(p[names(p) %in% c("0","0.01")])

或者只是

代码语言:javascript
复制
length(x[0<=x & x<=0.01])/length(x)
票数 4
EN

Stack Overflow用户

发布于 2014-05-03 02:12:59

你还知道其他关于这些数字代表什么的信息吗?例如,我注意到这些数字都不是负数。而且数字0出现的次数很多(11次),所以假设没有一个数字是负的,那么你处理的不是正态分布。样本中只有19个数字,在你对这些数字进行的任何计算中都会有很大的误差条,除非你知道这些数字都来自特定的分布。否则,像“一个值小于等于0.3的概率是多少”这样的问题的答案就来自于计数。如果样本中有19个数字,并且只有两个数字大于0.3,则值小于或等于0.3的概率为17/19。

票数 1
EN

Stack Overflow用户

发布于 2014-05-02 23:37:52

我刚刚创建了一个快速函数,它告诉您数值向量中大于或等于start且小于或等于end的值的比例

代码语言:javascript
复制
emp_prob<-function(x,start,end){
sum(end>=x & x>=start)/length(x)}

x <- c(0.01, 0.50, 0.00, 0.28, 0.00, 0.15, 0.67, 0.00, 0.23, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.23, 0.00, 0.15, 0.00)

emp_prob(x,0,1)
[1] 1

这是一个非常基本的问题,所以R的教程可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23431522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档