14
$\begingroup$

If I use a RNG to generate a set of standard normal draws $(Z_i)$, anyone can get samples from a normal distribution with $(\mu, \sigma^2)$ of their choosing via $X_i=Z_i.\sigma+\mu$. This doesn't require them to do any random number generating themselves (i.e. they don't need a RNG)

Is the same thing possible for Poisson distributions? i.e. If I generate a set of Poisson draws with $\lambda=1$ (or some other $\lambda$), is it possible for another person to get Poisson samples with whatever $\lambda$ they want, without having to use an RNG?

(I realise you could use the normal approximation $N(\lambda,\sqrt\lambda)$ if $\lambda$ is large, but what if this isn't the case?)

$\endgroup$
2
  • 1
    $\begingroup$ If you are inclined to sample initially from an $Exp(1)$, it is possible to get $Poisson(\lambda)$ for an arbitrary $\lambda$ without resampling. $\endgroup$ Commented Jul 7, 2021 at 12:25
  • 1
    $\begingroup$ @LucasPrates As soon as you have one single copy of Exp(1), then without any additional randomness you can derive from it any distribution you like - in fact, infinitely many independent copies from that distribution! $\endgroup$ Commented Jul 8, 2021 at 9:47

3 Answers 3

17
$\begingroup$

No, that is not possible.

For instance, assume we want to "transform" Poisson realizations with $\lambda=1$ to Poisson samples with $\lambda'=5$. The PMF at $0$ for $\lambda=1$ is $\frac{1}{e}\approx 0.368$, so about 36.8% of the original samples will be $0$. But the cumulative distribution function for $\lambda'=5$ is only $0.265$ for $x=3$. That is, we would need somehow map an original observation of $0$ to transformed observations $0,1,2,3,4$ - and this in a way that satisfies the PMF for the new $\lambda'$. This is simply not possible without a RNG.

The same holds for "transformations" between any two discrete distributions (except of course for trivial cases).

$\endgroup$
11
  • $\begingroup$ Thanks @Stephen. If I instead created draws from Uniform U(0,1), could I then generate Poisson draws from that? (presumably that gets messy, though) $\endgroup$
    – Mich55
    Commented Jul 7, 2021 at 11:46
  • 2
    $\begingroup$ @StephanKolassa - respectfully disagreeing. See my view in alternative answer. $\endgroup$
    – krkeane
    Commented Jul 7, 2021 at 11:55
  • 7
    $\begingroup$ Take $5$ independent Poisson realizations with $λ=1$ and add them together to give $1$ Poisson sample with $λ′=5$. $\endgroup$
    – Henry
    Commented Jul 8, 2021 at 0:22
  • 3
    $\begingroup$ @Alexis: see Glen_b's comments. The problem is that the Probability Integral Transform of a Poisson is a step function. So you can't invert it. In a similar vein, a number of people discuss a randomized PIT where you sample randomly within each step - but then again, you need an RNG, and that is exactly what the OP excludes. $\endgroup$ Commented Jul 8, 2021 at 6:37
  • 1
    $\begingroup$ You can (at least approximately) go from a sufficiently-large-mean Poisson to a small mean Poisson, by cumulating probabilities up until you get as close as possible (in whatever sense you need) to the given probabilities on the target distribution. This is fairly easy by working from the cdfs (and does correspond to how your formula works, possibly moved a little to optimize whatever criterion was used). But if the original distribution's parameter is not a good deal larger than the target's, you can't get a good approximation. $\endgroup$
    – Glen_b
    Commented Jul 13, 2021 at 1:14
11
$\begingroup$

If you have a lot of independent Poisson values when $\lambda=1$ then is possible to construct independent Poisson values when $\lambda^\prime=n$ for any positive integer $n$ by adding $n$ of your original values together

To take Stephan Kolassa's example with $n=5$, by simulating $500000$ cases of $\lambda=1$ to generate $100000$ cases of $\lambda^\prime=5$, and then comparing to the actual distribution in red, you could use this R code:

set.seed(2021)
n <- 5 
samplesize <- 10^5
x1 <- rpois(n * samplesize, lambda=1)
xn <- rowSums(matrix(x1, ncol=n))
table(xn)
# xn
#    0     1     2     3     4     5     6     7     8     9    10    11    12 
#  693  3403  8359 14001 17540 17385 14758 10594  6452  3642  1724   869   367 
#   13    14    15    16    17    18 
#  134    54    14     9     1     1 
plot(table(xn) / samplesize)
m <- min(xn):max(xn)
points(m, dpois(m, lambda=n), col="red")

enter image description here

which is pretty close for a simulation

$\endgroup$
1
  • 3
    $\begingroup$ +1, it's a good idea. Unfortunately, that (a) will thin out our original sample by a factor of 5 (I don't see whether that would be a problem for the OP), and (b) it only works if $\lambda'=k\lambda$ for $k\in\mathbb{N}$. There is no way to get from $\lambda=1$ to $\lambda=3.5$, or even in the opposite direction, from $\lambda=5$ to $\lambda'=1$. $\endgroup$ Commented Jul 8, 2021 at 6:38
4
$\begingroup$

To clarify, $\lambda=\operatorname{E}(X)=\operatorname{Var}(X)$. The normal approximation is $N(\mu=\lambda,\sigma^2=\lambda)$ when $\lambda$ is "large".

$\lambda$ is often interpreted as an event arrival rate.

If you construct pseudorandom arrival times for the rate $\lambda_1 = \frac{1}{\text{1 hour}}$; you could "reuse" the constructed arrival times for a slower arrival process $\lambda_{24} = \frac{1}{\text{24 hour}}$ by scaling the pseudorandom intervals.

Defining $T_0$ as the interval start time, your arrival times for the faster process would stretch: $$t_{i,24} = 24 ~(t_{i,1}-T_0)\quad .$$

In general, $$t_{i,\lambda_2} = (t_{i,\lambda_1} - T_0)~ \frac{\lambda_1}{\lambda_2}\quad.$$

$\endgroup$
6
  • 1
    $\begingroup$ This is a good idea. You can indeed generate a Poisson with arbitrary $\lambda$ sampling from $exp(1)$, multiplying them by $\lambda$, and counting the number of cumulative times that are under $1$. Your answer might be more interesting if you explained more completely the Poisson Process. $\endgroup$ Commented Jul 7, 2021 at 12:22
  • 6
    $\begingroup$ I don't quite see how this would address the problem I describe in my answer. Can you explain what your proposed approach would do with input data rpois(100,1) to obtain a $\text{Pois}(5)$ distributed sample? $\endgroup$ Commented Jul 7, 2021 at 12:33
  • $\begingroup$ Exponentially distributed arrivals yield Poisson counts. I was suggesting rescaling the arrival times and recounting arrivals in an interval. @LucasPrates is also referring to an exponential distribution with $\lambda=1$, R function rexp whereas you are referring to rpois. Output from rpois is a discretized summary of the richer continuous output of rexp (not necessarily coded that way under the covers). So, I agree working with the discretized summaries may be "too late" to scale $\lambda$. It is probably more appropriate to generate the variates at the desired scale $\lambda$. $\endgroup$
    – krkeane
    Commented Jul 7, 2021 at 13:12
  • 4
    $\begingroup$ Well, the OP explicitly wants to transform Poisson variates "from one Poisson parameter to another". Yes, Poisson counts can come from exponentially distributed waiting times, but often enough, all we have is the counts themselves. (For instance, I do retail forecasting. Sales acts may indeed come from exponential arrivals, but all I have to work with is daily aggregates, which could conceivably be modeled as Poisson. We don't have the arrival times themselves, because the sheer data volume would be prohibitive.) To be honest, I think you are answering a different question than the one posed. $\endgroup$ Commented Jul 7, 2021 at 14:16
  • 8
    $\begingroup$ The question explicitly asks about "Poisson distributions," rather than Poisson processes, so I have to agree with @Stephan that this answer doesn't address the question. $\endgroup$
    – whuber
    Commented Jul 7, 2021 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.