You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WeibullR 1.2.1生成威布尔图异常问题求助

问题描述

使用R 4.2.1搭配WeibullR 1.2.1版本运行威布尔图生成代码时,遇到两个问题:

  • 输出的Beta、Eta及对数似然参数和预期不符
  • 删失数据在生成的图里缺失
    但同样的代码在WeibullR 1.1.10版本能正常运行,原始代码如下:
library(weibullR)
left<-c( 36.0, 35.0 ,34.0 ,33.0 ,32.0 ,31.0, 30.0 ,32.5 ,35.5 ,29.5 ,28.5, 30.5, 26.5, 31.5, 20.5 ,34.5, 25.5, 10.5, 27.5, 18.5, 33.5,  2.5 ,11.5 ,23.5, 22.5 ,13.5 , 9.5 ,24.5 ,21.5,15.5, 16.5, 14.5 ,17.5, 19.5 , 0.5,  8.5,6.5)
right<-c( -1.0, -1.0 ,-1.0 ,-1.0, -1.0, -1.0, -1.0 ,32.5, 35.5 ,29.5, 28.5, 30.5, 26.5, 31.5,20.5, 34.5, 25.5, 10.5,27.5 ,18.5, 33.5,  2.5 ,11.5, 23.5 ,22.5 ,13.5 , 9.5 ,24.5, 21.5,15.5, 16.5 ,14.5, 17.5, 19.5,  0.5 , 8.5,  6.5)
qty<-c( 65416,29,16,7,4,2,1,45,62,21,26,34,20,41,5,44,14,2,20,6,50,1,3,21,13,7,1, 
 7,13,4,4,2,5,2,1,1,1)
state<-c( 0 ,0, 0, 0 ,0 ,0, 0, 1, 1, 1, 1, 1 ,1 ,1, 1, 1 ,1 ,1 ,1, 1 ,1, 1 ,1 ,1, 1 ,1 ,1, 1 
 ,1, 1 ,1 ,1 ,1, 1 ,1, 1 ,1)

ci<-0.9# Confidence 
dist= "weibull2p" ##Distribution type
weibull_fit<-mlefit(data.frame(left,right,qty),dist =dist)## This generates the weibulll parameters-Beta, Eta etc 
da1<-wblr(data.frame(time=left,event =state,qty=qty)) 
da1 <- wblr.fit(da1 ,dist= dist,method.fit="mle",pch=3)
#### BLCOK IN CASE OF 3 P
da1<-wblr.conf(da1,method.conf="fm",ci=as.numeric(ci),col="Red")
df <-da1$data$dpoints
df <- df[!duplicated(df[ , c("time")]),]
da1$data$dpoints <- df 
par(mar=c(1,1,1,1))
p1<-plot(da1) 
p1
解决方案

WeibullR 1.2.x版本对数据输入和处理逻辑做了更新,调整代码即可解决问题:

1. 修正删失数据的输入方式

新版本更推荐直接用区间数据(left/right)定义删失,right=-1会被自动识别为右删失,无需单独指定state参数,调整后代码如下:

library(weibullR)

# 原始数据保留
left<-c(36.0, 35.0, 34.0, 33.0, 32.0, 31.0, 30.0, 32.5, 35.5, 29.5, 28.5, 30.5, 26.5, 31.5, 20.5, 34.5, 25.5, 10.5, 27.5, 18.5, 33.5, 2.5, 11.5, 23.5, 22.5, 13.5, 9.5, 24.5, 21.5, 15.5, 16.5, 14.5, 17.5, 19.5, 0.5, 8.5, 6.5)
right<-c(-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 32.5, 35.5, 29.5, 28.5, 30.5, 26.5, 31.5, 20.5, 34.5, 25.5, 10.5, 27.5, 18.5, 33.5, 2.5, 11.5, 23.5, 22.5, 13.5, 9.5, 24.5, 21.5, 15.5, 16.5, 14.5, 17.5, 19.5, 0.5, 8.5, 6.5)
qty<-c(65416,29,16,7,4,2,1,45,62,21,26,34,20,41,5,44,14,2,20,6,50,1,3,21,13,7,1,7,13,4,4,2,5,2,1,1,1)

# 构建包含区间信息的数据框
data_df <- data.frame(left = left, right = right, qty = qty)

ci <- 0.9
dist <- "weibull2p"

# 用区间数据初始化wblr对象,自动识别删失
da1 <- wblr(data_df)
da1 <- wblr.fit(da1, dist = dist, method.fit = "mle", pch = 3)
da1 <- wblr.conf(da1, method.conf = "fm", ci = ci, col = "Red")

# 保留去重逻辑
df <- da1$data$dpoints
df <- df[!duplicated(df[, c("time")]),]
da1$data$dpoints <- df 

# 调整绘图边距,避免轴标签被截断
par(mar=c(4,4,1,1))
p1 <- plot(da1)
p1

2. 验证拟合参数

新版本mlefit()的返回结构略有变化,可通过以下代码查看参数,确认是否符合预期:

weibull_fit <- mlefit(data_df, dist = dist)
print(weibull_fit$par)  # 查看Beta、Eta参数
print(weibull_fit$loglik)  # 查看对数似然值

3. 确保删失数据显示

调整后,删失数据会以对应符号在图中呈现(默认是空心点),如果还是看不到,检查:

  • 数据中right=-1的行是否被正确识别
  • 绘图边距是否合理,避免点被边界截断

内容的提问来源于stack exchange,提问作者Raghavan vmvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:45:33