

Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine


Please read the documentation for the rms package, particularly the datadist function.
Note that in your subject line glm should be lrm.
Frank
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Frank Harrell
Department of Biostatistics, Vanderbilt University


Thanks Frank
I will try rms package and give after the result.
Komine


Hi,
I use datadist fonction in rms library in order to draw my nomogram. After reading, I try this code:
f<lrm(Y~L+P,data=donnee)
f < lrm(Y~L+P,data=donnee)
d < datadist(f,data=donnee)
options(datadist="d")
f < lrm(Y~L+P)
summary(f,L=c(0,506,10),P=c(45,646,10))
plot(Predict(f,L=200:800,P=3))
Unfortunately, I have error after the 2nd code:
Erreur dans datadist(f, data = donnee) : program logic error
Please could you provide me a document more simple which is more understandable for new R user.
Thanks for your help.
Komine


Please post the entire script next time, e.g., include require(rms). You have one line duplicated. Put this before the first use of lrm: d < datadist(donnee); options(datadist='d')
Frank
Komine wrote
Hi,
I use datadist fonction in rms library in order to draw my nomogram. After reading, I try this code:
f<lrm(Y~L+P,data=donnee)
f < lrm(Y~L+P,data=donnee)
d < datadist(f,data=donnee)
options(datadist="d")
f < lrm(Y~L+P)
summary(f,L=c(0,506,10),P=c(45,646,10))
plot(Predict(f,L=200:800,P=3))
Unfortunately, I have error after the 2nd code:
Erreur dans datadist(f, data = donnee) : program logic error
Please could you provide me a document more simple which is more understandable for new R user.
Thanks for your help.
Komine
Frank Harrell
Department of Biostatistics, Vanderbilt University


Hi all R users,
Thanks Frank for your advices
In fact I posted all my script. In the R Help, the script for nomogram is long and I took only the part what I think interesting in my case.
I use informations from( datadist {Design} and rms {rms}) in the help of R software to do my code.
I see that I progress with my nomogram. Because with the following code where I put my real variables names:
library(Design)
library(rms)
d < datadist(Fire)
options(datadist='d')
f<lrm(Ignition~FMC+Charge,data=Fire)
summary(f,FMC=c(0,506.40),Charge=c(45,646)) # min and max of FMC: 0 ,506.40 and the min and max of Charge: 45, 646
plot(Predict(f,FMC=0:506.40,Charge=646))
plot(nomogram(f, interact=list(Charge= c(.2,.7)))) # sorry, not understand vector c(.2,.7) from R help
As result, I have the figure 1 then figure 2 but there is a problem. Because the 3rd line of Figure 2 "Charge" must to go 0 until 650.
Also the linear predictor must to go 0 until 1.
After, is it possible to draw my nomogram like the 3rd graph that I found in Internet, it is easier to understand.
Nb: I Apologize for my bad english
Thanks for your help
Komine
PhD student
Dakar _Sénégal
West Africa
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
<quote author="Komine"> Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine


Don't attach the Design package. Use only rms. Please provide the output of lrm (print the f object). With such a strong model make sure you do not have a circularity somewhere. With nomogram you can specify ranges for the predictors; default is 10th smallest to 10th largest.
rms will not make customized nomograms such as the one you included.
Frank
<quote author="Komine"> Hi all R users,
Thanks Frank for your advices
In fact I posted all my script. In the R Help, the script for nomogram is long and I took only the part what I think interesting in my case.
I use informations from( datadist {Design} and rms {rms}) in the help of R software to do my code.
I see that I progress with my nomogram. Because with the following code where I put my real variables names:
library(Design)
library(rms)
d < datadist(Fire)
options(datadist='d')
f<lrm(Ignition~FMC+Charge,data=Fire)
summary(f,FMC=c(0,506.40),Charge=c(45,646)) # min and max of FMC: 0 ,506.40 and the min and max of Charge: 45, 646
plot(Predict(f,FMC=0:506.40,Charge=646))
plot(nomogram(f, interact=list(Charge= c(.2,.7)))) # sorry, not understand vector c(.2,.7) from R help
As result, I have the figure 1 then figure 2 but there is a problem. Because the 3rd line of Figure 2 "Charge" must to go 0 until 650.
Also the linear predictor must to go 0 until 1.
After, is it possible to draw my nomogram like the 3rd graph that I found in Internet, it is easier to understand.
Nb: I Apologize for my bad english
Thanks for your help
Komine
PhD student
Dakar _Sénégal
West Africa
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Komine wrote
Hi all R users
I did a logistic regression with my binary variable Y (0/1) and 2 explanatory variables.
Now I try to draw my nomogram with predictive value. I visited the help of R but I have problem to understand well the example. When I use glm fonction, I have a problem, thus I use lrm. My code is:
modele<lrm(Y~L+P,data=donnee)
fun< function(x) plogis(xmodele$coef[1]+modele$coef[2])
f < Newlabels(modele,c(L="poids",P="taille"))
nomogram(f, fun=list('Prob Y<=1'=plogis),
fun.at=c(seq(0,1,by=.1),.95,.99),
lmgp=.1, cex.axis=.6)
fun.at=c(.01,.05,seq(.1,.9,by=.1),.95,.99),
lmgp=.2, cex.axis=.6)
options(Fire=NULL)
Result is bad and I have this following error message:
Erreur dans value.chk(at, i, NA, nint, Limval, type.range = "full") :
variable L does not have limits defined by datadist
Could you help me on the code to draw nomogram.
Nb: my English is low, I apologize.
Thank for your help
Komine
Frank Harrell
Department of Biostatistics, Vanderbilt University


Hi Frank,
For to answer your request:
> print(f)
Logistic Regression Model
lrm(formula = Ignition ~ FMC + Charge, data = Fire)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 231 LR chi2 231.58 R2 0.852 C 0.976
0 96 d.f. 2 g 8.972 Dxy 0.953
1 135 Pr(> chi2) <0.0001 gr 7878.577 gamma 0.953
max deriv 1e06 gp 0.466 taua 0.465
Brier 0.054
Coef S.E. Wald Z Pr(>Z)
Intercept 9.6937 1.5863 6.11 <0.0001
FMC 0.0828 0.0138 6.02 <0.0001
Charge 0.0047 0.0021 2.28 0.0223
I continue to try my nomogram.
Thanks again
Komine


Hi,
I try always to do my nomogram. I change little my code in order to definite the range of my linear predictor.
But I do not succeed to have 0 until 1. I tried this code.
library(rms)
d < datadist(Fire)
options(datadist='d')
Fire$Ignition=c(0,1,by=0.1)
f<lrm(Ignition~FMC+Charge,data=Fire)
print(f)
summary(f,FMC=c(0,506.40),Charge=c(45,646))
plot(nomogram(f, interact=list(FMC,Charge)))
The result is:
> print(f)
Logistic Regression Model
lrm(formula = Ignition ~ FMC + Charge, data = Fire)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 231 LR chi2 0.04 R2 0.000 C 0.501
0 77 d.f. 2 g 0.026 Dxy 0.002
0.1 77 Pr(> chi2) 0.9796 gr 1.026 gamma 0.003
1 77 gp 0.006 taua 0.002
max deriv 7e13 Brier 0.222
Coef S.E. Wald Z Pr(>Z)
y>=0.1 0.6832 0.3018 2.26 0.0236
y>=1 0.7033 0.3020 2.33 0.0199
FMC 0.0002 0.0011 0.18 0.8601
Charge 0.0001 0.0009 0.07 0.9424
> summary(f,FMC=c(0,506.40),Charge=c(45,646))
Effects Response : Ignition
Factor Low High Diff. Effect S.E. Lower 0.95 Upper 0.95
FMC 0 506.4 506.4 0.10 0.58 1.04 1.24
Odds Ratio 0 506.4 506.4 1.11 NA 0.36 3.45
Charge 45 646.0 601.0 0.04 0.55 1.11 1.03
Odds Ratio 45 646.0 601.0 0.96 NA 0.33 2.81
> plot(nomogram(f, interact=list(FMC,Charge)))
Please can I do to have linear predictor between 0 to 1.
Thanks very much for your Help
Komine


by is not an argument to c( )
datadist needs to know the final coding of variables so run it after doing any recodes.
You are using the wrong syntax for interact=
Please take a while to read the full documentation before responding further, and read my earlier posts.
Frank
Komine wrote
Hi,
I try always to do my nomogram. I change little my code in order to definite the range of my linear predictor.
But I do not succeed to have 0 until 1. I tried this code.
library(rms)
d < datadist(Fire)
options(datadist='d')
Fire$Ignition=c(0,1,by=0.1)
f<lrm(Ignition~FMC+Charge,data=Fire)
print(f)
summary(f,FMC=c(0,506.40),Charge=c(45,646))
plot(nomogram(f, interact=list(FMC,Charge)))
The result is:
> print(f)
Logistic Regression Model
lrm(formula = Ignition ~ FMC + Charge, data = Fire)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 231 LR chi2 0.04 R2 0.000 C 0.501
0 77 d.f. 2 g 0.026 Dxy 0.002
0.1 77 Pr(> chi2) 0.9796 gr 1.026 gamma 0.003
1 77 gp 0.006 taua 0.002
max deriv 7e13 Brier 0.222
Coef S.E. Wald Z Pr(>Z)
y>=0.1 0.6832 0.3018 2.26 0.0236
y>=1 0.7033 0.3020 2.33 0.0199
FMC 0.0002 0.0011 0.18 0.8601
Charge 0.0001 0.0009 0.07 0.9424
> summary(f,FMC=c(0,506.40),Charge=c(45,646))
Effects Response : Ignition
Factor Low High Diff. Effect S.E. Lower 0.95 Upper 0.95
FMC 0 506.4 506.4 0.10 0.58 1.04 1.24
Odds Ratio 0 506.4 506.4 1.11 NA 0.36 3.45
Charge 45 646.0 601.0 0.04 0.55 1.11 1.03
Odds Ratio 45 646.0 601.0 0.96 NA 0.33 2.81
> plot(nomogram(f, interact=list(FMC,Charge)))
Please can I do to have linear predictor between 0 to 1.
Thanks very much for your Help
Komine
Frank Harrell
Department of Biostatistics, Vanderbilt University

