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(x-modele$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
--
View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3498144.html
Sent from the R help mailing list archive at Nabble.com.
Draw a nomogram after glm
10 messages · Komine, Frank E Harrell Jr
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(x-modele$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 -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3498279.html Sent from the R help mailing list archive at Nabble.com.
Thanks Frank I will try rms package and give after the result. Komine -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3499771.html Sent from the R help mailing list archive at Nabble.com.
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 -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3501534.html Sent from the R help mailing list archive at Nabble.com.
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 -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3502614.html Sent from the R help mailing list archive at Nabble.com.
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.
http://r.789695.n4.nabble.com/file/n3503828/nomo.jpeg
http://r.789695.n4.nabble.com/file/n3503828/nomogram.jpeg
After, is it possible to draw my nomogram like the 3rd graph that I found in
Internet, it is easier to understand.
http://r.789695.n4.nabble.com/file/n3503828/nogramme.bmp
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(x-modele$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(x-modele$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(x-modele$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
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(x-modele$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
--
View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3503828.html
Sent from the R help mailing list archive at Nabble.com.
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
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.
http://r.789695.n4.nabble.com/file/n3503828/nomo.jpeg
http://r.789695.n4.nabble.com/file/n3503828/nomogram.jpeg
After, is it possible to draw my nomogram like the 3rd graph that I found in
Internet, it is easier to understand.
http://r.789695.n4.nabble.com/file/n3503828/nogramme.bmp
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(x-modele$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(x-modele$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(x-modele$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(x-modele$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 -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3503857.html Sent from the R help mailing list archive at Nabble.com.
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| 1e-06 gp 0.466 tau-a 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
--
View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3504208.html
Sent from the R help mailing list archive at Nabble.com.
3 days later
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 tau-a 0.002
max |deriv| 7e-13 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)))
http://r.789695.n4.nabble.com/file/n3511218/nomogram_2.jpeg Please can I do to have linear predictor between 0 to 1. Thanks very much for your Help Komine -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3511218.html Sent from the R help mailing list archive at Nabble.com.
by is not an argument to c( ) datadist needs to know the final coding of variables so run it after doing any re-codes. 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 tau-a 0.002
max |deriv| 7e-13 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)))
http://r.789695.n4.nabble.com/file/n3511218/nomogram_2.jpeg 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 -- View this message in context: http://r.789695.n4.nabble.com/Draw-a-nomogram-after-glm-tp3498144p3511758.html Sent from the R help mailing list archive at Nabble.com.