Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Transformed values in logistic regression


From   Roger Newson <roger.newson@kcl.ac.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Transformed values in logistic regression
Date   Fri, 27 Aug 2004 12:41:21 +0100

At 04:27 27/08/2004, you wrote:
Dear all,

Please pardon this non-Stata question, but I have not
found a satisfactory resolution.

We recently submitted a manuscript for publication and
received a favorable reply, except that one of the
reviewers criticized a transformation that we
performed on a continuous variable prior to fitting a
logistic regression model.

Specifically we were interested in modeling
case-control status as a function of several patient
covariates including serum creatinine which in our
data ranges from 0.11 to 1.98.
Because of skewness and to make the odds ratio
independent of the units measurement, we decided to
log-transform the creatinine values before entering
them into our logistic model. However the reviewer
wrote "Using a log-transform for creatine is absurd
because a 1-unit increase in ln(x) is equivalent to
increasing x by a factor of 2.718 which is in the
realm of impossibility"

It is possible for a creatinine ratio to be exactly e (and therefore approximately 2.718). However, it is probably impossible to explain to a non-mathematician. I personally transform the X-variate to centred
binary logs. If -creat- is creatinine, and I think a good central creatinine value for healthy people is 1.2, then my do-file might contain lines like

gene l2creat=(log(creat)-log(1.2))/log(2)
lab var l2creat "Log_2(Creatinine/1.2)"



I would then enter -l2creat- into my logistic regression model as an X-variate, and compute a confidence interval for a per-doubling odds ratio, which is a scaling of the odds due to a doubling of creatinine.

The centering is done because usually, in a logistic regression, I want to see the baseline odds, which is in this case the odds of an event if creatinine is 1.2 units. To do this, I would type something like

gene byte baseline=1
lab var baseline "Baseline odds"
logit y baseline l2creat, noconst or robust

The parameter for -baseline- is the baseline odds, and the parameter for -l2creat- is the per-doubling odds ratio.

I hope this helps.

Roger



--
Roger Newson
Lecturer in Medical Statistics
Department of Public Health Sciences
King's College London
5th Floor, Capital House
42 Weston Street
London SE1 3QD
United Kingdom

Tel: 020 7848 6648 International +44 20 7848 6648
Fax: 020 7848 6620 International +44 20 7848 6620
or 020 7848 6605 International +44 20 7848 6605
Email: roger.newson@kcl.ac.uk
Website: http://www.kcl-phs.org.uk/rogernewson

Opinions expressed are those of the author, not the institution.

*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/




© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index