I am building a model using the Life Distribution tool and get a nice plot that shows my failures. Other tools I've used will allow me to plot my censored data, or suspensions, on top of this plot, but I cannot seem to figure out how to do it in JMP. Has anyone figured out how to add the censored data in? Using JSL to do this would be perfectly acceptable too, if anyone knows how to add this in.
Hi bradford.foulkes,
Does the Event Plot in Life Distribution plot the censored data in the manner that you're looking for?
Best,
Michael
open("$SAMPLE_DATA/Reliability/Fan.jmp");
Life Distribution( Y(:Time), Censor( :Censor ),
SendToReport(
Dispatch( {}, "Event Plot", OutlineBox, {Close( 0 )} ),
Dispatch( {}, "Compare Distributions", OutlineBox, {Close( 1 )} )
)
);
Not quite, I'd almost like a combination of the two plots. The previous software we would use showed the events across the bottom of the chart at a risk of 0 to differentiate them from failures. I received the request to recreate that chart, and that's the only aspect I can't figure out. The idea is to be able to see very easily if we have censored values well past our suspensions or if the failures are on highest values.
Would it be possible to send a screenshot of what you're trying to recreate?
This is what I'm trying to recreate, where the blue circles are the failures and the red triangles are the censored values
Michael, what is really odd is that when I run a Life Distribution model on a segmented part of my population, it doesn't show the suspensions, but when I run it on all the data, the suspensions do show up. It seems that adding in a "By" or a "Where" column to my modeling makes the suspensions not show up, which is how I've been running these up to this point.
This is admittedly not the most robust or nicest looking script, but I think it should help you on your way toward getting a plot like you're looking for.
dt = open("$DOCUMENTS/Temp/JMP_EXAMPLE_TABLE.jmp");
cvec = (dt:Aging << get values)[dt << get rows where(:Censor=="S")];
ld = Life Distribution( Y( :Aging ), Censor( :Censor ), Censor Code( "S" ) );
rp = report(ld);
fb = rp["Compare Distributions"][FrameBox(1)];
buildexpr = expr(Glue());
for( i=1, i<=nrows(cvec), i++,
insertinto(buildexpr,evalexpr(Marker(1,{Expr(cvec[i]),0})))
);
nameexpr(buildexpr);
addexpr = expr(Add Graphics Script);
insertinto(addexpr,nameexpr(buildexpr));
nameexpr(addexpr);
finalexpr = expr(Send(fb));
insertinto(finalexpr,nameexpr(addexpr));
nameexpr(finalexpr);
eval(finalexpr);
Michael, what is really odd is that when I run a Life Distribution model on a segmented part of my population, it doesn't show the suspensions, but when I run it on all the data, the suspensions do show up. It seems that adding in a "By" or a "Where" column to my modeling makes the suspensions not show up, which is how I've been running these up to this point.
I agree that does sound strange. Is there any way that you could share the data? I'd be interested to see if I can reproduce that behavior.
Regards,
Michael
Michael, when I load it like this, I only get failures to show on the plot. If I remove the “By” value, everything shows up. I’ve attached a document with some data that this is happening on too, so I’ll be curious to see if you can recreate it.
Brad