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

Re: st: RE: Generating skewed distributions on closed intervals

From   Reza C Daniels <>
Subject   Re: st: RE: Generating skewed distributions on closed intervals
Date   Thu, 29 Sep 2005 10:58:19 +0200

Thanks Nick,

There is a literature on this problem that I am aware of. I'm just having trouble with the code in Stata to generate my required results.


Nick Cox wrote:

This really depends to a large degree on the associated
scientific and practical problem, which is not clear
to me. But in principle I strongly support the view implied by Maarten Buis: only bounded distributions are appropriate for finite intervals. What's more their behaviour at their extremes should surely be compatible, without jumps and ideally without kinks too, i.e. [10,20] should join [20,30].
Whatever your problem is, it is difficult to believe
that there is not a literature on it, e.g. in demography, actuarial science, population ecology.
Reza C Daniels

I've found a solution to the uniform distribution in the -egen var=seq() from() to()- command.

Is it not simpler just to try and transform this into the three appropriate normal and skewed distributions than to use the -betaden- set of commands? If so, how? If not, I revert to below.

I'm not sure I'm getting the intuition behind the code of the beta density functions -betaden- and -nbetaden-. My reading
suggests using

-betaden- for the symmetric ~ about 25, and -nbetaden- for
the skewed ~s

about 22.5 & 27.5.

However, when I plug in the numbers I get a single result.
Clearly I'm

doing something very wrong. Does this mean I need to
calculate a & b &

lambda (shape paramaters in betaden commands) first somehow?

Maarten Buis

you can have a look at the beta distribution
a normal distribution will never stay within an interval (except [minus infinity, plus infinity])

Reza C Daniels

I have a categorical variable for agegroup in 10 year
bands (e.g. 20-30

years old). I would like to convert the categorical age
variable to a

continuous variable by imposing various distributions on
the range of

each interval. I then want to conduct sensitivity analysis to my
distributional assumptions.

For example: let a = the lower limit and b = upper limit
for each age

group (e.g. a= 20 years old, b= 30 years old). Keeping the [20,30]
example, the four distributions I want to examine are:

1) Uniformly distributed over [20,30].
2) Normally distributed on the closed interval [20,30],
with mode at 25.

3) Positively skewed on the closed interval [20,30], with
mode at 22.5.

4) Negatively skewed on the closed interval [20,30], with
mode at 27.5.

I have tried various commands (including -drawnorm-), but
am unable to

control my variance to ensure the tails are bounded by
[20,30] in the

example above (generically, the interval [a,b]).

Any suggestions on the code for all four distributions
above would be

very much appreciated.

*   For searches and help try:
*   For searches and help try:

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