Archive for height

Bertand’s paradox [R details]

Posted in Books, R, Statistics with tags , , , , , , , on March 20, 2011 by xi'an

Some may have had reservations about the “randomness” of the straws I plotted to illustrate Bertrand’s paradox. As they were all going North-West/South-East. I had actually made an inversion between cbind and rbind in the R code, which explained for this non-random orientation. Above is the corrected version, which sounds “more random” indeed. (And using wheat as the proper, if weak, colour!) The outcome of a probability of 1/2 has not changed, of course. Here is the R code as well:

[sourcecode language=”r” gutter=”false”]

lacorde=rep(0,10^3)
plot(0,0,type="n",xlim=c(-2,2),ylim=c(-2,2))

for (t in 1:10^3){

#distance from O to chord
dchord=10

while (dchord>1){
#Generate "random" straw in large box till it crosses unit circle

a=runif(2,-10,10)
b=runif(2,-10,10)

#endpoints outside the circle
if ((sum(a^2)>1)&&(sum(b^2)>1)){

theta=abs(acos(t(b-a)%*%a/sqrt(sum((b-a)^2)*sum(a^2))))
theta=theta%%pi
thetb=abs(acos(t(a-b)%*%b/sqrt(sum((b-a)^2)*sum(b^2))))
thetb=thetb%%pi

#chord inside
if (max(abs(theta),abs(thetb))<pi/2)
dchord=abs(sin(theta))*sqrt(sum(a^2))
}
}

lacorde[t]=2*sqrt(1-dchord)
if (runif(1)<.1) lines(rbind(a,b),col="wheat")
}

lecercle=cbind(sin(seq(0,2*pi,le=100)),cos(seq(0,2*pi,le=100)))
lines(lecercle,col="sienna")

[/sourcecode]

As a more relevant final remark, I came to the conclusion (this morning while running) that the probability of this event can be anything between 0 and 1, rather than the three traditional 1/4, 1/3 and 1/2. Indeed, for any distribution of the “random” straws, hence for any distribution on the chord length L, a random draw can be expressed as L=F⁻¹(U), where U is uniform. Therefore, this draw is also an acceptable transform of a uniform draw, just like Bertrand’s three solutions.