1. Cleaning data

I did some cleaning and augmenting of the data - specifically, obtaining actual dates and elevation values from publically available data. Andy - you may want to see how I did it by looking at the RMD file (I used a lot fewer lines of code than you did).

2. Plots

I didn’t like the boxplots in the paper. Here are two alternative versions (which I can tweak as needed). These plots also include elevation, which is optional, but interestingly inconsistent: e.g. Luxin goes down in the summer, and then up. Zhangxiang does the opposite. Taotao does whatever.

v.I: Boxplots

These show all the points (in the background) and a boxplot. Important to note: the scales on the y-axis are log, sqrt and standard, respectively, but the numbers displayed are correct.

v.II: Actual data with GAM smooth

Here are the movement / activity / elevation data - displayed straight (I think better) - with a GAM smoothing function. This GAM smoothing is the one I use for the inference in the next section.

3. Fitting gams

I fitted GAMs (generalized additive models) (citation: Wood, S.N. (2011) Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society (B) 73(1):3-36) for movement and activity against day of year for all three pandas. The fits are the blue curves in the figure above. They come with standard errors. One technical note: in order to eliminate the effect of auto-correlation I subsampled every 5th data-point, which reduced the ACF of the residuals to i.i.d. (white noise).

Movement p-values

P-values of MOVEMENT gams … note LuXin is not significant. But also, Taotao and Zhangxiang effects are actually small.

ID edf Ref.df F p.value
Luxin 3.464307 4.289357 2.046645 0.0835
Taotao 4.651109 5.698915 3.212829 0.0042
Zhangxiang 5.514191 6.655267 4.549298 0.0001

Activity maxima and minima

Maxima and mimina - dates and values - of activity gams:

ID mean mean.se max.day max max.se min.day min min.se
Luxin 2.926 0.04 June 16 4.131 0.126 August 29 2.405 0.144
Taotao 2.783 0.03 June 7 3.556 0.099 September 15 2.264 0.095
Zhangxiang 1.900 0.03 June 11 3.421 0.085 September 19 1.068 0.083

The main (striking) result is, there is a definite peak in middle of June for all animals, a definitely crash in late August / September. Very consistent