微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单个连续随机变量位于区间 [55,100]

如何解决单个连续随机变量位于区间 [55,100]

我被要求找出一个学生通过考试的概率(如果分数为 55 ≤ X ≤ 100,他会这样做)并获得一个密度函数(见图片

我已经定义了我的限制并集成了密度函数,可以在下面的 R 代码块中看到

f1 <- function(x){
     -(x/100)+(4*0.5/5)+(1/5)
}
integrate(f1,(80*p-25),(80*p+20))

我在定义 f1 时插入了 0.5 而不是 p。如果学生准备得不够好,我会得到 27.76% 的答案 (p=0.5)

我怀疑这是否正确完成,我只使用了 f(x) 的第二个表达式而没有考虑第一个,当我在在线积分计算器中输入解决方案时,我得到的值要低得多。另外,我不确定极限 a 和 b 的表达式是否定义正确。我想我想知道如何从具有多个表达式的密度函数中推导出概率以及如何处理这些限制。

解决方法

这可以按如下所示完成:

p <- function(x,p = 0.5){
  i <- (80*p) < x & x <= (80*p + 10)
  j <- (80*p + 10) < x & x <= (80*p + 20)
  (x/100 - 4*p/5)^i * (-x/100 + 4*p/5 + 1/5)^j * 0^(1-i-j)
}

integrate(p,55,100)
0.1249993 with absolute error < 5.4e-05

您也可以将 p 定义为:

p1 <- function(x,p = 0.5){
  i <- (80*p) < x & x <= (80*p + 10)
  j <- (80*p + 10) < x & x <= (80*p + 20)
  (x/100 - 4*p/5) * i + (-x/100 + 4*p/5 + 1/5) * j + 0 * (1-i-j)
}

integrate(p1,100)
0.1249993 with absolute error < 5.4e-05
,

密度函数有点粗糙,但您可以通过首先定义一个向量 x(范围从 0 到 100)然后有条件地计算作为 x 和 p 的函数的分数来轻松解决它。

只需将分数默认设置为0,并通过赋值中给出的函数替换某些条件适用的值:

x = seq(0,100,.1)

p = 0.5

score = rep(0,length(x))
score[80*p<x & x <= (80*p+10)]=x[80*p<x & x <= (80*p+10)]/100-4*p/5
score[(80*p + 10)<x & x <= (80*p+20)]=-x[(80*p + 10)<x & x <= (80*p+20)]/100+4*p/5+1/5

您现在有一个可以绘制的密度函数:

plot(x,score,type="l")

enter image description here

得分为 55 或更高的概率是 55 之后曲线下的面积除以曲线下的总数。幸运的是,曲线下的面积可以通过对这些值求和来获得:

prob55 = sum(score[x>=55])/sum(score)
prob55

在这种情况下,结果是 12.5%

,

虽然Onyambu的解决方案是正确的,但我认为这样写比较好:

f <- function(x,p = 0.5){
  dplyr::case_when(
    #         Condition        --------      Function
    (80*p) < x      & x <= (80*p + 10) ~ x/100 - 4*p/5,(80*p + 10) < x & x <= (80*p + 20) ~ -x/100 + 4*p/5 + 1/5,TRUE                               ~ 0
  )
}

原因是:

  • 更容易阅读
  • 不需要读者了解强制的工作原理。
  • 更具可扩展性:不会随着区域数量的增加而变得更糟。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。