

Dear all,
This is a simple probability problem. I want to know, How to generate a
normal distribution with mean=1, min=0.2 and max=0.8?
I know how the generate a normal distribution of mean = 1 and sd = 1 and
with 500 data point.
rnorm(n=500, m=1, sd=1)
But, I am confusing with how to generate a normal distribution with expected
min and max. I expect to hear your directions.
Thanks in advance.
Best,
JianFeng,
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Surely you must be joking, Mr. Jianfeng.

Ravi Varadhan, Ph.D.
Assistant Professor,
Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University
Ph. (410) 5022619
email: [hidden email]
Original Message
From: [hidden email] [mailto: [hidden email]] On Behalf Of Mao Jianfeng
Sent: Thursday, April 28, 2011 12:02 PM
To: [hidden email]
Subject: [R] how to generate a normal distribution with mean=1, min=0.2, max=0.8
Dear all,
This is a simple probability problem. I want to know, How to generate a
normal distribution with mean=1, min=0.2 and max=0.8?
I know how the generate a normal distribution of mean = 1 and sd = 1 and
with 500 data point.
rnorm(n=500, m=1, sd=1)
But, I am confusing with how to generate a normal distribution with expected
min and max. I expect to hear your directions.
Thanks in advance.
Best,
JianFeng,
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
> Surely you must be joking, Mr. Jianfeng.
>
Perhaps not joking and perhaps not with correct statistical
specification.
A truncated Normal could be simulated with:
set.seed(567)
x < rnorm(n=50000, m=1, sd=1)
xtrunc < x[x>=0.2 & x <=0.8]
require(logspline)
plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))

David.
> 
> Ravi Varadhan, Ph.D.
> Assistant Professor,
> Division of Geriatric Medicine and Gerontology School of Medicine
> Johns Hopkins University
>
> Ph. (410) 5022619
> email: [hidden email]
>
>
> Original Message
> From: [hidden email] [mailto: [hidden email]
> ] On Behalf Of Mao Jianfeng
> Sent: Thursday, April 28, 2011 12:02 PM
> To: [hidden email]
> Subject: [R] how to generate a normal distribution with mean=1,
> min=0.2, max=0.8
>
> Dear all,
>
> This is a simple probability problem. I want to know, How to
> generate a
> normal distribution with mean=1, min=0.2 and max=0.8?
>
> I know how the generate a normal distribution of mean = 1 and sd = 1
> and
> with 500 data point.
>
> rnorm(n=500, m=1, sd=1)
>
> But, I am confusing with how to generate a normal distribution with
> expected
> min and max. I expect to hear your directions.
>
> Thanks in advance.
>
> Best,
> JianFeng,
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
David Winsemius, MD
West Hartford, CT
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Thanks a lot for all your replies.
This may be a bad question. But, for me I was improved by asking this
question.
Thanks,
JianFeng,
2011/4/28 David Winsemius < [hidden email]>
>
> On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
>
> Surely you must be joking, Mr. Jianfeng.
>>
>>
> Perhaps not joking and perhaps not with correct statistical specification.
>
> A truncated Normal could be simulated with:
>
> set.seed(567)
> x < rnorm(n=50000, m=1, sd=1)
> xtrunc < x[x>=0.2 & x <=0.8]
> require(logspline)
> plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))
>
> 
> David.
>
>
> 
>> Ravi Varadhan, Ph.D.
>> Assistant Professor,
>> Division of Geriatric Medicine and Gerontology School of Medicine Johns
>> Hopkins University
>>
>> Ph. (410) 5022619
>> email: [hidden email]
>>
>>
>> Original Message
>> From: [hidden email] [mailto: [hidden email]]
>> On Behalf Of Mao Jianfeng
>> Sent: Thursday, April 28, 2011 12:02 PM
>> To: [hidden email]
>> Subject: [R] how to generate a normal distribution with mean=1, min=0.2,
>> max=0.8
>>
>> Dear all,
>>
>> This is a simple probability problem. I want to know, How to generate a
>> normal distribution with mean=1, min=0.2 and max=0.8?
>>
>> I know how the generate a normal distribution of mean = 1 and sd = 1 and
>> with 500 data point.
>>
>> rnorm(n=500, m=1, sd=1)
>>
>> But, I am confusing with how to generate a normal distribution with
>> expected
>> min and max. I expect to hear your directions.
>>
>> Thanks in advance.
>>
>> Best,
>> JianFeng,
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide
>> http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide
>> http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>>
>
> David Winsemius, MD
> West Hartford, CT
>
>

JianFeng, Mao
the Institute of Botany,
Chinese Academy of Botany,
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


That method (creating lots of samples and throwing most of them away) is
usually frowned upon :).
Try this: (I haven't, so it may well have syntax errors)
% n28< dnorm(seq(.2,.8,by=.001),mean=1,sd=1)
% x < sample(seq(.2,.8,by=.001), size=500,replace=TRUE, prob=n28)
And I guess in retrospect this will get really ugly if you want, say, a
sampling grid resolution of 1e6 or so.
Anyone know what's applicable from the "sampling" package?
Carl
<quote>__________________
From: David Winsemius <dwinsemius_at_comcast.net>
Date: Thu, 28 Apr 2011 13:06:21 0400
On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
> Surely you must be joking, Mr. Jianfeng.
>
Perhaps not joking and perhaps not with correct statistical specification.
A truncated Normal could be simulated with:
set.seed(567)
x < rnorm(n=50000, m=1, sd=1)
xtrunc < x[x>=0.2 & x <=0.8]
require(logspline)
plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))

David.
> Original Message
> From: rhelpbounces_at_rproject.org
[mailto:rhelpbounces_at_rproject.org
> ] On Behalf Of Mao Jianfeng
> Dear all,
>
> This is a simple probability problem. I want to know, How to
> generate a
> normal distribution with mean=1, min=0.2 and max=0.8?
>
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Good point. It would be absurdly inefficient if the upper and lower
limits on the interval of interest were, say, 0.2 and 0.201 instead of 0.2
and 0.8. Here's what I think is probably the best general approach:
Compute the CDF for the upper and lower limits of the interval and
generate uniform random numbers within that range of CDF values, then
compute the inverse CDF of those values. To be explicit:
n < 1000
L < .2
U < .8
p_L < pnorm(L)
p_U < pnorm(U)
x < qnorm(runif(n, p_L, p_U))
It is very fast and it always produces exactly the desired number ("n") of
random normal values.
Mike

Michael B. Miller, Ph.D.
Bioinformatics Specialist
Minnesota Center for Twin and Family Research
Department of Psychology
University of Minnesota
On Thu, 28 Apr 2011, Carl Witthoft wrote:
> That method (creating lots of samples and throwing most of them away) is
> usually frowned upon :).
>
> Try this: (I haven't, so it may well have syntax errors)
>
> % n28< dnorm(seq(.2,.8,by=.001),mean=1,sd=1)
>
> % x < sample(seq(.2,.8,by=.001), size=500,replace=TRUE, prob=n28)
>
> And I guess in retrospect this will get really ugly if you want, say, a
> sampling grid resolution of 1e6 or so.
>
> Anyone know what's applicable from the "sampling" package?
>
>
> Carl
>
> <quote>__________________
> From: David Winsemius <dwinsemius_at_comcast.net>
> Date: Thu, 28 Apr 2011 13:06:21 0400
>
> On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
>
>> Surely you must be joking, Mr. Jianfeng.
>>
>
> Perhaps not joking and perhaps not with correct statistical specification.
>
> A truncated Normal could be simulated with:
>
> set.seed(567)
> x < rnorm(n=50000, m=1, sd=1)
> xtrunc < x[x>=0.2 & x <=0.8]
> require(logspline)
> plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))
>
> 
> David.
>
>
>
>
>> Original Message
>
>> From: rhelpbounces_at_rproject.org
> [mailto:rhelpbounces_at_rproject.org
>
>> ] On Behalf Of Mao Jianfeng
>
>
>
>> Dear all,
>
>>
>
>> This is a simple probability problem. I want to know, How to
>
>> generate a
>
>> normal distribution with mean=1, min=0.2 and max=0.8?
>
>>
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


I just realized that I had misread what was wanted  the code I wrote was
for mean=0, sd=1, not for mean=1. So for mean=m, and sd=s, lower limit L
and upper limit U, this approach will work:
n < 1000
m < 1
s < 1
L < .2
U < .8
p_L < pnorm(L, mean=m, sd=s)
p_U < pnorm(U, mean=m, sd=s)
x < qnorm(runif(n, p_L, p_U), mean=m, sd=s)
Or it could be written on one line:
x < qnorm(runif(n, pnorm(L, mean=m, sd=s), pnorm(U, mean=m, sd=s)), mean=m, sd=s)
Mike
On Thu, 28 Apr 2011, Mike Miller wrote:
> Good point. It would be absurdly inefficient if the upper and lower
> limits on the interval of interest were, say, 0.2 and 0.201 instead of
> 0.2 and 0.8. Here's what I think is probably the best general approach:
>
> Compute the CDF for the upper and lower limits of the interval and
> generate uniform random numbers within that range of CDF values, then
> compute the inverse CDF of those values. To be explicit:
>
> n < 1000
> L < .2
> U < .8
>
> p_L < pnorm(L)
> p_U < pnorm(U)
>
> x < qnorm(runif(n, p_L, p_U))
>
> It is very fast and it always produces exactly the desired number ("n")
> of random normal values.
>
> Mike
>
> 
> Michael B. Miller, Ph.D.
> Bioinformatics Specialist
> Minnesota Center for Twin and Family Research
> Department of Psychology
> University of Minnesota
>
>
>
> On Thu, 28 Apr 2011, Carl Witthoft wrote:
>
>> That method (creating lots of samples and throwing most of them away) is
>> usually frowned upon :).
>>
>> Try this: (I haven't, so it may well have syntax errors)
>>
>> % n28< dnorm(seq(.2,.8,by=.001),mean=1,sd=1)
>>
>> % x < sample(seq(.2,.8,by=.001), size=500,replace=TRUE, prob=n28)
>>
>> And I guess in retrospect this will get really ugly if you want, say, a
>> sampling grid resolution of 1e6 or so.
>>
>> Anyone know what's applicable from the "sampling" package?
>>
>>
>> Carl
>>
>> <quote>__________________
>> From: David Winsemius <dwinsemius_at_comcast.net>
>> Date: Thu, 28 Apr 2011 13:06:21 0400
>>
>> On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
>>
>>> Surely you must be joking, Mr. Jianfeng.
>>>
>>
>> Perhaps not joking and perhaps not with correct statistical specification.
>>
>> A truncated Normal could be simulated with:
>>
>> set.seed(567)
>> x < rnorm(n=50000, m=1, sd=1)
>> xtrunc < x[x>=0.2 & x <=0.8]
>> require(logspline)
>> plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))
>>
>> 
>> David.
>>
>>
>>
>>
>>> Original Message
>>
>>> From: rhelpbounces_at_rproject.org
>> [mailto:rhelpbounces_at_rproject.org
>>
>>> ] On Behalf Of Mao Jianfeng
>>
>>
>>
>>> Dear all,
>>
>>>
>>
>>> This is a simple probability problem. I want to know, How to
>>
>>> generate a
>>
>>> normal distribution with mean=1, min=0.2 and max=0.8?
>>
>>>
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide
>> http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>>
>
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Well, but the original poster also refers to 0.2 and 0.8 as "expected
min and max", in which case we are back to a joke...
Giovanni
On Thu, 20110428 at 13:06 0400, David Winsemius wrote:
> On Apr 28, 2011, at 12:09 PM, Ravi Varadhan wrote:
>
> > Surely you must be joking, Mr. Jianfeng.
> >
>
> Perhaps not joking and perhaps not with correct statistical
> specification.
>
> A truncated Normal could be simulated with:
>
> set.seed(567)
> x < rnorm(n=50000, m=1, sd=1)
> xtrunc < x[x>=0.2 & x <=0.8]
> require(logspline)
> plot(logspline(xtrunc, lbound=0.2, ubound=0.8, nknots=7))
>
> 
> David.
>
> > 
> > Ravi Varadhan, Ph.D.
> > Assistant Professor,
> > Division of Geriatric Medicine and Gerontology School of Medicine
> > Johns Hopkins University
> >
> > Ph. (410) 5022619
> > email: [hidden email]
> >
> >
> > Original Message
> > From:
> [hidden email] [mailto: [hidden email]
> > ] On Behalf Of Mao Jianfeng
> > Sent: Thursday, April 28, 2011 12:02 PM
> > To: [hidden email]
> > Subject: [R] how to generate a normal distribution with mean=1,
> > min=0.2, max=0.8
> >
> > Dear all,
> >
> > This is a simple probability problem. I want to know, How to
> > generate a
> > normal distribution with mean=1, min=0.2 and max=0.8?
> >
> > I know how the generate a normal distribution of mean = 1 and sd =
> 1
> > and
> > with 500 data point.
> >
> > rnorm(n=500, m=1, sd=1)
> >
> > But, I am confusing with how to generate a normal distribution
> with
> > expected
> > min and max. I expect to hear your directions.
> >
> > Thanks in advance.
> >
> > Best,
> > JianFeng,
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/rhelp> > PLEASE do read the posting guide
> http://www.Rproject.org/postingguide.html> > and provide commented, minimal, selfcontained, reproducible code.
> >
> > ______________________________________________
> > [hidden email] mailing list
> > https://stat.ethz.ch/mailman/listinfo/rhelp> > PLEASE do read the posting guide
> http://www.Rproject.org/postingguide.html> > and provide commented, minimal, selfcontained, reproducible code.
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide
> http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
>

Giovanni Petris < [hidden email]>
Associate Professor
Department of Mathematical Sciences
University of Arkansas  Fayetteville, AR 72701
Ph: (479) 5756324, 5758630 (fax)
http://definetti.uark.edu/~gpetris/______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Fri, 29 Apr 2011, Giovanni Petris wrote:
> Well, but the original poster also refers to 0.2 and 0.8 as "expected
> min and max", in which case we are back to a joke...
Well, he is a lot better with English than I am with Mandarin. He seemed
to like the truncated normal answers, so we'll let those be his answers.
It is possible to choose parameters for a normal distribution with 500
observations such that the expected value of the maximum is .8 and the
expected value of the minimum is .2. Obviously, the mean would be .5, not
1, but what would the variance then have to be to provide the correct
expected max and min? That's another legitimate question.
Mike
>>> Original Message
>>> From: [hidden email] [mailto: [hidden email]] On Behalf Of Mao Jianfeng
>>> Sent: Thursday, April 28, 2011 12:02 PM
>>> To: [hidden email]
>>> Subject: [R] how to generate a normal distribution with mean=1, min=0.2, max=0.8
>>>
>>> Dear all,
>>>
>>> This is a simple probability problem. I want to know, How to generate
>>> a normal distribution with mean=1, min=0.2 and max=0.8?
>>>
>>> I know how the generate a normal distribution of mean = 1 and sd = 1
>>> and with 500 data point.
>>>
>>> rnorm(n=500, m=1, sd=1)
>>>
>>> But, I am confusing with how to generate a normal distribution with
>>> expected min and max. I expect to hear your directions.
>>>
>>> Thanks in advance.
>>>
>>> Best,
>>> JianFeng,
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Apr 29, 2011, at 1:29 PM, Mike Miller wrote:
> On Fri, 29 Apr 2011, Giovanni Petris wrote:
>
>> Well, but the original poster also refers to 0.2 and 0.8 as
>> "expected min and max", in which case we are back to a joke...
>
> Well, he is a lot better with English than I am with Mandarin. He
> seemed to like the truncated normal answers, so we'll let those be
> his answers.
>
> It is possible to choose parameters for a normal distribution with
> 500 observations such that the expected value of the maximum is .8
> and the expected value of the minimum is .2. Obviously, the mean
> would be .5, not 1, but what would the variance then have to be to
> provide the correct expected max and min? That's another legitimate
> question.
You would need to specify an N since the expected first and last order
statistic would decrease/increase with increasing N.

David.
>
> Mike
>
>
>>>> Original Message
>>>> From: [hidden email] [mailto: [hidden email]
>>>> ] On Behalf Of Mao Jianfeng
>>>> Sent: Thursday, April 28, 2011 12:02 PM
>>>> To: [hidden email]
>>>> Subject: [R] how to generate a normal distribution with mean=1,
>>>> min=0.2, max=0.8
>>>>
>>>> Dear all,
>>>>
>>>> This is a simple probability problem. I want to know, How to
>>>> generate a normal distribution with mean=1, min=0.2 and max=0.8?
>>>>
>>>> I know how the generate a normal distribution of mean = 1 and sd
>>>> = 1 and with 500 data point.
>>>>
>>>> rnorm(n=500, m=1, sd=1)
>>>>
>>>> But, I am confusing with how to generate a normal distribution
>>>> with expected min and max. I expect to hear your directions.
>>>>
>>>> Thanks in advance.
>>>>
>>>> Best,
>>>> JianFeng,
David Winsemius, MD
West Hartford, CT
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Fri, 29 Apr 2011, David Winsemius wrote:
> On Apr 29, 2011, at 1:29 PM, Mike Miller wrote:
>
>> On Fri, 29 Apr 2011, Giovanni Petris wrote:
>>
>>> Well, but the original poster also refers to 0.2 and 0.8 as "expected min
>>> and max", in which case we are back to a joke...
>>
>> Well, he is a lot better with English than I am with Mandarin. He seemed
>> to like the truncated normal answers, so we'll let those be his answers.
>>
>> It is possible to choose parameters for a normal distribution with 500
>> observations such that the expected value of the maximum is .8 and the
>> expected value of the minimum is .2. Obviously, the mean would be .5,
>> not 1, but what would the variance then have to be to provide the
>> correct expected max and min? That's another legitimate question.
>
> You would need to specify an N since the expected first and last order
> statistic would decrease/increase with increasing N.
Right  I chose N=500, as did the OP. I think the order statistics for
the normal are pretty complex, but it wouldn't be hard to use the density
for order statistics for the uniform to compute the appropriate values for
a standard normal, then rescale.
http://en.wikipedia.org/wiki/Order_statistic#The_order_statistics_of_the_uniform_distributionYou'd have to multiply the beta density times the inverse normal cdf and
get the weighted average for a set of points. It doesn't sound terribly
difficult but I don't want to do it! ;)
Mike
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


This post has NOT been accepted by the mailing list yet.
This post was updated on .
Ravi Varadhan wrote
Surely you must be joking, Mr. Jianfeng.

Ravi Varadhan, Ph.D.
Assistant Professor,
Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University
Ph. (410) 5022619
email: [hidden email]
Surely as an Assistant Professor in the Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University you have more information to offer on the subject to help answer the question, Dr. Varadhan.
Elliot

