I’d like to see a Stan implementation of the analysis presented in this comment by Gary from a year and a half ago.

Posted by Andrew on 25 September 2014, 4:55 pm

I’d like to see a Stan implementation of the analysis presented in this comment by Gary from a year and a half ago.

## Recent Comments

- Graduated on Another Regression Discontinuity Disaster and what can we learn from it
- Ethan Bolker on Another Regression Discontinuity Disaster and what can we learn from it
- Anoneuoid on And, if we really want to get real, let’s be open to the possibility that the effect is positive for some people in some scenarios, and negative for other people in other scenarios, and that in the existing state of our knowledge, we can’t say much about where the effect is positive and where it is negative.
- jim on Another Regression Discontinuity Disaster and what can we learn from it
- Martha (Smith) on “The writer who confesses that he is ‘not good at attention to detail’ is like a pianist who admits to being tone deaf”
- Daniel Lakeland on Another Regression Discontinuity Disaster and what can we learn from it
- Martha (Smith) on Another Regression Discontinuity Disaster and what can we learn from it
- Martha (Smith) on Another Regression Discontinuity Disaster and what can we learn from it
- Andrew on Another Regression Discontinuity Disaster and what can we learn from it
- Ram on Another Regression Discontinuity Disaster and what can we learn from it
- Sameera Daniels on AnnoNLP conference on data coding for natural language processing
- Andrew on Another Regression Discontinuity Disaster and what can we learn from it
- Ram on Another Regression Discontinuity Disaster and what can we learn from it
- Andrew on Another Regression Discontinuity Disaster and what can we learn from it
- Koray on Another Regression Discontinuity Disaster and what can we learn from it
- Anoneuoid on Another Regression Discontinuity Disaster and what can we learn from it
- Ram on Another Regression Discontinuity Disaster and what can we learn from it
- Anoneuoid on Another Regression Discontinuity Disaster and what can we learn from it
- Andrew on And, if we really want to get real, let’s be open to the possibility that the effect is positive for some people in some scenarios, and negative for other people in other scenarios, and that in the existing state of our knowledge, we can’t say much about where the effect is positive and where it is negative.
- Anoneuoid on And, if we really want to get real, let’s be open to the possibility that the effect is positive for some people in some scenarios, and negative for other people in other scenarios, and that in the existing state of our knowledge, we can’t say much about where the effect is positive and where it is negative.

## Categories

The website http://www.celebheights.com/ features lengthy discussions by height hobbyists that flush out many of the ways to more accurately estimate a prominent individual’s true height. For example, being behind Alec Baldwin in line at a TSA airport checkpoint is illuminating because Baldwin suddenly gets a lot shorter when he has to take his shoes off.

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

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

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.

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.

By hand, I got an estimate of 6-foot-2, with a standard error of 5.2 inches.

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.

Looks like my previous comment got eaten by the spam filter. This comment will build on the previous one, and add a prior. Apologies if the likelihood bit ends up showing up twice.

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.

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.

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.

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.

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.

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.

I think a more interesting question is whether the lady next to Anderson is wearing heels, and if so, their height.

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

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.

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.

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.

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?

How much does it take to convince me to install and try out Stan? The possibility of a free t-shirt.

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#

Oh, wow, that formatting died a painful death. Maybe this will look better…

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

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

[…] across that comment the other day (when searching the blog for Tom Scocca) and it inspired me to put out a call for the above analysis to be implemented in Stan. A couple of other faithful commenters (Andrew […]