What’s familiar to you? We’ve implemented pretty much every model in Gelman and Hill’s regression book, almost all the BUGS example models, and many more as examples in the manual.

]]>The original post this was attached to got devoured by the spam filter. Hopefully Andrew can resurrect it.

]]>mean se_mean sd 2.50% 25% 50% 75% 97.50% n_eff Rhat catalin 62.86 0.04 1.14 60.77 62.1 62.83 63.61 65.17 810 1 phillip 67.96 0.03 0.93 66.19 67.33 67.97 68.58 69.75 1019 1 johnLee 72.91 0.05 1.35 70.27 72 72.88 73.84 75.54 880 1 pcHeel 2.35 0.01 0.39 1.59 2.09 2.34 2.61 3.1 1170 1 pclHeel 2.41 0.01 0.4 1.63 2.15 2.42 2.67 3.18 1319 1 jcHeel 2.13 0.01 0.38 1.38 1.88 2.12 2.38 2.88 1374 1 jcError 1.57 0.02 0.94 -0.25 0.9 1.58 2.19 3.42 2000 1 pcError -0.69 0.02 0.91 -2.44 -1.3 -0.66 -0.07 1.12 1532 1 pclError 0.45 0.03 0.87 -1.28 -0.15 0.43 1.05 2.19 1036 1 lp__ -15.56 0.06 1.7 -19.69 -16.46 -15.25 -14.33 -13.15 730 1

[ed. added <pre> and </pre> tags]

]]>It looks like he’s 72.91 inches tall with a SD of 1.35 inches. He looses about an inch if you assume that the women are not wearing heels.

I coded up a simple Bayesian model of this problem. I assumed that a US, adult male’s height had a normal distribution with mean 70 inch, SD = 2.75, and an adult female’s height had distribution with mean: 64 inches, SD = .39. These values were estimated from wikipedia [1] and a brief note [2].

It’s hard to find good information about the distribution of the size of heels. Based on [3], I assumed that each woman wore a shoe with a normally distributed heel of N(2.36, .39), and that the men were not wearing shoes with noticeable heels.

We have six latent variables we are trying to estimate, the heights of Jon Lee Anderson, Catalina Garcia, Phillipe Petit, and the heel-size of Catalina Garcia in her picture with Jon Lee Anderson, and in the picture of Phillipe Petit, and the heel size of Claire Danes in her picture with Phillipe Petit.

We have four data points, the height of Claire, the difference of heights between Cataline Garcia and Jon Lee Anderson, Cataline Garcia and Phillipe Petit, and Claire Danes and Phillipe Petit. I assumed that Claire’s height was known perfectly, but the height differences were distributed as N(0, 1) — 1 inch felt about right to me.

This led to the following Stan Model:

height_code <- '

data {

real claire;

real johnLeeMinusCatalina;

real phillipeMinusCatalina;

real phillipeMinusClaire;

}

parameters {

real catalina;

real phillipe;

real johnLee;

real pcHeel;

real pclHeel;

real jcHeel;

}

transformed parameters {

real jcError;

real pcError;

real pclError;

jcError <- johnLeeMinusCatalina-(johnLee-catalina-jcHeel);

pcError <- phillipeMinusCatalina-(phillipe-catalina-pclHeel);

pclError <- phillipeMinusClaire-(phillipe-claire-pclHeel);

}

model {

jcError ~ normal(0, 1);

pcError ~ normal(0, 1);

pclError ~ normal(0, 1);

catalina ~ normal(70, 2.75);

phillipe ~ normal(70, 2.76);

johnLee ~ normal(64, 2.3622);

jcHeel ~ normal(2.36, .39);

pcHeel ~ normal(2.36, .39);

pclHeel ~ normal(2.36, .39);

}

'

height_data <- list(claire = 66,

johnLeeMinusCatalina = 9.5,

phillipeMinusCatalina = 2,

phillipeMinusClaire = 0

)

fit <- stan(model_code = height_code, data = height_data,

iter = 1000, chains = 4)

The output is:

mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat

catalina 62.86 0.04 1.14 60.77 62.10 62.83 63.61 65.17 810 1

phillipe 67.96 0.03 0.93 66.19 67.33 67.97 68.58 69.75 1019 1

johnLee 72.91 0.05 1.35 70.27 72.00 72.88 73.84 75.54 880 1

pcHeel 2.35 0.01 0.39 1.59 2.09 2.34 2.61 3.10 1170 1

pclHeel 2.41 0.01 0.40 1.63 2.15 2.42 2.67 3.18 1319 1

jcHeel 2.13 0.01 0.38 1.38 1.88 2.12 2.38 2.88 1374 1

jcError 1.57 0.02 0.94 -0.25 0.90 1.58 2.19 3.42 2000 1

pcError -0.69 0.02 0.91 -2.44 -1.30 -0.66 -0.07 1.12 1532 1

pclError 0.45 0.03 0.87 -1.28 -0.15 0.43 1.05 2.19 1036 1

lp__ -15.56 0.06 1.70 -19.69 -16.46 -15.25 -14.33 -13.15 730 1

Let me know if I made any mistakes. Stan seems pretty useful once you get everything set up!

[1] http://en.wikipedia.org/wiki/Human_height

[2] http://www.econ.upf.edu/docs/papers/downloads/1002.pdf

[3] http://www.sciencedirect.com/science/article/pii/S0140673697112818#

Indeed. I was the commenter who originally suggested using priors instead of Google. I’m out of my technical depth so I’ll drop it, but I’m suggesting there are divergent priors. It’s axiomatic that a female movie star wears extra-high heels when photographed in a glamorous red dress. Not so for a median woman.

]]>PS Following up on the censoring idea, we see Anderson’s full head. Eye glasses come in pretty standard widths, so they are a noisy ruler. Then we might use the ratio of head to body size as another way to infer his full height. Using this glass metric we can also infer the lady’s head size and height. And ditto for all the other people using Gary’s procedure. So that adds another set of constraints to improve the inference. Oh, and did I mention shirt size buttons?

]]>Yes but the trick is not just to guess but to use all prior information to jointly infer everone’s heights, and shoe heel heights.

I think the prior on heel height may be 0-1 inflated, bimodal, etc. Perhaps better broken into a mixture of components.

The question of whether she is wearing high heels and if so height, is like the question is there a causal effect, and if so magnitude.

I bet Andrew would like to treat this as one question – heel height – but then prior likely takes a funny shape, and y_rep might look odd.

]]>The Claire Danes calibration in Dan’s original comment is totally thrown off by the heels factor. With that red dress, she could easily be wearing 3″ or 4″ heels.

]]>Dan:

I’d be happy just using the comparisons here, using priors for everyone’s height as well as error distributions for the comparisons and error distributions for shoe heights.

]]>If you can give me a dataset of comparisons to use, I’ll write the model. As with many things, collecting the data is maybe the hardest part here.

]]>She’s probably wearing moderate heels (what are those? 2.5″? 3″?). The event (a book signing?) appears to be the kind wear the ladies wear heels, but not 4 or 5″ heels.

But then again, these days you never know. When I went to hear Mozart chamber music at the Disney Concert Hall last year, a lot of the young ladies in attendance were teetering around on what looked like those shoes designed by Steve Madden, who is back out of jail after his company was taken public by the Wolf of Wall Street guy.

]]>For a typical celebrity, maybe a couple of dozen readers submit estimates and explain their rationales, such as they shook his hand or they might cite a photo of the celebrity with another celebrity for which a consensus exists on his height. The maximum and minimum estimates usually differ by maybe 2 to 2.5 inches.

I believe the site was started by a fellow whose hobby is getting himself photographed with celebrities, so he used himself as a yardstick in the initial photos, which proved a good start.

]]>That sounds really interesting. I’d love to see it. As a newbiee so far I’ve never been able to really understand how to use Stan on an example that seems familiar to me.

]]>Anderson’s height is censored (cropped). Her wearing heels is latent.

]]>I checked out the site and was disappointed. It featured Amy Adams (5ft 3.5in), Brian Adams (6ft 5in), Brooke Adams (5ft 3in), Bryan Adams (5ft 7.5in), Christine Adams (5ft 8in), Don Adams (5ft 8.75in), Douglas Adams (6ft 5in), Jane Adams (5ft 5in), Joey Lauren Adams (5ft 4in), Kaye Adams (5ft 7in), Ryan Adams (5ft 8in), and Yolanda Adams (6ft 1in)—but no Scott Adams! I wanted to resolve one of the longstanding open questions on this blog and compare his height to that of fraac.

]]>David:

This is pretty good but I wanted a full Bayesian analysis, as my point here is not that it’s possible to do a good shortcut (not that there’s anything wrong with that) but rather that with Stan we can do a brute-force analysis including all the available comparisons with priors on everybody.

]]>I suggested the following likelihood function, based on the fact that there were degrees of separation (CD–> PP–> CG–>JLA), and a three-inch standard error with each comparison (mainly because of our uncertainty in the height of the heels worn by the two women in the analysis).

That suggested that the overall standard error in our likelihood function is sqrt(3^2 + 3^2 + 3^2) = 5.2

But we have prior information, based on the image of him towering over three men and a woman.

Expected Height of non-Hispanic white males in the US between 40 and 59:

70.1 inches, +/-.14 (via http://www.cdc.gov/nchs/data/nhsr/nhsr010.pdf)

Standard deviation in height for men:

7 cm, which I’ll call 3 inches (https://biology.stackexchange.com/questions/9730/what-is-the-standard-deviation-of-adult-human-heights-within-sexes)

Assuming that he’s about six inches taller than the tallest of three ranodmly-sampled white men, we can get a prior on his height:

samples = replicate(1E3, max(rnorm(3, mean = 70.1, sd = 3))) + 6

mean(samples)

sd(samples)

So our prior should be 78.6, +/- 2.2

The fact that our prior is tighter than our likelihood function is unusual, but could be warranted based on the “high heels” argument above.

Multiplying the prior times the likelihood gives us the posterior distribution. But I’ve already spent too much time on this, so I’ll leave that as an exercise for the reader.

]]>I assumed that all height differences from photos had a standard error of 3 inches, (with most of the uncertainty relating to the size of the shoes worn by the women in the different pictures). Really, these distributions should be asymmetrical, but Gaussians seem like a good second-order approximation.

If we make three comparisons (JLA->CG->PP->CD), each with a standard error of 3 inches, then the accumulated uncertainty would be sqrt(3^2 + 3^2 + 3^2) = 5.2 inches.

]]>Wow—I had no idea! Someone should build a plug-in that does Bayesian analyses for all these cases using Stan.

]]>CelebHeights.com participants are particularly sensitive to age and time of day, especially for older individuals, in estimating maximum lifetime height.

]]>