Ask Your Question
0

integers following Normal distribution

asked 12 years ago

anonymous user

Anonymous

Hello,

how can I produce positive integers, say in (1,n), which follow the normal distribution with parameters (m,sigma).

Thanks.

Preview: (hide)

2 Answers

Sort by » oldest newest most voted
0

answered 12 years ago

Jesustc gravatar image

updated 12 years ago

I think it is pretty self explanatory:

# Sample size (not counting negatives!)
sample_size = 10000

# Parameters of the distribution
mean = 10
sigma = 10
dist = RealDistribution('gaussian', sigma)

# Getting the elements (notice the 'mean' in 'event'!)
sample = []
while len(sample) < sample_size :
    event = round(mean + dist.get_random_element())
    if event >= 0 :
        sample.append(event)

# Getting the frequencies and plotting
sample_range = range(min(sample),1+max(sample))
frequencies = [sample.count(i) for i in sample_range]
list_plot(zip(sample_range,frequencies),gridlines=[[mean,mean-sigma,mean+sigma],[]])
Preview: (hide)
link

Comments

Thank you for your answer. If mean is integer then it is ok, you get integers following the normal distribution. If mean is not integer then the sampling set is not an integer vector.

Helen gravatar imageHelen ( 12 years ago )

That's true, sorry! I edited and now it should be fine: "event = round(mean + ...)". Cheers!

Jesustc gravatar imageJesustc ( 12 years ago )
0

answered 12 years ago

ppurka gravatar image

You could use the binomial distribution to approximate a normal distribution with only integer entries (because of the Central Limit Theorem). You will have to relate the mean of the binomial to the mean of the normal distribution. However, you can not get both the mean to be m and variance to be sigma exactly for any m and sigma, since for the binomial distribution they are closely related.

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 12 years ago

Seen: 1,334 times

Last updated: Dec 22 '12