Hi, I am trying to use dunif and runif however, I have two problems: if I do dunif(1:10, min=1, max=10) I get 10 values, which summed give me 1.1111 I understand that the probability is computed as f(x) = 1 / (max-min) but in this case it looks wrong: I have 10 values, each one equiprobable, and the probability for each one should be 0.1 and not 0.11111 (which is, consistently with the definition, 1/9) It looks like one of the extremes is not considered in the computation of the probability, but then it's assigned a probability anyway. Similar problem with punif. if I do punif(1, min=1, max=10) I get 0 as result, as if the lower extreme is not considered, which is not consistent with the description where min <= x <= max If the lower extreme is not considered because cdf(x) = p(X<x) {and not p(X<=x)} the problem stands in p(X<11) which should be the sum of everything. ( P(1) + P(2) + ... + P(10) ) What is happening here?
In short, the unif() distribution corresponds to the continuous uniform distribution, not the discrete. Longer: dDIST() doesn't give a pmf so summing it isn't what you are looking for: it gives a pdf. For punif() consider P\{X <= 1\} when X is distributed on [1, 10]. Clearly this has probability zero because it can only occur for one out of uncountably many values -- though this notion should be made more precise using a little bit of measure theory. Michael On Mon, Nov 7, 2011 at 11:49 AM, michele donato <michele.donato at wayne.edu> wrote:> Hi, > I am trying to use dunif and runif > however, I have two problems: > if I do > > dunif(1:10, min=1, max=10) > > I get 10 values, which summed give me 1.1111 > I understand that the probability is computed as f(x) = 1 / (max-min) > but in this case it looks wrong: I have 10 values, each one > equiprobable, and the probability for each one should be 0.1 and not > 0.11111 (which is, consistently with the definition, 1/9) > > It looks like one of the extremes is not considered in the computation > of the probability, but then it's assigned a probability anyway. > > Similar problem with punif. > > if I do > punif(1, min=1, max=10) > I get 0 as result, as if the lower extreme is not considered, which is > not consistent with the description where min <= x <= max > If the lower extreme is not considered because cdf(x) = p(X<x) ? {and > not p(X<=x)} the problem stands in p(X<11) which should be the sum of > everything. ( P(1) + P(2) + ... + P(10) ) > > What is happening here? > > ______________________________________________ > 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. >
On Mon, Nov 7, 2011 at 8:49 AM, michele donato <michele.donato at wayne.edu> wrote:> Hi, > I am trying to use dunif and runif > however, I have two problems: > if I do > > dunif(1:10, min=1, max=10) > > I get 10 values, which summed give me 1.1111 > I understand that the probability is computed as f(x) = 1 / (max-min) > but in this case it looks wrong: I have 10 values, each one > equiprobable, and the probability for each one should be 0.1 and not > 0.11111 (which is, consistently with the definition, 1/9) > > It looks like one of the extremes is not considered in the computation > of the probability, but then it's assigned a probability anyway. > > Similar problem with punif. > > if I do > punif(1, min=1, max=10) > I get 0 as result, as if the lower extreme is not considered, which is > not consistent with the description where min <= x <= max > If the lower extreme is not considered because cdf(x) = p(X<x) ? {and > not p(X<=x)} the problem stands in p(X<11) which should be the sum of > everything. ( P(1) + P(2) + ... + P(10) ) > > What is happening here?The uniform distribution is continuous. Your interval has length 9 (10-1 = 9), so the density 1/9. Multiplied by 10 it gives you your answer. Same for the cumulative probability distribution (punif) - it is zero at x=1 because that's where your interval starts. Peter