## Prob for overlapping bouts
## [1] 0.6975813
## SD Prob for overlapping bouts
## [1] 0.04527745
## Prob for alternating bouts
## [1] 0.3636657
## SD Prob for alternating bouts
## [1] 0.04916876
## Prob for non-coordinated bouts
## [1] 0.4732574
## SDProb for non-coordinated bouts
## [1] 0.06136546
## classification performance
## pvalclass
## <0.025 >0.025 & <0.975 <0.975
## no.ovlp 477 523 0
## notsync 22 950 28
## ovlp 0 16 984
## overall classification performance
## [1] 0.8036667
## [[1]]
##
## [[2]]
##
## [[3]]
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 04 00 00 00 00 00 00 0d 3b 01 00 02 00 02 00 00 00 05 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 04 00 00 00 00 00 00 0d 3b 01 00 02 00 02 00 00 00 05 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 04 00 00 00 00 00 00 0d 3b 01 00 02 00 02 00 00 00 05 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 04 00 00 00 00 00 00 0d 3b 01 00 02 00 02 00 00 00 05 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 04 00 00 00 00 00 00 0d 3b 01 00 02 00 02 00 00 00 05 00
## number of events
## [1] 185
## Start and end date
## [1] "2012-02-01 UTC" "2012-05-19 UTC"
## Number of recordings
## [1] 9668
## Time periods
## [1] "0530" "0600" "0630" "0700" "0730" "0800" "0830" "0900" "0930" "1000"
## [11] "1030" "1100" "1130" "1200" "1230" "1300" "1330" "1400" "1430" "1500"
## [21] "1530" "1600" "1630" "1700" "1730" "0500"
## Number of time periods
## [1] 26
## Number of days recorded
## [1] 79
## Number of days recorded per lek
## Group.1 x
## 1 CCE 12
## 2 CCL 12
## 3 LOC 6
## 4 SUR 49
## average distance between mics
## [1] 14.93317
## Number of days analyzed per lek
## Group.1 x
## 1 CCE 5
## 2 CCL 3
## 3 LOC 2
## 4 SUR 7
## Mean and sd perch height
## [1] 2.150768
## [1] 1.130179
## Number of pairs
## [1] 19
## Number of individuals in pairs
## [1] 22
## NUmber of same individual i different pairs
##
## -1 100 103 104 106 108 109 111 117 143 148 149 24 32 54 60 72 81
## 1 2 1 1 2 3 1 2 2 1 3 1 1 4 2 3 1 1
## 86 88 90 98
## 3 1 1 1
## Mean number of times the same individual was in different pairs
## [1] 1.727273
## Number of events with only one male known
## [1] 35
## Number of males in events with only one mae knwow
## [1] 21
## Number of identified males in all events
## [1] 42
## mean duration of events
## [1] 66.99738
## duration range of events
## [1] 5.103 438.772
## mean number of songs
## [1] 220.3351
## range number of songs
## [1] 24 1315
## counts of events per pattern
##
## No.ovlp No.pattern Ovlp
## 43 104 38
## counts of events per pattern for known dyads
##
## No.ovlp No.pattern Ovlp
## 29 65 27
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## [1] 88 -1 153 146 36 95 149 147 151 83 148 86 143 32 152 109 111
## [18] 117 108 106 100 104 103 65 98 72 97 81 43 24 90 53 9 54
## [35] 60
## proportion of dyads with perches at both distance categories
## close far
## 0.3455357 0.8782738
## min proportion of dyads with perches at both distance categories
## close far
## 0.03571429 0.57142857
## max proportion of dyads with perches at both distance categories
## close far
## 0.5714286 1.0000000
## mean distance between territory centroids
## [1] 39.18379
## sd distance between territory centroids
## [1] 26.46792
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 02 00 00 00 00 00 00 0d 3b 00 00 00 00 52 01 00 00 15 00
## DEFINEDNAME: 21 00 00 01 0b 00 00 00 01 00 00 00 00 00 00 0d 3b 01 00 00 00 ac 01 00 00 25 00
## number of possible pairs
## [1] 251
## number of observed singing pairs
## [1] 19
## proportion
## [1] 0.07569721
## cutoff for distance
## 0% 25% 50% 75% 100%
## 0.00000 13.39981 21.50203 26.96696 75.57736
##
## 103//104 108//109 108//111 108//117 111//117 32//148 32//54 32//60
## Close 1 14 1 1 0 1 0 0
## Far 1 0 0 0 2 0 3 4
##
## 32//86 54//60 60//81 98//106
## Close 0 0 0 0
## Far 2 1 8 5
## Singing pattern vs song type sharing ALL DATA
cat("sample size")
## sample size
nrow(stres)
## [1] 61
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+ Time+songtype+distcat, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time+songtype+distcat, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time+songtype, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+songtype, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+distcat, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~songtype+distcat, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~songtype, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~distcat, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur, random=~1 |lek , data = stres, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~1, random=~1 |lek , data = stres, method = "ML")
# Cand.models[[1]]<-glm(sing.perf~Time+songtype+distcat, data = stres)
# Cand.models[[2]]<-glm(sing.perf~Time+songtype, data = stres)
# Cand.models[[3]]<-glm(sing.perf~dur+songtype+distcat, data = stres)
# Cand.models[[4]]<-glm(sing.perf~dur+Time, data = stres)
# Cand.models[[5]]<-glm(sing.perf~dur, data = stres)
# Cand.models[[6]]<-glm(sing.perf~dur+songtype, data = stres)
# Cand.models[[7]]<-glm(sing.perf~Time, data = stres)
# Cand.models[[8]]<-glm(sing.perf~Time+distcat, data = stres)
# Cand.models[[9]]<-glm(sing.perf~songtype+distcat, data = stres)
# Cand.models[[10]]<-glm(sing.perf~songtype, data = stres)
# Cand.models[[11]]<-glm(sing.perf~distcat, data = stres)
# Cand.models[[12]]<-glm(sing.perf~1, data = stres)
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~sing.perf","sing.perf~",Modnames)
aictabs<-list()
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt
## sing.perf~dur + distcat 5 36.51 0.00 0.58 0.58
## sing.perf~distcat 4 38.64 2.13 0.20 0.78
## sing.perf~songtype + distcat 5 40.01 3.50 0.10 0.88
## sing.perf~dur + Time + songtype + distcat 7 40.45 3.94 0.08 0.96
## sing.perf~Time + songtype + distcat 6 41.71 5.21 0.04 1.00
## sing.perf~dur + songtype 5 63.71 27.20 0.00 1.00
## sing.perf~dur 4 64.96 28.45 0.00 1.00
## sing.perf~1 3 65.91 29.40 0.00 1.00
## sing.perf~songtype 4 66.48 29.98 0.00 1.00
## sing.perf~Time 4 66.68 30.17 0.00 1.00
## sing.perf~Time + songtype 5 67.44 30.93 0.00 1.00
## LL
## sing.perf~dur + distcat -12.71
## sing.perf~distcat -14.96
## sing.perf~songtype + distcat -14.46
## sing.perf~dur + Time + songtype + distcat -12.17
## sing.perf~Time + songtype + distcat -14.08
## sing.perf~dur + songtype -26.31
## sing.perf~dur -28.12
## sing.perf~1 -29.74
## sing.perf~songtype -28.88
## sing.perf~Time -28.98
## sing.perf~Time + songtype -28.17
cs<-list()
cs[[length(cs)+1]]<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## sing.perf~dur + distcat 5 36.51 0.00 0.58
## sing.perf~distcat 4 38.64 2.13 0.20
## sing.perf~songtype + distcat 5 40.01 3.50 0.10
## sing.perf~dur + Time + songtype + distcat 7 40.45 3.94 0.08
##
## Model probabilities sum to 0.96
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
#effect size for song type
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Different"), distcat = c("Far", "Far"),Time = c(0,0), dur = c(1,1)), second.ord = T)
b<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Different"), distcat = c("Close", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
es<-list()
es[[length(es)+1]]<-data.frame(data="All data",factor="coord perf~song type",effect_size=mean(a$Mod.avg.eff,b$Mod.avg.eff), lowerCI=mean(a$Lower.CL,b$Lower.CL), upperCI=mean(a$Upper.CL, b$Upper.CL))
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 All data coord perf~song type 0.01283926 -0.2020502 0.2277288
#effect size for distance
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Same"), distcat = c("Far", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
b<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Different", "Different"), distcat = c("Far", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
es[[length(es)+1]]<-data.frame(data="All data",factor="coord perf~distance",effect_size=mean(a$Mod.avg.eff,b$Mod.avg.eff), lowerCI=mean(a$Lower.CL,b$Lower.CL), upperCI=mean(a$Upper.CL, b$Upper.CL))
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 All data coord perf~distance 0.5563044 0.3214828 0.7911261
d<-modavg(parm = "Time", cand.set = confmodels, modnames = confmodnames)
es[[length(es)+1]]<-data.frame(data="All data",factor="coord perf~time",effect_size=d$Mod.avg.beta,lowerCI= d$Lower.CL , upperCI=d$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 All data coord perf~time 0.01307057 -0.01367228 0.03981342
# modavg(parm = "dur", cand.set = confmodels, modnames = confmodnames)
dur.models<-confmodels[grep("dur", confmodnames, invert = F)]
d<-summary(dur.models[[1]])$coefficients$fixed[2]
d1<-confint(dur.models[[1]], parm="dur", level=0.95)[[1]][1:2]
es[[length(es)+1]]<-data.frame(data="All data",factor="coord perf~dur",effect_size=d,lowerCI= d1[1], upperCI=d1[2])
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## dur All data coord perf~dur -0.001524101 -0.003028919 -1.928248e-05
stresKP <- droplevels(stres[grep("//", stres$pair.x),])
cat("bout sample size")
## bout sample size
nrow(stresKP)
## [1] 34
cat("pair sample size")
## pair sample size
length(unique(stresKP$pair.x))
## [1] 12
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+ Time+songtype+distcat, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time+songtype+distcat, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time+songtype, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+songtype, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur+distcat, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~songtype+distcat, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~Time, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~songtype, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~distcat, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~dur, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(sing.perf~1, random=~1 |lek/pair.x , data = stresKP, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~sing.perf","sing.perf~",Modnames)
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt
## sing.perf~distcat 5 2.87 0.00 0.43 0.43
## sing.perf~songtype + distcat 6 3.72 0.85 0.28 0.71
## sing.perf~dur + distcat 6 4.28 1.41 0.21 0.92
## sing.perf~Time + songtype + distcat 7 6.88 4.01 0.06 0.98
## sing.perf~dur + Time + songtype + distcat 8 9.50 6.63 0.02 0.99
## sing.perf~1 4 12.70 9.83 0.00 1.00
## sing.perf~dur 5 14.17 11.30 0.00 1.00
## sing.perf~songtype 5 15.37 12.50 0.00 1.00
## sing.perf~Time 5 15.47 12.60 0.00 1.00
## sing.perf~dur + songtype 6 16.75 13.88 0.00 1.00
## sing.perf~Time + songtype 6 18.33 15.47 0.00 1.00
## LL
## sing.perf~distcat 4.64
## sing.perf~songtype + distcat 5.69
## sing.perf~dur + distcat 5.42
## sing.perf~Time + songtype + distcat 5.71
## sing.perf~dur + Time + songtype + distcat 6.13
## sing.perf~1 -1.66
## sing.perf~dur -1.01
## sing.perf~songtype -1.61
## sing.perf~Time -1.66
## sing.perf~dur + songtype -0.82
## sing.perf~Time + songtype -1.61
cs[[length(cs)+1]]<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## sing.perf~distcat 5 2.87 0.00 0.43
## sing.perf~songtype + distcat 6 3.72 0.85 0.28
## sing.perf~dur + distcat 6 4.28 1.41 0.21
## sing.perf~Time + songtype + distcat 7 6.88 4.01 0.06
##
## Model probabilities sum to 0.98
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
#effect size for song type
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Different"), distcat = c("Far", "Far"),Time = c(0,0), dur = c(1,1)), second.ord = T)
b<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Different"), distcat = c("Close", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
es[[length(es)+1]]<-data.frame(data="Known dyads",factor="coord perf~song type",effect_size=mean(a$Mod.avg.eff,b$Mod.avg.eff), lowerCI=mean(a$Lower.CL,b$Lower.CL), upperCI=mean(a$Upper.CL, b$Upper.CL))
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 Known dyads coord perf~song type 0.05160043 -0.1819734 0.2851743
#effect size for distance
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Same", "Same"), distcat = c("Far", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
b<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(songtype = c("Different", "Different"), distcat = c("Far", "Close"),Time = c(0,0), dur = c(1,1)), second.ord = T)
es[[length(es)+1]]<-data.frame(data="Known dyads",factor="coord perf~distance",effect_size=mean(a$Mod.avg.eff,b$Mod.avg.eff), lowerCI=mean(a$Lower.CL,b$Lower.CL), upperCI=mean(a$Upper.CL, b$Upper.CL))
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 Known dyads coord perf~distance 0.5081319 0.2714378 0.7448259
d<-modavg(parm = "Time", cand.set = confmodels, modnames = confmodnames)
es[[length(es)+1]]<-data.frame(data="Known dyads",factor="coord perf~time",effect_size=d$Mod.avg.beta,lowerCI= d$Lower.CL , upperCI=d$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## 1 Known dyads coord perf~time 0.002373733 -0.02205481 0.02680228
# modavg(parm = "dur", cand.set = confmodels, modnames = confmodnames)
dur.models<-confmodels[grep("dur", confmodnames, invert = F)]
d<-summary(dur.models[[1]])$coefficients$fixed[2]
d1<-confint(dur.models[[1]], parm="dur", level=0.95)[[1]][1:2]
es[[length(es)+1]]<-data.frame(data="Known dyads",factor="coord perf~dur",effect_size=d,lowerCI= d1[1], upperCI=d1[2])
es[[length(es)]]
## data factor effect_size lowerCI upperCI
## dur Known dyads coord perf~dur -0.000837914 -0.002136698 0.0004608705
cat("pattern by distance ALL DATA")
## pattern by distance ALL DATA
table(stres$distcat, stres$pattern)[-2,]
##
## No.ovlp No.pattern Ovlp
## Close 9 7 0
## Far 3 31 11
cat("pattern by distance known dyads")
## pattern by distance known dyads
table(stresKP$distcat, stresKP$pattern)
##
## No.ovlp No.pattern Ovlp
## Close 4 4 0
## Far 2 19 5
cat("distance by song type sharing ALL DATA")
## distance by song type sharing ALL DATA
table(stres$distcat, stres$songtype)[-2,]
##
## Different Same
## Close 0 16
## Far 20 25
cat("distance by song type sharing known dyads")
## distance by song type sharing known dyads
table(stresKP$distcat, stresKP$songtype)
##
## Different Same
## Close 0 8
## Far 16 10
cat("pattern by song type sharing known dyads")
## pattern by song type sharing known dyads
table(stres$pattern, stres$songtype)
##
## Different Same
## No.ovlp 2 10
## No.pattern 14 24
## Ovlp 4 7
cat("pattern by song type sharing known dyads")
## pattern by song type sharing known dyads
table(stresKP$pattern, stresKP$songtype)[]
##
## Different Same
## No.ovlp 2 4
## No.pattern 11 12
## Ovlp 3 2
ssresults <- droplevels(ssresults)
a <- table(ssresults$pair, ssresults$pattern)
cat("proportion of dyads showing a coordination pattern")
## proportion of dyads showing a coordination pattern
1- length(which(apply(a[,-2],1,sum)/apply(a,1,sum) == 0))/nrow(a)
## [1] 0.7368421
cat("proportion of dyads showing alternation")
## proportion of dyads showing alternation
length(which(a[,1] > 0))/nrow(a)
## [1] 0.4736842
cat("proportion of dyads showing overlapping")
## proportion of dyads showing overlapping
length(which(a[,3] > 0))/nrow(a)
## [1] 0.5263158
b <- a[apply(a,1,sum)>2,]
cat("pattern by song type sharing known dyads")
## pattern by song type sharing known dyads
1- length(which(apply(b[,-2],1,sum)/apply(b,1,sum) == 0))/nrow(b)
## [1] 0.9230769
cat("mean bouts per dyad")
## mean bouts per dyad
mean(table(ssresults$pair))
## [1] 6.368421
cat("sd bouts per dyad")
## sd bouts per dyad
sd(table(ssresults$pair))
## [1] 6.112015
# altchi <- a[,2:1]
# altchi[,1] <-apply(a,1,sum) * 0.025
#
# chisq.test(altchi)
#
#
# ovlchi <- a[,3:2]
# ovlchi[,1] <-apply(a,1,sum) * 0.025
#
# chisq.test(ovlchi)
bothchi <- a[,3:2]
bothchi[,1] <- apply(a[,-2],1,sum)
cat("chi square for occurrence of coordination in dyads")
## chi square for occurrence of coordination in dyads
chisq.test(bothchi, simulate.p.value = F)
##
## Pearson's Chi-squared test
##
## data: bothchi
## X-squared = 42.246, df = 18, p-value = 0.001022
cat("proportions of songs overlapped")
## proportions of songs overlapped
e <- sapply(1:nrow(results),function(x)
{results$obs.ovlps[x]/results$n[x]*2
})
tapply(e, INDEX = results$pattern, mean)
## No.ovlp No.pattern Ovlp
## 0.1381852 0.4112937 0.5732274
cat("proportion of unidentified birds")
## proportion of unidentified birds
d <- table(results$class)[-1]
(sum(d[1:2]) + (sum(d[3:5])*2))/(nrow(results)*2)
## [1] 0.2486486
cat("proportion of bouts with at least 1 unidentified bird")
## proportion of bouts with at least 1 unidentified bird
1 - 121/185
## [1] 0.3459459
me<-aggregate(gaps[,grep("gap|indivsolo",colnames(gaps))],by=list(gaps$sound.files,gaps$pattern),mean)
me<-me[!duplicated(me),]
me1<-data.frame(gaptype="solo gap",me[,c(1:4)])
me2<-data.frame(gaptype="duet gap",me[,c(1:2,5,4)])
colnames(me1)<-c("gaptype", "sound.files", "pattern", "gap", "indiv")
colnames(me2)<-c("gaptype", "sound.files", "pattern", "gap", "indiv")
me<-rbind(me1, me2)
me<-merge(me, results[,grep("sing.event|pair",colnames(results))], by.x= "sound.files", by.y= "sing.event")
me<-merge(me,songtype1[,grep("songtype|pair", colnames(songtype1))], by= "pair")
me<-me[!duplicated(me),]
cat("sample size")
## sample size
nrow(me)
## [1] 132
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype * pattern, random=~1 | sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~pattern, random=~1 | sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype , random=~ 1 | sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~1 , random=~1 | sound.files, data = me, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~gap","gap duration~",Modnames)
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt LL
## gap duration~gaptype * pattern 8 -384.47 0.00 1 1 200.82
## gap duration~gaptype 4 -366.55 17.92 0 1 187.43
## gap duration~pattern 5 -328.55 55.92 0 1 169.51
## gap duration~1 3 -323.42 61.05 0 1 164.80
cs[[length(cs)+1]]<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## gap duration~gaptype * pattern 8 -384.47 0 1
##
## Model probabilities sum to 1
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~gaptype+NO.OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.dur~gaptype+NO.OVLP 0.1044533 0.06514806
## upperCI
## Mod.avg.diff 0.1437586
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.pattern", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~gaptype+NO.PATT",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.dur~gaptype+NO.PATT 0.0399524 0.01147333
## upperCI
## Mod.avg.diff 0.06843146
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("Ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~gaptype+OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.dur~gaptype+OVLP 0.04299138 -0.003259029
## upperCI
## Mod.avg.diff 0.0892418
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("Ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~Ovlp.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~Ovlp.VS.No.ovlp+SOLOGAP -0.01310553
## lowerCI upperCI
## Mod.avg.diff -0.0560241 0.02981303
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~No.pattern.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~No.pattern.VS.No.ovlp+SOLOGAP -0.01682756
## lowerCI upperCI
## Mod.avg.diff -0.0511493 0.01749417
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~No.pattern.VS.Ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~No.pattern.VS.Ovlp+SOLOGAP -0.003722032
## lowerCI upperCI
## Mod.avg.diff -0.04212879 0.03468472
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~Ovlp.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~Ovlp.VS.No.ovlp+DUETGAP 0.0745675
## lowerCI upperCI
## Mod.avg.diff 0.03164893 0.1174861
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~No.pattern.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~No.pattern.VS.No.ovlp+DUETGAP 0.08132852
## lowerCI upperCI
## Mod.avg.diff 0.04700678 0.1156503
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="All data",factor="gap.dur~No.pattern.VS.Ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.dur~No.pattern.VS.Ovlp+DUETGAP -0.00676102
## lowerCI upperCI
## Mod.avg.diff -0.04516778 0.03164574
# by pattern for Known individuals
me<-me[!is.na(me$indiv),]
cat("sample size number of bouts")
## sample size number of bouts
nrow(me)
## [1] 102
cat("sample size number of dyads")
## sample size number of dyads
length(unique(me$indiv))
## [1] 12
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype * pattern, random=~1 | indiv/sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~pattern, random=~1 | indiv/sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype , random=~1 | indiv/sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~1 , random=~1 | indiv/sound.files, data = me, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~gap","gap duration~",Modnames)
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt LL
## gap duration~gaptype * pattern 9 -296.13 0.00 0.98 0.98 158.04
## gap duration~gaptype 5 -288.24 7.89 0.02 1.00 149.43
## gap duration~pattern 6 -254.60 41.53 0.00 1.00 133.74
## gap duration~1 4 -251.08 45.05 0.00 1.00 129.75
cs[[length(cs)+1]]<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## gap duration~gaptype * pattern 9 -296.13 0 0.98
##
## Model probabilities sum to 0.98
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~gaptype+NO.OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.dur~gaptype+NO.OVLP 0.09268589 0.04163014
## upperCI
## Mod.avg.diff 0.1437416
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.pattern", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~gaptype+NO.PATT",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.dur~gaptype+NO.PATT 0.04677359 0.008824618
## upperCI
## Mod.avg.diff 0.08472257
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("Ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~gaptype+OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.dur~gaptype+OVLP 0.03751271 -0.01742934
## upperCI
## Mod.avg.diff 0.09245476
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("Ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~Ovlp.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~Ovlp.VS.No.ovlp+SOLOGAP -0.02746772
## lowerCI upperCI
## Mod.avg.diff -0.08050223 0.02556679
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~No.pattern.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~No.pattern.VS.No.ovlp+SOLOGAP -0.03334329
## lowerCI upperCI
## Mod.avg.diff -0.07832559 0.01163901
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~Ovlp.VS.No.pattern+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~Ovlp.VS.No.pattern+SOLOGAP -0.005875568
## lowerCI upperCI
## Mod.avg.diff -0.05309184 0.04134071
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~Ovlp.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~Ovlp.VS.No.ovlp+DUETGAP 0.0826409
## lowerCI upperCI
## Mod.avg.diff 0.02960639 0.1356754
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~No.pattern.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~No.pattern.VS.No.ovlp+DUETGAP 0.07925559
## lowerCI upperCI
## Mod.avg.diff 0.03427329 0.1242379
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.dur~Ovlp.VS.No.pattern+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.dur~Ovlp.VS.No.pattern+DUETGAP 0.003385315
## lowerCI upperCI
## Mod.avg.diff -0.04383096 0.05060159
cv.gaps <- readRDS("~/Dropbox/LBH data/Vocalizations/Coordinated singing/cv.gaps.RDS")
me.cv <- reshape(cv.gaps[,grep("sound.files|gap|pattern|indivsolo", colnames(cv.gaps))],idvar = c("sound.files"),ids = cv.gaps$sound.files, times=names(cv.gaps)[c(2,4)],timevar = "gaptype", varying = list(names(cv.gaps)[c(2,4)]), direction = "long", v.names = "gap")
me.cv$gaptype <- as.factor(me.cv$gaptype)
cat("sample size")
## sample size
nrow(me.cv)
## [1] 134
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype * pattern, random=~1 | sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~pattern, random=~1 | sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype , random=~ 1 | sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~1 , random=~1 | sound.files, data = me.cv, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~gap","gap variation~",Modnames)
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt LL
## gap variation~gaptype 4 -381.35 0.00 0.9 0.9 194.83
## gap variation~gaptype * pattern 8 -376.92 4.43 0.1 1.0 197.04
## gap variation~1 3 -358.34 23.02 0.0 1.0 182.26
## gap variation~pattern 5 -354.06 27.29 0.0 1.0 182.27
cs[[length(cs)+1]] <- confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## gap variation~gaptype 4 -381.35 0.00 0.9
## gap variation~gaptype * pattern 8 -376.92 4.43 0.1
##
## Model probabilities sum to 1
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("No.ovlp", "No.ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~gaptype+NO.OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.cv~gaptype+NO.OVLP 0.04472304 0.0180233
## upperCI
## Mod.avg.diff 0.07142279
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("No.pattern", "No.pattern")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~gaptype+NO.PATT",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.cv~gaptype+NO.PATT 0.04773163 0.02733494
## upperCI
## Mod.avg.diff 0.06812833
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("Ovlp", "Ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~gaptype+OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff All data gap.cv~gaptype+OVLP 0.04970973 0.02263569
## upperCI
## Mod.avg.diff 0.07678376
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("Ovlp", "No.ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~Ovlp.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~Ovlp.VS.No.ovlp+SOLOGAP -0.002666117
## lowerCI upperCI
## Mod.avg.diff -0.03012683 0.02479459
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("No.pattern", "No.ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~No.pattern.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~No.pattern.VS.No.ovlp+SOLOGAP -0.001586391
## lowerCI upperCI
## Mod.avg.diff -0.02465744 0.02148466
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~No.pattern.VS.Ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~No.pattern.VS.Ovlp+SOLOGAP 0.001079726
## lowerCI upperCI
## Mod.avg.diff -0.02151804 0.02367749
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.ovlp", "Ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~Ovlp.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~Ovlp.VS.No.ovlp+DUETGAP -0.002320566
## lowerCI upperCI
## Mod.avg.diff -0.02865142 0.02401028
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.ovlp", "No.pattern")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~No.pattern.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~No.pattern.VS.No.ovlp+DUETGAP -0.001422199
## lowerCI upperCI
## Mod.avg.diff -0.02411251 0.02126811
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]] <- data.frame(data="All data",factor="gap.cv~No.pattern.VS.Ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff All data gap.cv~No.pattern.VS.Ovlp+DUETGAP -0.000898367
## lowerCI upperCI
## Mod.avg.diff -0.02321441 0.02141767
# by pattern for Known individuals
me.cv<-me.cv[!is.na(me.cv$indivsolo),]
names(me.cv)[grep("indivsolo", names(me.cv))] <- "indiv"
cat("sample size number of bouts")
## sample size number of bouts
nrow(me.cv)
## [1] 102
cat("sample size number of individuals")
## sample size number of individuals
length(unique(me.cv$indiv))
## [1] 12
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype * pattern, random=~1 | indiv/sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~pattern, random=~1 | indiv/sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype , random=~1 | indiv/sound.files, data = me.cv, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~1 , random=~1 | indiv/sound.files, data = me.cv, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
Modnames<-gsub("~gap","gap variation~",Modnames)
aictabs[[length(aictabs)+1]]<-aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
aictabs[[length(aictabs)]]
##
## Model selection based on AICc:
##
## K AICc Delta_AICc AICcWt Cum.Wt LL
## gap variation~gaptype 5 -300.26 0.00 0.93 0.93 155.44
## gap variation~gaptype * pattern 9 -295.03 5.23 0.07 1.00 157.49
## gap variation~1 4 -283.37 16.89 0.00 1.00 145.89
## gap variation~pattern 6 -279.23 21.03 0.00 1.00 146.06
cs[[length(cs)+1]]<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs[[length(cs)]]
##
## Confidence set for the best model
##
## Method: raw sum of model probabilities
##
## 95% confidence set:
## K AICc Delta_AICc AICcWt
## gap variation~gaptype 5 -300.26 0.00 0.93
## gap variation~gaptype * pattern 9 -295.03 5.23 0.07
##
## Model probabilities sum to 1
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("No.ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~gaptype+NO.OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.cv~gaptype+NO.OVLP 0.04004719 0.01454456
## upperCI
## Mod.avg.diff 0.06554983
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("No.pattern", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~gaptype+NO.PATT",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.cv~gaptype+NO.PATT 0.04150475 0.019708
## upperCI
## Mod.avg.diff 0.0633015
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "sologap"), pattern = c("Ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~gaptype+OVLP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size lowerCI
## Mod.avg.diff known dyads gap.cv~gaptype+OVLP 0.04331794 0.01637223
## upperCI
## Mod.avg.diff 0.07026365
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("Ovlp", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~Ovlp.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.cv~Ovlp.VS.No.ovlp+SOLOGAP -0.002128939
## lowerCI upperCI
## Mod.avg.diff -0.03014032 0.02588245
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("No.pattern", "No.ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~No.pattern.VS.No.ovlp+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.cv~No.pattern.VS.No.ovlp+SOLOGAP -0.001319688
## lowerCI upperCI
## Mod.avg.diff -0.02575237 0.023113
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("sologap", "sologap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~Ovlp.VS.No.pattern+SOLOGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.cv~Ovlp.VS.No.pattern+SOLOGAP 0.0008092507
## lowerCI upperCI
## Mod.avg.diff -0.02265158 0.02427008
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.ovlp", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="cgap.cv~Ovlp.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads cgap.cv~Ovlp.VS.No.ovlp+DUETGAP -0.001141808
## lowerCI upperCI
## Mod.avg.diff -0.02593717 0.02365355
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.ovlp", "No.pattern")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~No.pattern.VS.No.ovlp+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor
## Mod.avg.diff known dyads gap.cv~No.pattern.VS.No.ovlp+DUETGAP
## effect_size lowerCI upperCI
## Mod.avg.diff -0.0001378696 -0.02264006 0.02236432
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duetgap", "duetgap"), pattern = c("No.pattern", "Ovlp")))
es[[length(es)+1]]<-data.frame(data="known dyads",factor="gap.cv~Ovlp.VS.No.pattern+DUETGAP",effect_size=a$Mod.avg.eff, lowerCI= a$Lower.CL, upperCI=a$Upper.CL)
es[[length(es)]]
## data factor effect_size
## Mod.avg.diff known dyads gap.cv~Ovlp.VS.No.pattern+DUETGAP -0.001003939
## lowerCI upperCI
## Mod.avg.diff -0.02485721 0.02284933
##save results
es <- lapply(es, function(x)
{colnames(x)<-c("Data set", "Fixed effect (predictor)", "Effect size", "Lower 95 CI", "Upper 95% CI")
return(x)}
)
esT<-do.call("rbind", es)
esT$`Fixed effect (predictor)`<- sapply(1:nrow(esT), function(x){
if(any(all(c(esT$`Lower 95 CI`[x], esT$`Upper 95% CI`[x]) > 0), all(c(esT$`Lower 95 CI`[x], esT$`Upper 95% CI`[x]) < 0)))
return(paste(esT$`Fixed effect (predictor)`[x], "*",sep = "")) else
return(as.character(esT$`Fixed effect (predictor)`[x]))})
colnames(esT)<-c("Data set", "Fixed effect (predictor)", "Effect size", "Lower 95 CI", "Upper 95% CI")
write.csv(esT, "~/Dropbox/LBH data/Vocalizations/Coordinated singing/effect size results.csv", row.names = F)
round.esT <- esT
round.esT[,3:5] <- apply(esT[,3:5],2,round, 3)
library(grid)
library(gridExtra)
g <- tableGrob(round.esT, rows = NULL)
grid.newpage()
grid.draw(g)
names(aictabs) <-rep(c("All data", "known dyads"), 3)
aicT<-list()
for(i in 1:length(aictabs))
{
aicT[[length(aicT)+1]]<-rbind(data.frame(data=names(aictabs)[i],aictabs[[i]]))
}
aicT<-do.call("rbind",aicT)
write.csv(aicT, "~/Dropbox/LBH data/Vocalizations/Coordinated singing/All models.csv", row.names = F)
# csT<-list()
# for(i in 1:length(cs))
# {
# csT[[length(csT)+1]]<-rbind(data.frame(data=names(cs)[i],cs[[i]]$table))
# }
#
# csT<-do.call("rbind",csT)
#
# write.csv(esT, "~/Dropbox/LBH data/Vocalizations/Coordinated singing/95 prob models.csv", row.names = F)
# by pattern for Known individuals
me<-me[grep("//",me$pair),]
cat("sample size")
nrow(me)
Cand.models <- list( )
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype * pattern, random=~1 | pair/sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~pattern, random=~1 | pair/sound.files, data = me, method = "ML")
Cand.models[[length(Cand.models)+1]]<-lme(gap~gaptype , random=~1 | pair/sound.files, data = me, method = "ML")
Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
# Modnames<-gsub("sing.perf","",Modnames)
aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
cs<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
cs
confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
a<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.ovlp", "No.ovlp")))
a
b<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("No.pattern", "No.pattern")))
b
c<-modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "solo gap"), pattern = c("Ovlp", "Ovlp")))
c
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("Ovlp", "No.ovlp")))
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "No.ovlp")))
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("solo gap", "solo gap"), pattern = c("No.pattern", "Ovlp")))
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "Ovlp")))
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.ovlp", "No.pattern")))
modavgEffect(cand.set = confmodels, modnames = confmodnames, newdata = data.frame(gaptype = c("duet gap", "duet gap"), pattern = c("No.pattern", "Ovlp")))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
AOresults<-droplevels(ssresults[ssresults$pattern!="No.pattern",])
a<-a1<-table(ssresults$pair, ssresults$pattern)[,c(1,3)]
a[a>1]<-1
cat("pairs with two both patterns")
## pairs with two both patterns
a1[apply(a,1,sum)>1,]
##
## No.ovlp Ovlp
## 103//104 1 9
## 108//111 3 1
## 111//117 3 6
## 143//148 1 2
## -1//90 3 2
nrow(a1[apply(a,1,sum)>1,])
## [1] 5
cat("pairs with single pattern")
## pairs with single pattern
a1[apply(a,1,sum)==1,]
##
## No.ovlp Ovlp
## 108//109 13 0
## 108//117 0 3
## 24//88 2 0
## 32//54 0 1
## 32//60 0 1
## 54//60 0 1
## 60//81 2 0
## 72//100 0 1
## 86//149 1 0
nrow(a1[apply(a,1,sum)==1,])
## [1] 9
#chi square
a<-a1<-table(ssresults$pair, ssresults$pattern)[,c(1,3)]
a1<-a1[apply(a,1,sum)>0,]
# library(MASS)
# a1[a1>1]<-1
# chisq.test(a1)
# spagg<-aggregate(AOresults[,grep("logdist|dur|Time", colnames(AOresults))], list(AOresults$pattern, AOresults$pair), mean)
# colnames(spagg)[1:2]<-c("Pattern", "Pair")
#
#
# pattern <- as.integer(ifelse(spagg$Pattern=="Ovlp",1,0))
# dist<-spagg$Distance
# pair<-spagg$Pair
#
# Cand.models <- list( )
#
# Cand.models[[length(Cand.models)+1]]<-glmer(Pattern ~ logdist + Time + (1 | Pair), family = binomial, data = spagg)
# Cand.models[[length(Cand.models)+1]]<-glmer(Pattern ~ Time + (1 | Pair), family = binomial, data = spagg)
# Cand.models[[length(Cand.models)+1]]<-glmer(Pattern ~ logdist +(1 | Pair), family = binomial, data = spagg)
# Cand.models[[length(Cand.models)+1]]<-glmer(Pattern ~ 1 + (1 | Pair), family = binomial, data = spagg)
# Cand.models[[length(Cand.models)+1]]<-glmer(Pattern ~ dur +(1 | Pair), family = binomial, data = spagg)
#
# Modnames<-sapply(Cand.models, function(x) paste(as.formula(x), collapse = ""))
#
# cat("coor pattern vs distance repeated measures by pair")
#
# aictab(cand.set = Cand.models, modnames = Modnames, second.ord = T)
#
# cs<-confset(cand.set = Cand.models, modnames = Modnames, second.ord = T, method = "raw")
#
# cs
#
# confmodels<-Cand.models[Modnames %in% cs[[length(cs)]]$table[,1]]
#
# confmodnames<-Modnames[Modnames %in% cs[[length(cs)]]$table[,1]]
#
# modavg(parm = "logdist", cand.set = confmodels, modnames = confmodnames)
meanSNR<-aggregate(SNRdata[,grep("SNR", colnames(SNRdata))], list(SNRdata$coord.sing.event, SNRdata$sound.files), mean)
colnames(meanSNR)<-c("coord.sing.event", "channel", "SNR")
meanSNR2<-merge(meanSNR, results[,grep("coord.sing.event|dur|sing.perf", colnames(results))], by= "coord.sing.event")
meanSNR2<-meanSNR2[meanSNR2$SNR>2,]
a<-table(meanSNR2$coord.sing.event)
a<-a[a>1]
meanSNR2<-meanSNR2[meanSNR2$coord.sing.event %in% names(a),]
meanSNR2<-meanSNR2[order(meanSNR2$sing.perf),]
# View(meanSNR2[,c(1,3,4,5)])
#best alternating ones
meanSNR2[1:30,c(1,3,4,5)]
#best overlapping ones
meanSNR2[nrow(meanSNR2)-30:30,c(1,3,4)]
#ovlp 391 from 1:02 to 1:09
#alternation 390 from 43 to 52
library(seewave)
library(tuneR)
setwd("/media/m/Eutoxeres/LBH song recordings/Coordinated singing/cleaned/split wavs")
wavs<-list.files(pattern = ".wav$",ignore.case = T)
wavleft<-grep("left", wavs,value = T)
wavright<-grep("right", wavs,value = T)
library(RColorBrewer)
tiff(filename = "/home/m/Dropbox/LBH data/Vocalizations/Coordinated singing/graphs/spectrograms.tiff",res = 200,
width = 2000, height = 1000)
par(mfrow=c(4,1))
# col1<-colorRampPalette(brewer.pal(9,"Blues"))(10)[9]
# col2<-colorRampPalette(brewer.pal(9,"Blues"))(10)[5]
col1<-"#147777"
col2<-"#A13737"
ovlp<-90
#first event
flim<-c(2.5,9.8)
tlim<-c(62.5, 72)
event<-391
par(mar=c(0,4.2,4,0.6))
spectro(readWave(grep(event,wavleft,value = T)),f = 44100, ovlp = ovlp, wl = 300, flim = flim, tlim = tlim,palette = reverse.gray.colors.2, scale = F, grid = F, axisX = F, flab = "", tlab = "",trel = F)
start <- alldat$start[alldat$sound.files == grep(event,wavleft,value = T)]-tlim[1]
end <- alldat$end[alldat$sound.files == grep(event,wavleft,value = T)]-tlim[1]
start <- start[start > 0 & start < tlim[2]]
end <- end[end > 0 & end < tlim[2]]
invisible(sapply(1:length(start),FUN = function(x)
{
rect(xleft = start[x], ybottom = flim[1], xright = end[x], ytop = flim[1]+0.5, col = col1, border = col1)
})
)
text("Frequency (kHz)", x = -0.04*(tlim[2]-tlim[1]) , y = 1.95, srt = 90, xpd=T, cex=1.5)
text("A", x = 0.1 , y = 9, xpd=T, cex=1.5, font = 2)
#second channel
par(mar=c(4,4.2, 0, 0.6))
spectro(readWave(grep(event,wavright,value = T)),f = 44100, ovlp = ovlp, wl = 300, flim = flim, tlim = tlim,palette = reverse.gray.colors.2, scale = F, grid = F, trel = F, flab= "", tlab = "")
start <- alldat$start[alldat$sound.files == grep(event,wavright,value = T)]-tlim[1]
end <- alldat$end[alldat$sound.files == grep(event,wavright,value = T)]-tlim[1]
start <- start[start > 0 & start < tlim[2]]
end <- end[end > 0 & end < tlim[2]]
invisible(sapply(1:length(start),FUN = function(x)
{
rect(xleft = start[x], ybottom = flim[2]-0.5, xright = end[x], ytop = flim[2], col = col2, border = col2)
})
)
text("Frequency (kHz)", x = -0.04*(tlim[2]-tlim[1]), y = flim[2] - flim[1]+1.95, srt = 90, xpd=T, cex=1.5)
text("Time (s)", x = (tlim[2]-tlim[1])/2, y = (flim[2]-flim[1]/1.2)-(flim[2]-flim[1]), xpd=T, cex=1.5)
#second event
tlim<-c(43, 43 + tlim[2] - tlim[1])
event<-390
par(mar=c(0,4.2,4,0.6))
spectro(readWave(grep(event,wavleft,value = T)),f = 44100, ovlp = ovlp, wl = 300, flim = flim, tlim = tlim,palette = reverse.gray.colors.2, scale = F, grid = F, axisX = F, flab = "", tlab = "",trel = F)
start <- alldat$start[alldat$sound.files == grep(event,wavleft,value = T)]-tlim[1]
end <- alldat$end[alldat$sound.files == grep(event,wavleft,value = T)]-tlim[1]
start <- start[start > 0 & start < tlim[2]]
end <- end[end > 0 & end < tlim[2]]
invisible(sapply(1:length(start),FUN = function(x)
{
rect(xleft = start[x], ybottom = flim[1], xright = end[x], ytop = flim[1]+0.5, col = col1, border = col1)
})
)
text("Frequency (kHz)", x = -0.04*(tlim[2]-tlim[1]) , y = 1.95, srt = 90, xpd=T, cex=1.5)
text("B", x = 0.1 , y = 9, xpd=T, cex=1.5, font = 2)
#second channel
par(mar=c(4,4.2, 0, 0.6))
spectro(readWave(grep(event,wavright,value = T)),f = 44100, ovlp = ovlp, wl = 300, flim = flim, tlim = tlim,palette = reverse.gray.colors.2, scale = F, grid = F, trel = F, flab= "", tlab = "")
start <- alldat$start[alldat$sound.files == grep(event,wavright,value = T)]-tlim[1]
end <- alldat$end[alldat$sound.files == grep(event,wavright,value = T)]-tlim[1]
# start <- start[start > 0 & start < tlim[2]]
# end <- end[end > 0 & end < tlim[2]]
invisible(sapply(1:length(start),FUN = function(x)
{
rect(xleft = start[x], ybottom = flim[2]-0.5, xright = end[x], ytop = flim[2], col = col2, border = col2)
})
)
text("Frequency (kHz)", x = -0.04*(tlim[2]-tlim[1]), y = flim[2] - flim[1]+1.95, srt = 90, xpd=T, cex=1.5)
text("Time (s)", x = (tlim[2]-tlim[1])/2, y = (flim[2]-flim[1]/1.2)-(flim[2]-flim[1]), xpd=T, cex=1.5)
dev.off()
require(gridExtra)
tiff(filename = "/home/m/Dropbox/LBH data/Vocalizations/Coordinated singing/graphs/multipanel fig.tiff",res = 300,
width = 4000, height = 2400)
ggs<-grid.arrange(gg1.col,gg9.col,gg22.col,gg23.col, ncol=2)
dev.off()
jpeg(filename = "/home/m/Dropbox/LBH data/Vocalizations/Coordinated singing/graphs/multipanel fig.jpeg",res = 300,
width = 4000, height = 2400)
ggs<-grid.arrange(gg1.col,gg9.col,gg22.col,gg23.col, ncol=2)
dev.off()