Activity Budgets - testing for difference

Hello All,

Firstly, I apologise for posting yet again, but after some advice from the wonderful Ecologist he has advised me to be more precise in my questioning and therefore I hope that I can shed some light on the problem at hand.

I studied piping plover nests and chicks at two beaches and calculated activity budgets into five groups for the chicks:
Feeding, Human/Dog Disturbance, other disturbance (e.g. other wildlife), maintenance (e.g. resting and preening) and 'other'.

I calculated the mean proportions of activity for each brood each day observed as it was stated that individual chicks within a brood were non-independent. I also have proprtions of behaviour in each minor habitat used (e.g. Ocean front saturated zone, intertidal zone, wrack etc) and also mudflats. I also combined all behaviour for all habitats and then calculated proportions of the different habitats used for each behaviour.

The issue is that I have since realised by looking the n= in research papers that it seems that they considered each brood's behaviour as a whole as non-independent so I then found the mean for all of my observations for each brood. The issue is that now my dataset is now very small with only 3 broods at one beach and 4 broods at another beach.

One of the hypotheses is that activity budgets with differ between Ocean Front habitat and mudflat habitat, firstly due to disturbance being greater on the OF.
I used a Mann-Whitney comparing the activity budgets between the OF broods at one beach compared to the other beach and the disturbance and 'other' were significantly different and therefore I am unable to combine the data for both beaches.

So one of my problems is that I have very small sets of data to use.

I will give one example and if this can be answered then this will lead me to a solution for a number of problems.

I have the following table. the null hypothesis is that there is no significant difference in activity between OF Broods and MF Broods. As there was only one beach that had true mudflats used consistently then I will use this beach as an example.
I have attached the excel file showing each brood and their activity budgets within each major habitat type. As you can see B1 is only found in the MF and the others only OF. Because there is only one set of data for the MF then I cannot use a Mann-Whitney and I do not think a Kruskal-Wallis would work even though it allows me to do this with results that would match my expectations in most cases.

I therefore resorted to one of the original studies (actually at the same beaches) and they used a 2x2 table with a column for each habitat and then a row for one behaviour and then the other row for all the other behaviours combined. As they were using a unit of minutes (completely disregarding independence) they used a G-test. However I did the same but with the proportions in the form of percentages and then used a Chi-square. For those values with values smaller than 5 I used a Fisher's Exact test.

I only know VERY basic stats and am worried about getting very complicated and I am on a strict time budget right now. Would these tests be acceptable?
Obviously a study used it, and the other studies used Mann-Whitney (although a few used extremely complicated models) but they had a minimum of 5 or so for each group. One also used Wilcoxin Rank tests to compare a few groups.

Thank you in advance for any help. I have tried to be as thorough as possible, but please let me know if you need any more data.

I have other tests to do, but if this one can be solved then it can be applied to extremely similar data.



Super Moderator

I am looking into this right now, but I need you to break some of this down for me:

Are your MF and OF locations replicated? i.e. did you only look at one site for each?

How many broods did you monitor?

How have you come up with these proportions? Were they standardized observation times per brood?
Thank you bugman,

Basically for this particular beach system there was an area of ocean front (about 1km long) and then at the back was a salt pond with a large mudflat area. There were four broods (i.e. B1, B2 etc.) as listed and the data seen in the table is the mean for each brood over the entire study period (which consisted of about 7 observations per brood). As you can see, only B1 was found on the mudflats and the other broods were found on the ocean front.

Each brood observation consisted of watching each chick for 5 minutes (300 seconds). I used a tape recorder running for the five minutes and it was noted when behaviour and habitat changed, and also pecks so that I could calculate peck rate. The number of chicks observed for each observation differed and as they are considered non-independent the mean time for the whole brood on that day was calculated. However as each brood in itself is non-independent then the mean for that brood over all observations was then calculated. As there are so few broods this is where I am having issues. If I could use each 'brood day' observation I could use a Mann-Whitney, but I am worried about pseudo-replication. The proportions were calculated by dividing the seconds in each behaviour divided by total seconds (i.e. 300).
I have another beach also, however there were no true mudflats there, although one brood used a little bit of the edge of the salt pond which would be considered mudflat. However they only fed there for a short time and then moved back to ocean front. Using this brood could be problematic as they would be replicated if I considered their behaviour in both mudflat and ocean front habitats.

If you can assist with any ideas then I would be sincerely grateful.

Thank you.

In addition, there are varying numbers of broods each year but this year there were very few, which of course is unfortunate but I suppose comes with the territory of ecological research. Just my luck. ;P I see your name is bugman. Ironically I was told that invertebrates are great to work with as you end up with loads of data. I should have listened to the entomologists trying to recruit students. :)


New Member
I don't quite get how your study was designed:
- it's quite clear to me that each brood has to be considered as 1 sample unit, and you sampled this unit for more than one time. This is not a problem per se, as long as you consider the study period as a whole.
- if so, and if you want to compare the activity budget of broods in 2 different sites across the same time span, I would personally make a sum of each behavior over the whole time span for each brood (or average them, it's the same)
- now, the point is, how many sample units do you have for your 2 sites? In the first place you stated you have 3 units for one beach and 4 samples for the other. Afterwards you say you have only 1 vs 3... (if so, then your inference would be quite poor)
- if you had 3 vs 4, I'd try to use a Mann-Whitney test (or, if your data are normalized -or normalizable- a t-test). You have no problems as to pseudo replicates, because you are comparing the overall activity budgets across two independent sites in the same time span. If you were comparing the same broods over different time span, then you would encounter pseudo replications issues...

Luke, the problem is, when I compare site activity then they are significantly different so I was going to do each beach separately. The issue is that I need to compare OF vs. MF to see if there is a significant difference in behaviours. The hypothesis is that disturbance is significantly less in MF than OF. Unfortunately there was only one mudflat brood. This is the issue I am having; lack of data. If there is a test where I can use each observation then I would have more than enough data but the pseudo-replication issue is in the way. Hence why I need the expertise of stats pros to see how I can approach this.

I think an answer to these questions would allow me to analyse a lot of what I need, however I have two more questions that I just realised.

I am going to be using a Chi-square test to compare habitat use vs available habitat (which I measured). If I set up a table and run the tests, is there then I way to identify which habitats contributed to the significant difference and which ones did not so that I could say which habitats were used significantly more or less than expected.
I am also going to be comparing foraging rates between habitats. Once again I can use a Kruskal-Wallis, but then am I able to identify which are significantly different or would I have to compare all, two at a time to do this?

I am sorry about the two additional questions, however this would pretty much solve all of the issues I am having.

Last edited:
As mentioned, the original study used a chi-square or g-test where they compared the totals for the OF vs. the MF for a particular behaviour vs. the total for the rest of the behaviours. The problem is that they just totaled the minutes for all chicks without regard to replication. I could find the mean for each set (or in the case of the MF - use the value) and then do the same test. I actually did this and the results are as expected with disturbance and feeding were significantly different, however I am concerned that this is just poor statistics.

I took stats for one semester (with a very poor teacher). I am relying on 'Choosing and Using Statistics' by Dytham and 'Statistics for Terrified Biologists' by van Emden. The latter seems appropriate at this time, and yet it is not helping.


TS Contributor
HEY! Don't underestimate the hyperabundance of data you can get from birds (I'm not biased, I assure you)! For instance, you have second-by-second data for behavior. Don't ignore this fact. Even with limited sample size (n broods), you have the following:

7 broods
7 observation sessions per brood (presumably on different days or at different times during the day)
1-4 chicks per brood (assumed from piping plovers)
300 seconds per chick

Unless I'm misunderstanding this, you would have 29,400 rows of data if just two chicks were observed per session. I think you do a great disservice to both the data AND your effort to collect the data if you summarize your data --i.e. taking means, etc.-- prior to data analysis. In my opinion, many of the past time-energy budgets (or just time budgets) in birds or other animals are flatly inaccurate because researchers collapse data (into minute intervals, etc.). After all, the sampling rate of analysis and of observation should be matched to the duration and the transition probability of behaviors (i.e. the shortest behavior if you are trying to detecting frequency of a behavior).

Anyway, I digress. You have a HUGE sample size. Now, you just need to account for pseudoreplication, like you acknowledge. It seems like your hypothesis was whether chick behavior is different in OF versus MF broods.

I know you don't want a complicated analysis, but I think it actually would be more complicated to try fitting your data into a Mann-Whitney or something. Since you have a nested random effect (chick "nested" within nest or brood), you have a mixed-effects model. Since you have occurence of a behavior on a second-by-second scale, I would suggest that you could code this as 0 (not occurring) and 1 (occurrence of behavior). So, you have a binomial model. Then, since you don't have an a priori reason to expect that the sequences of behaviors is linear with respect to time, you have a Generalized Additive Model. All this makes for a wonderfully complex Generalized Additive Mixed Model with binomial error structure. (Again, the TalkStats people are laughing at me. I'm worse than a politician with my pushing of these models).

I started working on an example for your, but I don't have much time. Here's just a brief example of how I envisioned your second-by-second data.

# Make some fake data
	session=as.factor(rep(1:2,c(12,4))),  # one of the seven sessions that each brood was observed
	second=c(rep(1:3,4), rep(1:2,2)), # time = 0-300 of each session
	behavior1=sample(c(0,1),16, replace=T),
	behavior2=1-behavior1  # assuming that behavior2 is mutually exclusive of behavior1
I just wanted to add my input that sometimes data analysis should be simplified too much, especially if you have the opportunity to capture all the variation inherent to continuous behavioral observations!
jpkelley. I love the sound of what you are saying, and I understand the idea of using second by second data, however it is like a foreign language to me. I really wish that I could understand this better though.

The problem is I am also tied for time. I have been given the later hand-in date but have already promised a draft by the first week or two of January. this is going to be a struggle at this rate anyway so I am not sure I could grasp this new concept in time. Saying that, my professor is pretty good so if I explained he may okay the handing the draft in February as he is rather busy in January anyway.


TS Contributor
I know it sounds foreign. Just imagine that it's a way of modeling data without imposing any sort of a priori relationship on it first (as in linear modeling, etc.). It is a complex method, but many people use it in very simple ways. Your design really does require a mixed-effects approach. Why not explain to your professor that this would allow you to use ALL of the data to your advantage and allow you to learn more about the system. I think learning a new method is well worth it in this case.
But do you think I could learn this and do it in a few weeks? Even with an extended deadline, I would still need to be able to crunch the data in this time. In addition, is this something I could learn as a complete newbie from a distance without imposing too much (all three issues may be a problem)... :)
I agree with jpkelly as to nested-mixed-modeling approach to compare OF vs MF. However, I must say I'm not much against pooling data (i.e. averaging the proportion of time spent in a certain behavior, also because time budget data are -or should be- collected at different time of the day to account for daytime variation in behavior). Having said that, as to the comparisons among sites, a quick approach could be to create a dataset like this:
habitat foraging
1 0.5
1 0.23
1 0.32
2 ...
2 ...
2 ...
... ...
x ...
x ...
then create in R a model like this:
m1<-glm(foraging~habitat, family=*, data=Dataset)
and run a multiple comparison test:
summary(glht(m1, linfct=mcp(habitat="Tukey")))

you should get an output that tells you which habitat is different from one another.

*you gotta pick the right family (how do you data look like? First step: if they follow a normal distribution, then family=gaussian; if they are not normalized, you can try to normalize them -usually a arcsin of the square root should do the trick-. If they can't be normalized, you may use a family=poisson; 2nd step: if they are not normalized, are they overdispersed? To check for over dispersion you may fit the model using a poisson family, then run summary(m1) and check if the residual deviance -at the bottom of the output- is much higher than the residual degrees of freedom; if so, you may try to either use a family=quasipoisson or fit a glm.nb model).
As to habitat selection, if you intend to use a chi-square approach, you may want to try the Bonferroni test, which is based on the proportion of habitat used and available. Honestly, it's been very long time since I last used it, hence I don't recall the shortcomings of this procedure (as far as I remember, there were something involving independence of observations); I can attach a excel file for the data analysis as an example.
Luke, my data was indeed collected at random times and random tide levels for each brood. When looking at the data it is pretty evenly spread out for this (although I haven't statistically run a test for this).
I have never used R. I have Minitab, which I know isn't the best but it is what we were taught to use.

In regards to Bonferroni, my book does have that test and it seems to do what I would need. Thank you for that. I have been using a lot of the excel files from the Biological Handbook which are much easier, especially as Minitab doesn't even let you do a Chi-square so your version for the Bonferroni will be much easier.

I just found an online chapter on linear models that I will try to grasp, even if it just gives me a basic idea to help me understand what you guys are talking about. Even some of the simple things you say are difficult for me to grasp completely, but I am always willing to give it a try.
You can try to download R, then from the menu, select "packages", then "install packages", and look for "Rcmdr" package. This will make R look much more user-friendly. If you need any help, just let me know.
Thank you.

I am organising my data in note form (for habitat use for all and then for low tide and high tide). Once I am done with this I will run the Chi and the Bonferroni and see what I come up with for habitat use vs. habitat availability.

To compare individual behaviours across the two sites I used Mann-Whitney. Is this incorrect? Would the R solution work better and if so why?

The M-W test is fine (and obviously it could be run also in R). Some issues could arise when using K-W test to compare medians across habitats; I'm not familiar with Minitab: in R I am not aware of a Post-Hoc test (multiple comparisons) after K-W (but I might be wrong and it could have been implemented), hence you should first run all pairwise comparisons with M-W, then compare each U values with other U values calculated using studentized range. To avoid these steps, you may simply fit the model i suggested before: m1<-glm(foraging~habitat, family=quasipoisson, data=YourDataset) and run a multiple comparison test: summary(glht(m1,linfct=mcp(habitat="Tukey"))). The output of this post hoc test is really straightforward to interpret. If you have a excel file with foraging frequency and habitat types, organized like I suggested before, I may try to run the model.


TS Contributor
*you gotta pick the right family (how do you data look like? First step: if they follow a normal distribution, then family=gaussian; if they are not normalized, you can try to normalize them -usually a arcsin of the square root should do the trick-. If they can't be normalized, you may use a family=poisson; 2nd step: if they are not normalized, are they overdispersed? To check for over dispersion you may fit the model using a poisson family, then run summary(m1) and check if the residual deviance -at the bottom of the output- is much higher than the residual degrees of freedom; if so, you may try to either use a family=quasipoisson or fit a glm.nb model).
These are definitely good for a quick approach, if this is what you need to do. I agree! I might not be so quick about seeking to normalize the data beforehand (i.e. unless absolutely necessary). Remember that it's not the normality of the predictors that we're really concerned with a far as satisfying model assumptions goes. We just need to see if the residuals are normal. With the appropriate link function (Poisson, etc.), violation of this assumption isn't a common problem.

As aside note, with the Poisson, a quick way to see overdisperson is simply to divide the standard deviation of the distribution by the mean of the distribution (>1 means overdispersion). This is just a reminder. You can also visually inspect the count data. If there is significant overdispersion, you might want to look into any one of the zero-inflated models (hurdle models, etc.). You can do this yourself too fairly simply, by analyzing two separate models: one with all of your zeroes and all 1+ counts recoded as one (analyze this as binomial), the second one with the zeroes ignored and modeled as a Poisson. Simulate values and multiply the Poisson output by the binomial model percentages.

Back to data transformations. Ugh. We know that the arcsin transformation suffers near the boundaries (<20% and >80%). We know that square-root transformations do NOT improve normality at low counts, yet people seldom go back to basics and simulate data and test it for themselves. It's pretty dangerous. For modeling data, I would choose as a family (Poisson, Gaussian, Gamma, binomial, etc.) the kind of distribution that has the same boundary conditions as your data. So, for positive continuous data, I would generally avoid the normal distribution and use a Gamma distribution instead. Otherwise, the resulting charts have a strong chance of showing confidence intervals that dip below zero. Just a thought...this is a huge pet peeve of mine.

Anyway, I agree with Luke that simpliflication is always best, if you can do it! Keep the questions coming, and we'll attempt some guidance!
jpkelley, I totally agree with you.
Me myself, I'm not a big fan of data transformation, especially if we have tools (different families in GLM) to deal with non-normal data. Actually, right now I'm also dealing with time budget data... just for the sake of curiosity, I tried to normalize them with the arcsin(sqrt) but did not work out at all... Therefore I sticked to my raw data and used a GLMM approach with quasipoisson (also tried a negative binomial). I'd suggest to use this approach.


TS Contributor
Yep, sorry that my previous response was so long-winded. I think people get hung up on transformations since this is what they hear about "needing to be done" prior to data analysis. You're right...with these new tools, which aren't that difficult to implement for simple datasets, much of the sorcery and witchcraft can be removed from the workflow. That's cool that you tried the transformation and then compared the behavior to GLMM...I've been playing around with that too. It's very sobering!

Dragonwalker, is this discussion helping at all?