Converting Complex Contingency Tables to Proportions

In this section we show how to remove the need for all of the nuisance variables that are involved in complex contingency table modelling (see p. 302) by converting the response variable from a count to a proportion. We work thorough the analysis of Schoener's lizards, which we first encountered in Chapter 15. Instead of analysing the counts of the numbers of Anolis grahamiiand A. opalinus, we restructure the data to represent the proportions of all lizards that were A. grahamii under the various contingencies.

lizards<-read.table("c:\\temp\\lizards.txt",header=T)
attach(lizards)
names(lizards)
[1]  "n"  "sun"  "height"  "perch"  "time"  "species"

First, we need to make absolutely sure that all the explanatory variables are in exactly the same order for both species of lizards. The reason for this is that we are going to cbind the counts for one of the lizard species onto the half dataframe containing the other species counts and all of the explanatory variables. Any mistakes here would be disastrous because the count would be lined up with the wrong combination of explanatory variables, and the analysis would be wrong and utterly meaningless.

sorted<-lizards[order(species,sun,height,perch,time),]
sorted n sun height perch time species 41 4 Shade High Broad Afternoon grahamii 33 1 Shade High Broad Mid.day grahamii 25 2 Shade High Broad Morning grahamii 43 3 Shade High Narrow Afternoon grahamii 35 1 Shade High Narrow Mid.day grahamii ...

Get The R Book now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.