I have surveyed people and for each one, for each season, have if they put out bird food consistently, inconsistently, or not at all.

I'm interested in knowing does the proportion of people putting out food consistently, inconsistently, or not all all change by season.

I have been recommended to use a non-parametric test to do this, but am unsure of which one or if that is the right judgement.

To answer the question, I have this data (here's a subset):

   id season availability
1   1 summer   inconstant
2   1 spring     constant
3   1 winter     constant
4   1   fall     constant
5   2 summer     constant
6   2 spring   inconstant
7   2 winter         none
8   2   fall   inconstant
9   3 summer   inconstant
10  3 spring   inconstant
11  3 winter     constant
12  3   fall   inconstant
structure(list(id = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3), season = structure(c(3L, 
2L, 4L, 1L, 3L, 2L, 4L, 1L, 3L, 2L, 4L, 1L), .Label = c("fall", 
"spring", "summer", "winter"), class = "factor"), availability = structure(c(2L, 
1L, 1L, 1L, 1L, 2L, 3L, 2L, 2L, 2L, 1L, 2L), .Label = c("constant", 
"inconstant", "none"), class = "factor")), class = "data.frame", row.names = c(NA, 

id = id of person

availability = consistency of food availability (3 levels: none, inconstant, constant)

From this data I would then calculate how many respondents had each food availability:

  season availability number
1 fall   constant          1
2 fall   inconstant        2
3 spring constant          1
4 spring inconstant        2
5 summer constant          1
6 summer inconstant        2
7 winter constant          2
8 winter none              1
structure(list(season = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 
4L), .Label = c("fall", "spring", "summer", "winter"), class = "factor"), 
    availability = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 3L
    ), .Label = c("constant", "inconstant", "none"), class = "factor"), 
    number = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L)), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -8L), groups = structure(list(
    season = structure(1:4, .Label = c("fall", "spring", "summer", 
    "winter"), class = "factor"), .rows = list(1:2, 3:4, 5:6, 
        7:8)), row.names = c(NA, -4L), class = c("tbl_df", "tbl", 
"data.frame"), .drop = TRUE))

And then get the proportions to run the statistical test.

  • $\begingroup$ You have count data; what's wrong with the usual parametric assumption of mutlinomial counts (and thereby, suitable tests for count data)? The big question would be whether you wanted to look at shifts (up or down the ordered categories) or whether more general alternatives (any kinds of difference in proportions) were of interest. $\endgroup$ – Glen_b Apr 28 at 13:21
  • $\begingroup$ I have the same respondents giving none, inconsistent, consistent food availability for each season. I'm not sure that works (or at least I don't understand how). $\endgroup$ – Rachael Apr 28 at 13:23
  • 1
    $\begingroup$ You'll need to explain the situation more clearly in your question, but I suggest you avoid beginning with the premise that the solution is necessarily a nonparametric test (as "what non-parametric test..." does) $\endgroup$ – Glen_b Apr 28 at 13:25
  • $\begingroup$ @Glen_b-ReinstateMonica I have edited the question to be more clear as to my intention. $\endgroup$ – Rachael Apr 28 at 13:31
  • 1
    $\begingroup$ You'll still need to explain (in your question) what you were attempting to tell me in your first comment (which I am not sure I correctly understand yet). Do you have some example data? $\endgroup$ – Glen_b Apr 28 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.