On Oct 3, 2010, at 10:42 PM, 笑啸 wrote:
dear professor:
I have a problem about the nomogram.I have got the result through
analysing the dataset "exp2.sav" through multinominal logistic
regression by SPSS 17.0.
That is an inadequate specification of a statistical analysis
(although it might pass for such in the typical medical journal).
and I want to deveop the nomogram through R-Projject,just like
this :
I know of no way of taking a function developed in SPSS/SAS/Stata and
simply dropping it into the nomogram function to generate sensible
output. There may be such a method that you could piece together by
examining the code, but it appears to me that you are not yet ready
for that task. nomogram() was clearly developed to by used as a part
of the rms package rather than as a stand-alone graphical utility.
n<-100
set.seed(10)
T.Grade<-factor(0:3,labels=c("G0", "G1", "G2","G3"))
Sex<-factor(0:1,labels=c("F","M"))
Smoking<-factor(0:1,labels=c("No","yes"))
L<-0.559*as.numeric(T.Grade)-0.896*as.numeric(Smoking)
+0.92*as.numeric(Sex)-1.338
> L
[1] -0.755 -0.172 0.363 0.946
y <- ifelse(runif(n) < plogis(L), 1, 0)
dfr <- data.frame(T.Grade,Sex,Smoking, L, y)
ddist <- datadist(dfr) # wrap the vectors into a dataframe.
options(datadist='ddist')
f<-lrm(y~T.Grade +Sex+Smoking, data=dfr) # skip the as.numeric()'s
### Gives an error message due to singular X matrix.
> f<-lrm(y~T.Grade +Sex+Smoking, data=dfr)
singular information matrix in lrm.fit (rank= 5 ). Offending
variable(s):
Sex=M
Error in lrm(y ~ T.Grade + Sex + Smoking, data = dfr) :
Unable to fit model using “lrm.fit”
##### Try instead:
n<-100
set.seed(10)
T.Grade<-factor(0:3,labels=c("G0", "G1", "G2","G3"))
Sex<-factor(sample(0:1, 100, replace=TRUE),labels=c("F","M"))
Smoking<-factor(sample(0:1, 100, replace=TRUE),labels=c("No","yes"))
dfr$L <- with(dfr, 0.559*as.numeric(T.Grade)-0.896*as.numeric(Smoking)
+0.92*as.numeric(Sex)-1.338)
dfr$y <- with(dfr, ifelse(runif(n) < plogis(L), 1, 0) )
dfr <- data.frame(T.Grade,Sex,Smoking, L, y)
ddist <- datadist(dfr)
options(datadist='ddist')
f<-lrm(y~T.Grade +Sex+Smoking, data=dfr)
# Then follow the example on the help(nomogram page)
nom <- nomogram(f, fun=function(x)1/(1+exp(-x)), # or fun=plogis
fun.at=c(.001,.01,.05,seq(.1,.9,by=.1),.95,.99,.999),
funlabel="Risk of Death")
plot(nom, xfrac=.45)
Please note: this is _not_ your nomogram function due to the random
aspects of the creation of "y", and this is NOT multinomial logistic
regression (since you only have a dichotomous outcome). For one
possible variant of multinomial logistic regression supported in the
rms/Hmisc function suite, you would need to use polr.
--
David.
错误于 error to:model.frame.default(formula = y ~ as.numeric(T.Grade)
+ as.numeric(Sex) + :
变数的长度不一样 the length of the variable is different
('as.numeric(T.Grade)')
I encounter aproblem in the last program,and I try to settle this
problem though several ways ,just like:
asis(x, parms, label, name)
matrx(x, label, name)
pol(x, parms, label, name)
lsp(x, parms, label, name)
rcs(x, parms, label, name)
catg(x, parms, label, name)
scored(x, parms, label, name)
strat(x, label, name)
x1 %ia% x2
and i can not settle this problem
can you tell me how to settle this problem,thank you
turly
yours________________________________
---
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.