We have an advanced user that suggested to add add Nomogram,DCA decision curve, and NRI in predictive modeling. These functions are now used by R and the users are expecting to use them in JMP as well, especially the medical users.
Can you please provide more details? Links to references, links to other requests (if available), an example, screenshots,...
Thanks!
Hi Mia
Nomogram,DCA decision curve, and NRI is proposed as advanced and new features in predictive modeling by our senior JMP user in a hospital. He teaches the doctors in hospital how to use JMP. These new functions can be done in R for the moment.
i will share about the nomogram first this time.
Nomogram is commonly used in the medical researching and papers and is very popular among the medical workers.
I did a survey months ago among the doctors in the hospitals. Almost 80-90% of doctors need to use the nomogram in their papers. I asked china SE to program JSL by JMP And R and shared with the customers. But the customers still want to use JMP to make it directly.
If we could add the nomogram to JMP,JMP would become more competitive among those medical workers.
Here is what I found on Wikipedia. I think this link describes its use as well. Is that correct @Clare
Thank you for the information. @Clare, is there a script or add-in you can share?
@Chris_Kirchberg
HI Chris
The link that you have given on Wikipedia is the general definition on nomogram. For clinic related, some additional instructions of the links as below:
Nomograms Are Predictive Tools That Show Probabilities of an Outcome (scalestatistics.com)
Clinical nomogram for predicting the survival of patients wi... : Medicine (lww.com)
How To Build and Interpret a Nomogram for Cancer Prognosis | Journal of Clinical Oncology (ascopubs.org)
@mia_stephens
Thank you for paying attention to my suggestion.
I have asked the SE to program an add-in by combing JMP with R. The JSL is as followed:
// Expressions List LoadExprs = expr( InitR = expr( R Init(); R Submit( " library(survival) library(rms) " ); ); MakeNomoPlot = expr( yy = yvar << Get Items; cc = cvar << Get Items; xx = xvar << Get Items; R send(yy); R send(cc); R send(xx); dt = Current Data Table(); R Send(dt); R Submit( EvalInsert("\[ dd<-datadist(dt) options(datadist="dd") t1 <- yy[1] t2 <- cc[1] t3 <- paste(xx, collapse = "+") formula=eval(parse(text=paste("Surv(",t1,",",t2,")~",t3))) f<-cph(formula,data=lung,x=TRUE,y=TRUE,surv=TRUE) survival<-Survival(f) survival1<-function(x)survival(365,x) survival2<-function(x)survival(730,x) nom<-nomogram(f,fun=list(survival1,survival2), fun.at=c(0.05,seq(0.1,0.9,by=0.05),0.95), funlabel=c('1 year survival','2 year survival')) plot(nom) ]\")); ); CapturePlot = expr( JMP_plot = R Get Graphics(png); New Window("Imported Plot", Picture Box(JMP_Plot)); ); RunClose = expr( inwin << Close Window; // close window R Term( ); //Close r connection ); ); LoadExprs; //load all the expressions that reside at the end of the file InitR; //Start R Connection and load libraries // Prompt for data table if none is open if(IsEmpty(Current Data Table()), dt = Open(), dt = Current Data Table()); //Draw Window and Create Fields and Buttons inwin = New Window( //Draw New Window and name inwin "列线图", //Window Title Panel Box("选择列", //Draws visible box H List Box( //Invisible box for layout - glues horizontally clb1 = Col List Box( all ), //Column listbox, with name clb1 so we can access later // Draw First Lineup Box (invisible, provides arrangement) for Selecting Columns Lineup Box( N Col( 2 ), //with 2 columns indicated, each pair will span a row //First Row Button Box( "Y,事件时间", yvar << setitems( clb1 << getselected ) ), yvar = Col List Box( minitems( 1 ), maxitems( 1 ), nlines( 1 ) ), //Second Row Button Box( "删失", cvar << setitems( clb1 << getselected ) ), cvar = Col List Box( minitems( 1 ), maxitems( 1 ), nlines( 1 ) ), //Third Row Button Box( "X,因子", xvar << setitems( clb1 << Get Selected ) ), xvar = Col List Box( minitems( 1 ), maxitems( 100 ), nlines( 10 ) ), ), // Draw Second Lineup Box for Buttons Lineup Box( N Col( 1 ), Button Box("确定", MakeNomoPlot), Button Box("在JMP窗口中显示", CapturePlot), Button Box("关闭", RunClose ) ) //close Lineup Box ) //close H List Box ) //close Panel box ); //close New Window
I was just asked about how to make a Nomogram so it is nice to see this in the Wish List. This customer was Poseida and they have licenses for JMP, JMP Pro, JMP Clinical and JMP Live.