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

 From Reza C Daniels To statalist@hsphsun2.harvard.edu 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.

Reza

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.
Nick n.j.cox@durham.ac.uk
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

the skewed ~s

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:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```
```*
*   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/
```