[R] Creating a specific skewed distribution

Ravi Varadhan RVaradhan at jhmi.edu
Wed Jun 10 17:52:59 CEST 2009


Here is one way to solve the equation:

	require(BB)

	f <- function(x) (2*gamma(1+1/x))^x + log (0.10)
 
	ans <- dfsane(par=1, fn=f)
 
	ans

Ravi.
 


----------------------------------------------------------------------------
-------

Ravi Varadhan, Ph.D.

Assistant Professor, The Center on Aging and Health

Division of Geriatric Medicine and Gerontology 

Johns Hopkins University

Ph: (410) 502-2619

Fax: (410) 614-9625

Email: rvaradhan at jhmi.edu

Webpage:
http://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.h
tml

 

----------------------------------------------------------------------------
--------


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of David Arnold
Sent: Wednesday, June 10, 2009 11:25 AM
To: Etienne B. Racine
Cc: r-help at r-project.org
Subject: Re: [R] Creating a specific skewed distribution

Etienne et al,

This is exactly what I need. So I gave it an algebraic try and set:

Mean=30=b*gamma(1+1/a),

solve for b and substitute into F(60)=0.10. After a little algebra, this
left me with

[ 2*gamma(1+1/a) ]^a = -ln(0.10)

Now, I don't think this has a closed form solution, at least not one I have
the skill to find. So, how would I solve this using R?

David.

On Jun 10, 2009, at 7:09 AM, Etienne B. Racine wrote:

>
> You could also make some algebra. e.g. :
>
> ?rweibull
>
> gives the formula of the mean and of the cumulative distribution 
> function in the Details section. So using your known parameters (i.e. 
> mean=30 and p(10)=.10, i.e. cumulative function(10) =.90), I think it 
> is sufficient to determine the exact values you want shape and scale 
> to be.
>
> And you can do that with any probability function (some easier the
> calculate) as most (if not all) have these equations. Of course, it 
> might be more pleasing to play with the parameters.
>
> Etienne
>
>
> Mike Lawrence wrote:
>>
>> With skewed unimodal distributions, the mode can't equal the mean, so 
>> assuming you want the mean to be around 30, I find that a weibull 
>> function can get close to what you want:
>>
>>> mean(rweibull(1e5,1.5,33))
>> [1] 29.77781
>>> pweibull(60,1.5,33)
>> [1] 0.9138475
>>
>> I'm sure you can play with the parameters to try to get even closer 
>> to what you want.
>>
>> On Wed, Jun 10, 2009 at 2:48 AM, David 
>> Arnold<dwarnold45 at suddenlink.net
>> >
>> wrote:
>>> All,
>>> Can someone help me create a skewed distribution, mean = 30, with 
>>> probability of selecting a random number from the distribution 
>>> greater than or equal 60 equal to 10%?
>>>
>>> I need the probability density function to equal zero at zero, and 
>>> have  a maximum height at or near 30.
>>>
>>> Is this possible?
>>>
>>> And if it is possible, how can I adjust the distribution so that the 
>>> probability of selecting a random number greater than or equal to 60 
>>> is p.
>>>
>>> Thanks. No idea how to start.
>>>
>>> David
>>>
>>>
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at 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.
>>>
>>
>>
>>
>> --
>> Mike Lawrence
>> Graduate Student
>> Department of Psychology
>> Dalhousie University
>>
>> Looking to arrange a meeting? Check my public calendar:
>> http://tr.im/mikes_public_calendar
>>
>> ~ Certainty is folly... I think. ~
>>
>> ______________________________________________
>> R-help at 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.
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/Creating-a-specific-skewed-distribution-tp239561
> 14p23963140.html Sent from the R help mailing list archive at 
> Nabble.com.
>
> ______________________________________________
> R-help at 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.

______________________________________________
R-help at 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.




More information about the R-help mailing list