[R] weibplot (Weibull plot) for R
Weiers Tilman
tweiers at eeh.ee.ethz.ch
Sun May 27 09:19:05 CEST 2007
Hello,
The following script allows for Weibull plots using R.
Its output is similar to the output of the wblplot function (or weibplot function) in MATLAB.
As opposed to the previously mentioned function it does not require proprietary software. Instead, it is based on R.
My code also allows for a graphical visualization of weibull fitted data. In particular, data can be represented by a straight line in a so-called Weibull plot. According to my observations this is the most common way of analyzing Weibull distributed data (e.g. time to breakdown values, tensile strength values, metal fatigue).
Here comes my code:
# data 4 wbl plot
data<-c(10,25,35,90,175)
confidence_level=.95
jpeg()
library(survival)
# time to breakdown values
res<-survreg(Surv(data) ~ 1,dist='weibull')
# scale parameter:
eta=exp(res$coefficient)
# shape parameter:
beta=1/res$scale
# plot stuff
n=length(data)
plot(data,log(-log(1-ppoints(n,a=.5))),log="x",axes=FALSE,frame.plot=TRUE,xlab="data",ylab="probability")
# Let the confidence interval code below plot the regression curve
# curve(log(-log(exp(-(x/eta)^beta))),log="x",add=TRUE)
# annotate the graph
ticklabels=c(.1,.3,.63,.9)
ticksat=log(-log(1-ticksatlog))
axis(2,at=ticksat,labels=ticklabels)
axis(1)
grid()
# plot 95% confidence intervals
x<-data
out=lm(log(-log(1-ppoints(n,a=.5)))~log(x))
curve(predict(out,newdata=data.frame(x=x)),add=TRUE)
curve(predict(out,newdata=data.frame(x=x),level=confidence_level,interval="confidence")[,"lwr"],add=TRUE)
curve(predict(out,newdata=data.frame(x=x),level=confidence_level,interval="confidence")[,"upr"],add=TRUE)
More information about the R-help
mailing list