问题标签 [weibull]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10139 浏览

r - 在 JAGS 中以“计数过程”形式表示参数生存模型

我正在尝试在 JAGS 中建立一个允许时变协变量的生存模型。我希望它是一个参数模型——例如,假设生存遵循 Weibull 分布(但我想允许风险变化,所以指数太简单了)。因此,这本质上是可以在flexsurv包中完成的贝叶斯版本,它允许参数模型中的时变协变量。

因此,我希望能够以“计数过程”形式输入数据,其中每个主题都有多行,每行对应于其协变量保持不变的时间间隔(如本 pdf此处所述。这是或包装允许的(start, stop]配方。survivalflexurv

不幸的是,关于如何在 JAGS 中进行生存分析的每一种解释似乎都假设每个主题只有一行。

我尝试采用这种更简单的方法并将其扩展到计数过程格式,但该模型无法正确估计分布。

失败的尝试:

这是一个例子。首先我们生成一些数据:

然后我们将数据分成每个受试者 2 个观察值。我只是在时间 = 300 时拆分每个主题(除非他们没有达到时间 = 300,他们只得到一个观察结果)。

现在我们可以设置 JAGS 模型了。

根据分割点的位置,模型估计基础分布的非常不同的参数。如果数据没有被拆分到计数过程表格中,它只会获取正确的参数。似乎这不是为此类问题格式化数据的方法。

如果我遗漏了一个假设,并且我的问题与 JAGS 的关系不大,而与我如何制定问题的方式更相关,那么非常欢迎提出建议。我可能对时变协变量不能用于参数生存模型(并且只能用于 Cox 模型之类的模型感到绝望,该模型假设风险恒定且实际上并不估计潜在分布)——然而,作为我在上面提到过,flexsurvregR 中的包确实适应了(start, stop]参数模型中的公式。

如果有人知道如何用另一种语言(例如 STAN 而不是 JAGS)构建这样的模型,那也将不胜感激。

编辑:

Chris Jackson 通过电子邮件提供了一些有用的建议:

我认为这里需要 JAGS 中用于截断的 T() 构造。基本上对于每个人活着但协变量不变的时期 (t[i], t[i+1]),生存时间在时期开始时被左截断,并且可能在结尾。所以你会写类似的东西y[i] ~ dweib(shape, scale[i])T(t[i], )

我尝试按如下方式实施此建议:

不幸的是,这并不能解决问题。使用旧代码,模型主要是正确地获得了比例参数,但在形状参数上做得非常糟糕。使用这个新代码,它非常接近正确的形状参数,但始终高估了比例参数。我注意到,高估的程度与分裂点出现的时间有关。如果分割点早(cens_point = 50),则实际上没有任何高估;如果来晚了(cens_point = 350),那么有很多。

我想这个问题可能与“重复计算”观察结果有关:如果我们在 t=300 看到一个删失的观察结果,那么来自同一个人,在 t=400 的一个未经删失的观察,对我来说,这个人似乎很直观为我们对 Weibull 参数的推断贡献了两个数据点,而实际上它们应该只贡献一个点。因此,我尝试为每个人加入随机效应;然而,这完全失败了,参数估计值很大(在 50-90 范围内)nu。我不确定为什么会这样,但也许这是一个单独的帖子的问题。由于我不是问题是否相关,您可以在此处找到整篇文章的代码,包括该模型的 JAGS代码

0 投票
2 回答
1104 浏览

r - 在特定间隔内生成随机数

我想在给定的时间间隔内生成一些 Weibull 随机数。例如,来自 Weibull 分布的 20 个随机数,形状为 2,尺度为 30,区间为 (0, 10)。

rweibullR 中的函数从具有给定形状和比例值的 Weibull 分布生成随机数。有人可以建议一种方法吗?先感谢您。

0 投票
0 回答
31 浏览

python - 在 Ubuntu 14.04 中运行的 Python 代码不在 Windows 8.1/10 中运行

我的 python 代码在 Ubuntu 14.04 中成功运行;但是当我在 Windows 平台上运行时,它让我陷入了错误。编码:

错误:

你能帮我解决这个问题吗!

0 投票
0 回答
356 浏览

r - R中的威布尔概率网格

我正在尝试借助 R 中的 ggplot2 包构建用于可靠性分析的 Weibull 概率网格。我已经转换了数据,即时间和故障概率,使得两个参数 weibull 的累积分布函数符合直线网格中的线。

对于 y 轴,我编写了一个函数来转换显示百分比的双对数刻度。

现在我想在 x 轴上放置适当的中断和标签。单位只是时间,但轴是对数。对于较小的故障时间,我希望用整数标记和分解轴,例如像 c(100, 1000, 2000, 5000) 这样的向量。

对于更高的故障时间(时间> 5000),我想切换到对数刻度 10 ^(x),x >= 4。

我在将 x 轴上的两件事结合起来时遇到了麻烦,希望有人可以帮助我解决这个问题。

下面是我的代码中“有趣”的部分。你可以看到我已经为对数 (10 ^(x)) 情况打破并标记了 x 轴。但正如我所说,我希望在一个轴上进行组合。
这是我到目前为止编码的内容。

希望我的语言足以解释我的问题。

最好的,蒂姆

0 投票
0 回答
100 浏览

matlab - 来自均值和方差的随机威布尔

我需要从我知道均值和方差的 Weibull 分布中抽取随机值。我想使用 Matlab,它的功能wblrnd需要形状和比例参数。现在,我从维基百科看到均值和方差与形状和比例参数相关,但它们之间存在Gamma Function。因此,我想知道:有没有办法从均值和方差分析到形状和尺度参数?如果没有,我该怎么做?

0 投票
1 回答
244 浏览

excel - 使用excel找到最佳拟合分布

我估计了指数分布的 theta 和 Weibull 分布的 theta 和 tau。我想比较这两种分布,看看哪一种最适合我的数据。我怎么能在excel中做到这一点?我可以在excel中找到R平方值吗?

0 投票
0 回答
174 浏览

python-3.x - 使 Lognormal 和 weibull 适合 Python 的步骤?

我有一组数据,如下图所示。

绘制数据

我想对这组数据进行对数正态分布(以及威布尔拟合)。我进行了很多研究,但仍然找不到如何在 Python 中进行。对于对数正态,我使用 excel 计算了 ln(x) 的平均值 ln(x) 和标准偏差。我还使用 excel 计算了 weibull 的形状参数和比例参数。我想在 python 中编写一个函数来获得对该数据的拟合,从而获得我的数据的比例、形状参数。任何人都可以帮忙吗?

0 投票
1 回答
420 浏览

python - 不同的价值观 weibull pdf

我想知道为什么带有预建函数 dweibull.pdf 的 weibull pdf 的值或多或少是它们应该的一半

我做了一个测试。对于相同的 x,我两次为 A=10 和 K=2 创建了 weibull pdf,一次是自己编写公式,另一次是使用 dweibull 的预构建函数。

dweibull 的 pdf 值似乎是一半,但这是错误的,因为总和应该是 1,而不是 dweibull 的 0.5 左右。通过自己编写公式,总和约为 1[在此处输入图像描述

0 投票
0 回答
8391 浏览

python - Scipy:如何拟合 Weibull 分布?

通过拟合威布尔分布,我完全感到困惑

这些参数如何对应于https://en.wikipedia.org/wiki/Weibull_distribution中的 Weibull 分布?具体来说,awikic 和 中的lambda,​​ 是什么k

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.exponweib.html#scipy.stats.exponweib中,pdf定义为

但在维基百科中,PDF 是

在此处输入图像描述


此外,如果我使用exponweib.pdf它返回的参数,我会得到不同的结果

在此处输入图像描述

0 投票
1 回答
1200 浏览

winbugs - Winbugs 中的一个简单模型,但它显示“此链包含未初始化的变量”

我有一些简单的时间来事件数据,没有协变量。我试图将 Weibull 分布拟合到它。所以我有以下代码。在我加载我的姓名首字母之前,一切看起来都很好。它说“这个链包含未初始化的变量”。但我不明白。我认为 Weibull dist 只有 2 个参数,并且我已经指定了它们。您能否提一些建议?谢谢!