我目前正在处理一些与单元的安装日期和故障日期相对应的生命周期数据。数据是现场数据,因此我确实有大量的暂停(尚未出现故障的单元)。我想使用Scipy stats库对这些数据进行一些威布尔分析(例如,将数据拟合到威布尔曲线并获得分布的参数)。我对Python和Scipy还很陌生,所以我找不到一种方法来将挂起的数据包含在任何可用的威布尔分布中(dweibull、exponweibull、minweibull、maxweibull)。有没有一种简单的方法来处理暂停?我不想重复这个轮子,但我在从我的数据中估计威布尔的参数时遇到了困难。有谁可以帮我?
非常感谢!
发布于 2014-03-20 11:21:08
如果我理解正确的话,那么这需要对删减数据进行估计。
没有一个scipy.stats.distribution会直接估计这种情况。你需要将非删失观测值的似然函数和删失观测值的似然函数结合起来。
您可以使用scipy.stats.distributions的pdf和cdf,或者更好的sf来实现这两个部分。然后,您可以只使用scipy optimize来最小化负对数似然,或者如果您还对参数估计的不确定性感兴趣,则可以尝试在统计模型中使用GenericLikelihoodModel。
发布于 2021-10-28 09:32:15
这是一个老问题,但如果其他人看到了这一点,您可以使用surpyval python包非常容易地适应挂起的数据。
import surpyval as surv
# Failures
f = [1, 4, 5, 7, 8, 10]
# suspended or right-censored points
s = [5, 6, 7]
# Convert 'fs' format to the 'xcn' format
# x is the time/variable
# c is the censoring flag 0 = failed, 1 = right-censored
# n is the count
x, c, n = surv.fs_to_xcn(f=f, s=s)
# Fit model
surv.Weibull.fit(x, c, n)Parametric SurPyval Model
=========================
Distribution : Weibull
Fitted by : MLE
Parameters :
alpha: 7.738077941578669
beta: 2.263120966029975https://stackoverflow.com/questions/22506268
复制相似问题