Roger Newson
>
> I think I have discovered a rarely-encountered bug/feature
> in the Stata
> -graph- command. (I use the very latest Stata 7 under
> Windows 98 SE.) It
> appears that, if there is only one observation in the
> selected sample, and
> -ylog- (or -xlog-) is specified, and the single y-value (or
> x-value) is in
> the open interval between one and zero, then -graph- complains of
> non-positive values. For instance, in the -auto- data, I
> might define a
> variable -gpm- by typing:
> . drop gpm
>
> . gene gpm=1/mpg
>
> . summ gpm
>
> Variable | Obs Mean Std. Dev. Min Max
> -------------+-----------------------------------------------------
> gpm | 74 .0501928 .0127986 .0243902 .0833333
>
>
> As you can see, -gpm- (gallons per mile) has values all in the open
> interval from 0 to 1. If I then use this variable in a
> -graph- command with
> one observation and the option -xlog- or -ylog-, then the
> result is as follows:
>
>
> . grap weight gpm in 1,xlog
> nonpositive values encountered
> r(411);
>
> . grap gpm weight in 1,ylog
> nonpositive values encountered
> r(411);
>
>
> I get similar results if I restrict the -graph- to any
> other observation.
> However, -graph- doesn't seem to mind if I type
>
> . grap gpm weight in 1,xlog
>
> . grap weight gpm in 1,ylog
>
> in which case graphs are drawn. Nor is there any problem if
> more than one
> observation is included, as follows:
>
> . grap weight gpm in 1/2,xlog
>
> . grap gpm weight in 1/2,ylog
>
> It therefore seems that the problem -graph- has is
> specifically with the
> non-positive logs in single-observation sample sets.
>
> The bug/feature I have found is, of course, rarely
> encountered in day to
> day statistical work, because very few people draw graphs with one
> observation. (I discovered it today in the course of
> writing a cert script
> for my -smileplot- package, downloadable from SSC, which
> plots P-values on
> a reverse log scale against the corresponding estimates.)
> However, in the
> interests of completeness, it would be ideal if this
> bug/feature was fixed,
> before it confuses too many more unwary cert script writers.
>
This certainly looks like a bug,
but Stata is only trying its best...
How does it arise? Here is my surmise.
When Stata is -- in effect -- asked to
plot a constant on one graph axis, how
it is supposed to choose upper and lower
limits for the axis -- if given no information to
determine that by -?la()- or -?sc()-?
The adhockery used is that Stata tries to add
1 to and subtract 1 from the constant.
However, whenever the lower limit
would be < 0 this clashes with any prescription
of a logarithmic scale.
Hence my guess is that this arises whenever
the constant is <= 1, not quite Roger's
diagnosis.
Nick
[email protected]
*
* 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/