我想计算威布尔随机变量X大于1000的概率,其中X ~威布尔(拉姆达,g).

使用CDO,我将其计算为:

g = log(log(.7)/log(.5))/log(40/81)
lambda = -log(.7)/400^g

> exp(-lambda*1000^g)
[1] 0.4294352

但使用如下R包,结果不同

> pweibull(1000, shape = g, scale= lambda, lower.tail = FALSE)
[1] 0

为什么结果不同?我使用R包是否错误?

推荐答案

来自维基百科页面.https://en.wikipedia.org/wiki/Weibull_distribution#Density_function. 看起来您正在使用替代参数化的第一种替代方案.

在文章之后,您的Lambda值实际上是"B".要转换为标准Lambda,转换为:

lambdaNew <- exp(-log(lambda)/g)

因此R函数变成:

pweibull(1000, g, lambdaNew, lower.tail = FALSE)
# [1] 0.4294352

R相关问答推荐

手工PCA上的载体与输出双图不匹配

无法在我的情节中表现出显着的差异

根据收件箱中的特定值提取列名

按R中的组查找相邻列的行累积和的最大值

获取列中值更改的行号

在R中替换函数中的特定符号

如何直接从Fortran到R的数组大小?

迭代通过1个长度的字符串长字符R

在GGPLATE中将突出的点放在前面

使用geom_segment()对y轴排序

对于变量的每个值,仅 Select 包含列表中所有值的值.R

无法正确设置动态创建的Quarto标注的格式

如果COLSUM为>;0,则COLNAME为向量

在具有多个响应变量的比例堆叠条形图上方添加总计

当由base::限定时,`[.factor`引发NextMethod错误

在使用SliderInput In Shiny(R)设置输入数据的子集时,保留一些情节痕迹

是否从列中删除★符号?

如何获取R chromote中的当前URL?

使用dplyr删除具有条件的行

如何修改Rust中的R字符串并将其赋给新的R变量,并使用extendr保留原始R字符串