The first thing I notice on eyeballing some histograms is that we seem to have three different distributions here: one normal-ish with weights < 10lb, one maybe lognormal-ish with weights > 20lb, and a sharp spike at exactly 20.4lb. Looking at some turtles with weight 20.4lb, it becomes apparent that 6-shell-segment turtles are special; they all have no wrinkles, green colour, no fangs, normal nostrils, no misc abnormalities, and a weight of 20.4lb. So that takes care of Harold. Then the small/large distinction seems to go along with (gray, fangs) versus (not-gray, no fangs). Among the fanged gray turtles, I didn’t find any obvious sign of relationships between weight and anything other than number of shell segments, but there there’s a clear linear relationship. Variability of weight doesn’t seem interestingly dependent on anything. Residuals of the model a + b*segs look plausibly normal. So that takes care of Flint. The other pets are all green or grayish-green so I’ll ignore the greenish-gray ones. These look like different populations again, though not so drastically different. Within each population it looks as if there’s a plausibly-linear dependence of weight on the various quantitative features; nostrils seem irrelevant; no obvious sign of interactions or nonlinearities. The coefficients of wrinkles and segments are very close to a 1:2 ratio and I was tempted to force that in the name of model simplicity, but I decided not to. The coefficient of misc abs is very close to 1 and I was tempted to force that too but again decided not to. Given the estimated mean, the residuals now look pretty normally distributed—the skewness seems to be an artefact of the distribution of parameters—with stddev plausibly looking like a + b*mean. The same goes for the grayish-green turtles, but with different coefficients everywhere (except that the misc abs coeff looks like 1 lb/abnormality again). Finally, if we have a normally distributed estimate of a turtle’s weight then the expected monetary loss is minimized ifwe estimate mu + 1.221*sigma.
I assume
that there’s a more principled generation process, which on past form will probably involve rolling variable numbers of dice with variable numbers of sides, but I didn’t try to identify it.
I will be moderately unsurprised if
it turns out that there are subtle interactions that I completely missed that would enable us to predict some of the turtles’ weights with much better accuracy. I haven’t looked very hard for such things. In particular, although I found no sign that nostril size relates to anything else it wouldn’t be very surprising if it turns out that it does. Though it might not! Not everything you can measure actually turns out to be relevant! Oh, and I also saw some hints of interactions among the green turtles between scar-count and the numbers of wrinkles and shell segments, though my brief attempts to follow that up didn’t go anywhere useful.
Tools used: Python, Pandas, statsmodels, matplotlib+seaborn. I haven’t so far seen evidence that this would benefit much from
With rather little confidence, I estimate for turtles A-J respectively:
22.93, 18.91, 25.47, 21.54, 17.79, 7.24, 30.36, 20.40, 24.25, 20.69 lb
Justification, such as it is:
The first thing I notice on eyeballing some histograms is that we seem to have three different distributions here: one normal-ish with weights < 10lb, one maybe lognormal-ish with weights > 20lb, and a sharp spike at exactly 20.4lb. Looking at some turtles with weight 20.4lb, it becomes apparent that 6-shell-segment turtles are special; they all have no wrinkles, green colour, no fangs, normal nostrils, no misc abnormalities, and a weight of 20.4lb. So that takes care of Harold. Then the small/large distinction seems to go along with (gray, fangs) versus (not-gray, no fangs). Among the fanged gray turtles, I didn’t find any obvious sign of relationships between weight and anything other than number of shell segments, but there there’s a clear linear relationship. Variability of weight doesn’t seem interestingly dependent on anything. Residuals of the model a + b*segs look plausibly normal. So that takes care of Flint. The other pets are all green or grayish-green so I’ll ignore the greenish-gray ones. These look like different populations again, though not so drastically different. Within each population it looks as if there’s a plausibly-linear dependence of weight on the various quantitative features; nostrils seem irrelevant; no obvious sign of interactions or nonlinearities. The coefficients of wrinkles and segments are very close to a 1:2 ratio and I was tempted to force that in the name of model simplicity, but I decided not to. The coefficient of misc abs is very close to 1 and I was tempted to force that too but again decided not to. Given the estimated mean, the residuals now look pretty normally distributed—the skewness seems to be an artefact of the distribution of parameters—with stddev plausibly looking like a + b*mean. The same goes for the grayish-green turtles, but with different coefficients everywhere (except that the misc abs coeff looks like 1 lb/abnormality again). Finally, if we have a normally distributed estimate of a turtle’s weight then the expected monetary loss is minimized ifwe estimate mu + 1.221*sigma.
I assume
that there’s a more principled generation process, which on past form will probably involve rolling variable numbers of dice with variable numbers of sides, but I didn’t try to identify it.
I will be moderately unsurprised if
it turns out that there are subtle interactions that I completely missed that would enable us to predict some of the turtles’ weights with much better accuracy. I haven’t looked very hard for such things. In particular, although I found no sign that nostril size relates to anything else it wouldn’t be very surprising if it turns out that it does. Though it might not! Not everything you can measure actually turns out to be relevant! Oh, and I also saw some hints of interactions among the green turtles between scar-count and the numbers of wrinkles and shell segments, though my brief attempts to follow that up didn’t go anywhere useful.
Tools used: Python, Pandas, statsmodels, matplotlib+seaborn. I haven’t so far seen evidence that this would benefit much from
fancier models like random forests etc.