How do you generate data from the multivariate Marshall Olkin distributed data?

I recall having been told that to generated $p$ variate Marshall Olkin distribution, one proceeds as follow:

For $p=2$, generate $X_1,X_2,X_3\sim exp(\lambda)$, then $(Y_1,Y_2)\sim MMO$ where $Y_1=\max(X_1,X_2)$ and $Y_2=\max(X_1,X_3)$.

But I must have gotten the definition wrong because this doesn't look like a 'MMO' (because there are many observations along $Y_1=Y_2$, which I don't recall was the case):

library(matrixStats)
n<-100
p<-2
a1<-matrix(rexp(n*(p+1),2),n,p+1)
a2<-cbind(rowMaxs(a1[,1:2]),rowMaxs(a1[,c(1,3)]))
plot(a2)


Can anyone help with the algorithm for generating MMO's?

• In your code it looks like you're saving $\max(X_1,X_2)$ and $\max(X_2,X_3)$, which is different from what you wrote above that (you said to save $\max(X_1,X_3)$, not $\max(X_2,X_3)$). I'm not sure if this accounts for the difference. It would also help if you gave the definition of the Marshall Olking distribution. – Macro Apr 26 '12 at 21:06
• that's the problem: i don't have a definition, i just asked a guy a long time ago – user603 Apr 26 '12 at 21:10
• The Marshall-Olkin bivariate distribution is not absolutely continuous, this is $P[Y_1=Y_2]>0$, therefore the result you are observing is natural. – user10525 Apr 26 '12 at 21:21

The Marshall-Olkin bivariate distribution is not absolutely continuous because ${\mathbb P}[Y_1=Y_2]>0$. Therefore, in a simulation it is natural to observe values along $Y_1=Y_2$.