This R Markdown document contains the HoBo data between august 2017 and september 2018.
TLDR: I compared temperature data between fringe, back and fore reefs in Moorea, based on our HoBo data. Fringe reefs on average are warmer and have more extreme daily temperature ranges. Fore reefs are much more stable, both in term of daily and yearly temperature ranges. Back reefs are intermediately warm and variable. However, these patterns change in relative strength between months.
Set working directory using ‘setwd()’, load Tidyverse using library() and read file using read.csv().
library(tidyverse)
library(cowplot)
hobotemp <- read.csv('hobodata.csv')
Check whether the dataset loaded correctly using head(), which will show us the first few rows of the dataset.
head(hobotemp)
## unique lter zone number date temp light
## 1 1 0 back 1 9/16/2017 12:00 27.862 16533.4
## 2 2 0 back 2 9/16/2017 14:00 27.272 6544.5
## 3 3 0 back 3 9/16/2017 16:00 27.075 3444.5
## 4 4 0 back 4 9/16/2017 18:00 26.781 10.8
## 5 5 0 back 5 9/16/2017 20:00 26.585 0.0
## 6 6 0 back 6 9/16/2017 22:00 26.585 0.0
All the correct variables are there!
Now let’s check the number of rows using nrow() to see whether it’s the same as the excel file.
nrow(hobotemp)
## [1] 67365
Great. Time to transform it and do the analysis.
Transform the date/time column into separate columns for time and date. Also check whether it worked using head().
hobotemplongdate <- tidyr::separate(hobotemp, 'date',
into = c('longdate', 'time'),
sep= ' ')
head(hobotemplongdate)
## unique lter zone number longdate time temp light
## 1 1 0 back 1 9/16/2017 12:00 27.862 16533.4
## 2 2 0 back 2 9/16/2017 14:00 27.272 6544.5
## 3 3 0 back 3 9/16/2017 16:00 27.075 3444.5
## 4 4 0 back 4 9/16/2017 18:00 26.781 10.8
## 5 5 0 back 5 9/16/2017 20:00 26.585 0.0
## 6 6 0 back 6 9/16/2017 22:00 26.585 0.0
That worked.
I want to plot the temperature data over time separately for each lter site (0-6) and reef zone (fringe, back, fore). I will use the ggplot function within Tidyverse for this.
ntempgraph <- ggplot(data=hobotemplongdate,
aes(x=as.Date(longdate, format = "%m / %d / %Y"),
y=temp, colour=zone)) +
geom_point(size=1, alpha = 1/10)+ theme_bw()+
facet_grid(fct_relevel(zone, "fringe", "back", "fore")~lter)+
theme(axis.text.x = element_text(angle=45, margin = margin(t=20, r=100)))+
labs(title="Raw temperature data", y="Temperature (°C)", x="Date")
ntempgraph
It seems like there is a difference in mean temperature, daily temperature ranges, and temperature minima and maxima. In the next section I will test for these differences in several ways.
In this section I will analyse average temperature values across sites and zones. First I will manipulate the dataset to calculate daily means, then I will visualize these data and test for significance.
Separate the ‘longdate’ column into separate columns for month, day and year using the separate() function. By doing this I can calculate monthly or daily averages later on. Check the dataset using the head() function to see the first few rows and the variable names.
hobofull <- hobotemplongdate %>%
tidyr::separate('longdate',
into = c('month', 'day', 'year'),
sep= '/',
remove = FALSE)
head(hobofull)
## unique lter zone number longdate month day year time temp light
## 1 1 0 back 1 9/16/2017 9 16 2017 12:00 27.862 16533.4
## 2 2 0 back 2 9/16/2017 9 16 2017 14:00 27.272 6544.5
## 3 3 0 back 3 9/16/2017 9 16 2017 16:00 27.075 3444.5
## 4 4 0 back 4 9/16/2017 9 16 2017 18:00 26.781 10.8
## 5 5 0 back 5 9/16/2017 9 16 2017 20:00 26.585 0.0
## 6 6 0 back 6 9/16/2017 9 16 2017 22:00 26.585 0.0
There are now separate columns for month, day, and year. Perfect.
I want to calculate daily temperature means for each site and zone. I am using the group_by() and summarise() function to do this.
hobofullmean <- hobofull %>%
group_by(year, month, day, zone, lter, longdate)%>%
summarise(meantemp = mean(temp))
head(hobofullmean)
## # A tibble: 6 x 7
## # Groups: year, month, day, zone, lter [6]
## year month day zone lter longdate meantemp
## <chr> <chr> <chr> <fct> <dbl> <chr> <dbl>
## 1 2017 10 1 back 0 10/1/2017 27.3
## 2 2017 10 1 back 3.00 10/1/2017 27.2
## 3 2017 10 1 back 3.50 10/1/2017 27.2
## 4 2017 10 1 back 4.00 10/1/2017 26.9
## 5 2017 10 1 back 5.00 10/1/2017 27.0
## 6 2017 10 1 back 5.50 10/1/2017 27.1
Looks good
Now I will plot the daily mean temperature for each reef zone separately but averaged over lter sites. I will use ggplot with the geom_smooth() function to get a line with 95% confidence intervals.
hobofullmean$month <- factor(hobofullmean$month, levels=c("9", "10", "11", "12", "1", "2", "3", "4", "5", "6", "7", "8"))
meanplot <- ggplot(hobofullmean, aes(x=as.Date(longdate, format= "%m / %d / %Y"), y=meantemp))+
geom_smooth(aes(colour=zone))+
theme_bw()+
labs(title= "Daily temperature means", y="Daily mean temperature (°C) with 95% CI", x="Date")
meanplot
Interestingly, mean daily temperatures seem to increase relatively steadily from the fore reef to the back reef and fringing reef. Temperature differences are most pronounced in January and April. Temperature differences are more pronounced in the fall (October - Jan) and nearly absent in the spring (April - July)
Given that the daily temperatures vary so much over time, I want to calculate average ranges for separate time intervals. I will use the group_by() and the summarise() function again, this time to calculate mean daily temperature per month.
This should leave us with a much smaller dataset. We have 9 sites with back and fringe zones (=18), 3 with back, fringe and fore reef zones (=21). And up to 12 months. That means there should be a maximum of (max. 12*21= 252) 252 rows. However, we don’t have data for all months for every site. The total number of rows should therefore be <252. I will check this using the nrow() function to count the number of rows.
hobofullmeanmonth <- hobofullmean %>%
group_by(year, month, lter, zone)%>%
summarise(meanmonth = mean(meantemp))
nrow(hobofullmeanmonth)
## [1] 209
Number of rows = 209 which < 252. Makes sense.
Now I want to test for significant differences between zones. I will use an anova using the function aov()
hobomeanmonthaov <- aov(meanmonth~zone + as.factor(month) + as.factor(lter), data=hobofullmeanmonth)
summary(hobomeanmonthaov)
## Df Sum Sq Mean Sq F value Pr(>F)
## zone 2 2.79 1.395 72.087 < 2e-16 ***
## as.factor(month) 11 128.11 11.646 601.693 < 2e-16 ***
## as.factor(lter) 8 0.51 0.064 3.302 0.00149 **
## Residuals 187 3.62 0.019
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
There is a significant effect of zone, month and lter on daily temperature variability.
Now I will use a post-hoc test to compare individual zones, lter sites, and months. I am mostly interested in looking at zones, but I included sites and months just to be comprehensive.
HSD <- TukeyHSD(hobomeanmonthaov, ordered=FALSE)
HSD
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = meanmonth ~ zone + as.factor(month) + as.factor(lter), data = hobofullmeanmonth)
##
## $zone
## diff lwr upr p adj
## fore-back -0.1812074 -0.24680114 -0.1156137 0
## fringe-back 0.1410551 0.09103532 0.1910749 0
## fringe-fore 0.3222625 0.25744510 0.3870799 0
##
## $`as.factor(month)`
## diff lwr upr p adj
## 10-9 -0.22902606 -0.386975421 -0.07107671 0.0002009
## 11-9 0.76512653 0.607177178 0.92307589 0.0000000
## 12-9 1.65756375 1.499614396 1.81551311 0.0000000
## 1-9 2.09328592 1.935336565 2.25123528 0.0000000
## 2-9 1.20783593 1.049886573 1.36578529 0.0000000
## 3-9 1.76086182 1.608950997 1.91277265 0.0000000
## 4-9 1.80759720 1.651857037 1.96333737 0.0000000
## 5-9 1.32136405 1.165623888 1.47710422 0.0000000
## 6-9 0.63333717 0.477597006 0.78907734 0.0000000
## 7-9 0.13226397 -0.023476191 0.28800414 0.1840415
## 8-9 -0.01422638 -0.177355776 0.14890301 1.0000000
## 11-10 0.99415260 0.836203242 1.15210196 0.0000000
## 12-10 1.88658982 1.728640460 2.04453917 0.0000000
## 1-10 2.32231199 2.164362629 2.48026134 0.0000000
## 2-10 1.43686199 1.278912637 1.59481135 0.0000000
## 3-10 1.98988789 1.837977061 2.14179871 0.0000000
## 4-10 2.03662327 1.880883101 2.19236343 0.0000000
## 5-10 1.55039012 1.394649952 1.70613028 0.0000000
## 6-10 0.86236324 0.706623070 1.01810340 0.0000000
## 7-10 0.36129004 0.205549872 0.51703020 0.0000000
## 8-10 0.21479968 0.051670288 0.37792908 0.0012733
## 12-11 0.89243722 0.734487861 1.05038657 0.0000000
## 1-11 1.32815939 1.170210031 1.48610874 0.0000000
## 2-11 0.44270940 0.284760039 0.60065875 0.0000000
## 3-11 0.99573529 0.843824462 1.14764612 0.0000000
## 4-11 1.04247067 0.886730502 1.19821083 0.0000000
## 5-11 0.55623752 0.400497353 0.71197769 0.0000000
## 6-11 -0.13178936 -0.287529529 0.02395080 0.1882882
## 7-11 -0.63286256 -0.788602726 -0.47712239 0.0000000
## 8-11 -0.77935292 -0.942482311 -0.61622352 0.0000000
## 1-12 0.43572217 0.277772813 0.59367153 0.0000000
## 2-12 -0.44972782 -0.607677179 -0.29177847 0.0000000
## 3-12 0.10329807 -0.048612756 0.25520890 0.5153577
## 4-12 0.15003345 -0.005706716 0.30577362 0.0707304
## 5-12 -0.33619970 -0.491939865 -0.18045953 0.0000000
## 6-12 -1.02422658 -1.179966747 -0.86848641 0.0000000
## 7-12 -1.52529978 -1.681039944 -1.36955961 0.0000000
## 8-12 -1.67179013 -1.834919529 -1.50866074 0.0000000
## 2-1 -0.88544999 -1.043399349 -0.72750064 0.0000000
## 3-1 -0.33242410 -0.484334926 -0.18051327 0.0000000
## 4-1 -0.28568872 -0.441428885 -0.12994855 0.0000005
## 5-1 -0.77192187 -0.927662035 -0.61618170 0.0000000
## 6-1 -1.45994875 -1.615688916 -1.30420858 0.0000000
## 7-1 -1.96102195 -2.116762114 -1.80528178 0.0000000
## 8-1 -2.10751230 -2.270641698 -1.94438291 0.0000000
## 3-2 0.55302589 0.401115067 0.70493672 0.0000000
## 4-2 0.59976127 0.444021107 0.75550144 0.0000000
## 5-2 0.11352812 -0.042212042 0.26926829 0.4027642
## 6-2 -0.57449876 -0.730238924 -0.41875859 0.0000000
## 7-2 -1.07557196 -1.231312122 -0.91983179 0.0000000
## 8-2 -1.22206231 -1.385191706 -1.05893292 0.0000000
## 4-3 0.04673538 -0.102877118 0.19634788 0.9967094
## 5-3 -0.43949777 -0.589110267 -0.28988527 0.0000000
## 6-3 -1.12752465 -1.277137149 -0.97791215 0.0000000
## 7-3 -1.62859785 -1.778210346 -1.47898535 0.0000000
## 8-3 -1.77508821 -1.932378063 -1.61779835 0.0000000
## 5-4 -0.48623315 -0.639732333 -0.33273397 0.0000000
## 6-4 -1.17426003 -1.327759214 -1.02076085 0.0000000
## 7-4 -1.67533323 -1.828832412 -1.52183404 0.0000000
## 8-4 -1.82182358 -1.982814887 -1.66083228 0.0000000
## 6-5 -0.68802688 -0.841526065 -0.53452770 0.0000000
## 7-5 -1.18910008 -1.342599263 -1.03560090 0.0000000
## 8-5 -1.33559044 -1.496581738 -1.17459913 0.0000000
## 7-6 -0.50107320 -0.654572381 -0.34757401 0.0000000
## 8-6 -0.64756355 -0.808554856 -0.48657225 0.0000000
## 8-7 -0.14649036 -0.307481658 0.01450095 0.1133931
##
## $`as.factor(lter)`
## diff lwr upr p adj
## 1-0 -0.012872151 -0.14265483 0.116910532 0.9999973
## 2-0 0.003063241 -0.12581169 0.131938174 1.0000000
## 3-0 0.069843625 -0.06423991 0.203927157 0.7843917
## 3.5-0 0.105007537 -0.02907600 0.239091068 0.2596441
## 4-0 -0.052748911 -0.18683244 0.081334621 0.9477606
## 5-0 0.060554496 -0.07352904 0.194638028 0.8899271
## 5.5-0 0.012625926 -0.12145761 0.146709457 0.9999982
## 6-0 -0.023716115 -0.18087906 0.133446826 0.9999312
## 2-1 0.015935391 -0.09975121 0.131621989 0.9999658
## 3-1 0.082715776 -0.03874629 0.204177843 0.4513305
## 3.5-1 0.117879687 -0.00358238 0.239341755 0.0647599
## 4-1 -0.039876760 -0.16133883 0.081585307 0.9824628
## 5-1 0.073426647 -0.04803542 0.194888714 0.6164772
## 5.5-1 0.025498076 -0.09596399 0.146960144 0.9991894
## 6-1 -0.010843964 -0.15738689 0.135698966 0.9999997
## 3-2 0.066780384 -0.05371127 0.187272034 0.7213351
## 3.5-2 0.101944296 -0.01854735 0.222435945 0.1714878
## 4-2 -0.055812152 -0.17630380 0.064679498 0.8750033
## 5-2 0.057491255 -0.06300039 0.177982904 0.8555496
## 5.5-2 0.009562685 -0.11092896 0.130054334 0.9999995
## 6-2 -0.026779355 -0.17251897 0.118960255 0.9996963
## 3.5-3 0.035163912 -0.09088323 0.161211056 0.9939789
## 4-3 -0.122592536 -0.24863968 0.003454608 0.0636070
## 5-3 -0.009289129 -0.13533627 0.116758015 0.9999997
## 5.5-3 -0.057217699 -0.18326484 0.068829445 0.8870288
## 6-3 -0.093559740 -0.24392489 0.056805413 0.5781035
## 4-3.5 -0.157756448 -0.28380359 -0.031709303 0.0037666
## 5-3.5 -0.044453041 -0.17050019 0.081594104 0.9726160
## 5.5-3.5 -0.092381611 -0.21842876 0.033665533 0.3473616
## 6-3.5 -0.128723651 -0.27908880 0.021641501 0.1597456
## 5-4 0.113303407 -0.01274374 0.239350551 0.1161731
## 5.5-4 0.065374837 -0.06067231 0.191421981 0.7883832
## 6-4 0.029032796 -0.12133236 0.179397949 0.9995613
## 5.5-5 -0.047928570 -0.17397571 0.078118574 0.9570683
## 6-5 -0.084270611 -0.23463576 0.066094542 0.7089158
## 6-5.5 -0.036342040 -0.18670719 0.114023112 0.9977703
The zones differ significantly from each other, as do most of the months. LTER sites seem to be more similar. The 0 p-value for comparisons between zones is a limitation of the Tukey_HSD code. Apparently it cannot display more than 8 decimals, or p-values lower than 2e-16.
In this section I will explore differences in temperature ranges between the different zones over time. First I will analyse differences in daily temperature ranges between reef zones, sites, and months. In the section thereafter I will look at daily minima and maxima to look at what drives differences in daily temperature ranges.
I will use the group_by() function to select the variables that I want to keep. I will then use the summarise() function to pick the lowest and highest temperature for each unique date using the min() and max() arguments. Lastly, I will use the mutate() function to create a new column named ‘range’ in which I subtract the minimum temperature from the daily maximum temperature for every unique day for each lter site and reef zone separately.
Then, I will check the dataset using the function head() again.
hobofullrange <- hobofull %>%
group_by(year, month, day, zone, lter, longdate)%>%
summarise(min_temp = min(temp), max_temp = max(temp))%>%
mutate(range = max_temp-min_temp)
head(hobofullrange, digits=5)
## # A tibble: 6 x 9
## # Groups: year, month, day, zone, lter [6]
## year month day zone lter longdate min_temp max_temp range
## <chr> <chr> <chr> <fct> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 2017 10 1 back 0 10/1/2017 27.0 28.5 1.48
## 2 2017 10 1 back 3.00 10/1/2017 26.6 28.8 2.17
## 3 2017 10 1 back 3.50 10/1/2017 26.6 29.2 2.57
## 4 2017 10 1 back 4.00 10/1/2017 26.6 27.7 1.08
## 5 2017 10 1 back 5.00 10/1/2017 26.6 27.9 1.28
## 6 2017 10 1 back 5.50 10/1/2017 26.8 28.1 1.28
Everything went as planned.
Now I will plot the daily ranges for each reef zone separately but with lter sites combined. I will use ggplot with the geom_smooth() function to get a line with 95% confidence intervals.
testplotfull <- ggplot(data=hobofullrange,
aes(x=as.Date(longdate, format = "%m / %d / %Y"),
y=range, colour=zone)) +
geom_smooth()+ theme_bw()+
theme(axis.text.x = element_text(margin = margin(t=5)))+
labs(title="Daily temperature range", y="Mean daily temperature range (°C) with 95% CI ", x="Date")
testplotfull
Interesting. Daily temperature ranges vary a lot over time. However, it seems that the fringing reef is consistently more variable than the back reef. The fore reef is much more stable, as expected.
Given that the daily ranges vary so much over time, I need to calculate average ranges for separate time intervals. I will use the group_by() and the summarise function again, this time to calculate mean daily ranges per month. I will check whether this worked using nrow() to count the number of rows. The number of rows should = 209 again.
hobofullrangemeans <- hobofullrange %>%
group_by(year, month, lter, zone)%>%
summarise(meanrange = mean(range))
nrow(hobofullrangemeans)
## [1] 209
Looks like it worked.
I will make boxplots of the average daily temperature ranges over time calculated per month. I will plot the values for each site on top so that we can see which sites are more or less variable.
hobofullrangemeans$month <- factor(hobofullrangemeans$month, levels=c("9", "10", "11", "12", "1", "2", "3", "4", "5", "6", "7", "8"))
hrmplot <- ggplot(hobofullrangemeans, aes(x=month, y=meanrange))+
geom_boxplot() + theme_bw()+
geom_point(alpha=3/4, aes(colour=as.factor(lter)))+
facet_grid(~fct_relevel(zone, "fringe", "back", "fore"))+
labs(title= "Monthly averages of daily temperature range", y="Temperature (°C)", x="Date")
hrmplot
Looks good. Now we can see which of the lter sites contribute most to the temperature ranges. It seems that the fringe reefs for sites 3, 4, 4.5, and 5 are more variable, whereas sites 1, 2, 5.5 and 6 are generally less variable. For the back reefs, it seems that sites 0 and 4 are generally less variable, and sites 3, 3.5 and 2 are more variable.
Now I want to test for significant differences between zones. I will use an anova using the function aov()
hobolm <- aov(meanrange~zone + as.factor(month) + as.factor(lter), data=hobofullrangemeans)
summary(hobolm)
## Df Sum Sq Mean Sq F value Pr(>F)
## zone 2 34.25 17.123 208.22 < 2e-16 ***
## as.factor(month) 11 16.30 1.481 18.02 < 2e-16 ***
## as.factor(lter) 8 5.46 0.683 8.30 1.31e-09 ***
## Residuals 187 15.38 0.082
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
There is a significant effect of zone and month on daily temperature variability. Great!
Now I will use a post-hoc test to compare individual zones, lter sites, and months. I am mostly interested in looking at zones, but I included sites and months anyway just to be comprehensive.
HSD <- TukeyHSD(hobolm, ordered=FALSE)
HSD
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = meanrange ~ zone + as.factor(month) + as.factor(lter), data = hobofullrangemeans)
##
## $zone
## diff lwr upr p adj
## fore-back -0.8933827 -1.0285863 -0.7581791 0e+00
## fringe-back 0.2562556 0.1531534 0.3593578 1e-07
## fringe-fore 1.1496383 1.0160348 1.2832418 0e+00
##
## $`as.factor(month)`
## diff lwr upr p adj
## 10-9 -0.194280776 -0.51985046 0.13128891 0.7095038
## 11-9 -0.477574388 -0.80314407 -0.15200471 0.0001573
## 12-9 -0.476254211 -0.80182389 -0.15068453 0.0001668
## 1-9 -0.418588177 -0.74415786 -0.09301850 0.0019124
## 2-9 -0.730258141 -1.05582782 -0.40468846 0.0000000
## 3-9 -0.247717709 -0.56084060 0.06540518 0.2770727
## 4-9 -0.586247889 -0.90726392 -0.26523185 0.0000005
## 5-9 -0.863095081 -1.18411112 -0.54207905 0.0000000
## 6-9 -0.846783074 -1.16779911 -0.52576704 0.0000000
## 7-9 -0.784561257 -1.10557729 -0.46354522 0.0000000
## 8-9 -0.893254149 -1.22950107 -0.55700723 0.0000000
## 11-10 -0.283293612 -0.60886329 0.04227607 0.1567804
## 12-10 -0.281973435 -0.60754312 0.04359625 0.1618235
## 1-10 -0.224307400 -0.54987708 0.10126228 0.4941812
## 2-10 -0.535977365 -0.86154705 -0.21040768 0.0000102
## 3-10 -0.053436933 -0.36655983 0.25968596 0.9999905
## 4-10 -0.391967113 -0.71298315 -0.07095108 0.0043318
## 5-10 -0.668814305 -0.98983034 -0.34779827 0.0000000
## 6-10 -0.652502298 -0.97351833 -0.33148626 0.0000000
## 7-10 -0.590280481 -0.91129652 -0.26926445 0.0000004
## 8-10 -0.698973373 -1.03522029 -0.36272645 0.0000000
## 12-11 0.001320177 -0.32424950 0.32688986 1.0000000
## 1-11 0.058986211 -0.26658347 0.38455589 0.9999824
## 2-11 -0.252683754 -0.57825343 0.07288593 0.3050938
## 3-11 0.229856678 -0.08326621 0.54297957 0.3915443
## 4-11 -0.108673501 -0.42968954 0.21234253 0.9934272
## 5-11 -0.385520693 -0.70653673 -0.06450466 0.0055350
## 6-11 -0.369208686 -0.69022472 -0.04819265 0.0100952
## 7-11 -0.306986869 -0.62800290 0.01402917 0.0754581
## 8-11 -0.415679761 -0.75192668 -0.07943284 0.0035876
## 1-12 0.057666034 -0.26790365 0.38323572 0.9999861
## 2-12 -0.254003931 -0.57957361 0.07156575 0.2973589
## 3-12 0.228536501 -0.08458639 0.54165939 0.4007747
## 4-12 -0.109993678 -0.43100971 0.21102236 0.9927257
## 5-12 -0.386840870 -0.70785691 -0.06582484 0.0052659
## 6-12 -0.370528863 -0.69154490 -0.04951283 0.0096261
## 7-12 -0.308307046 -0.62932308 0.01270899 0.0726732
## 8-12 -0.416999938 -0.75324686 -0.08075302 0.0034160
## 2-1 -0.311669965 -0.63723965 0.01389972 0.0747668
## 3-1 0.170870467 -0.14225243 0.48399336 0.8126770
## 4-1 -0.167659712 -0.48867575 0.15335632 0.8526827
## 5-1 -0.444506905 -0.76552294 -0.12349087 0.0005065
## 6-1 -0.428194897 -0.74921093 -0.10717886 0.0010132
## 7-1 -0.365973080 -0.68698912 -0.04495705 0.0113348
## 8-1 -0.474665973 -0.81091289 -0.13841905 0.0003473
## 3-2 0.482540432 0.16941754 0.79566332 0.0000522
## 4-2 0.144010253 -0.17700578 0.46502629 0.9430307
## 5-2 -0.132836940 -0.45385297 0.18817910 0.9678337
## 6-2 -0.116524933 -0.43754097 0.20449110 0.9883065
## 7-2 -0.054303116 -0.37531915 0.26671292 0.9999913
## 8-2 -0.162996008 -0.49924293 0.17325091 0.9055069
## 4-3 -0.338530179 -0.64691569 -0.03014467 0.0181963
## 5-3 -0.615377372 -0.92376288 -0.30699186 0.0000000
## 6-3 -0.599065365 -0.90745088 -0.29067985 0.0000001
## 7-3 -0.536843547 -0.84522906 -0.22845804 0.0000022
## 8-3 -0.645536440 -0.96974674 -0.32132614 0.0000000
## 5-4 -0.276847192 -0.59324405 0.03954967 0.1509009
## 6-4 -0.260535185 -0.57693204 0.05586167 0.2222225
## 7-4 -0.198313368 -0.51471023 0.11808349 0.6413366
## 8-4 -0.307006260 -0.63884609 0.02483356 0.0995313
## 6-5 0.016312007 -0.30008485 0.33270887 1.0000000
## 7-5 0.078533824 -0.23786303 0.39493068 0.9996022
## 8-5 -0.030159068 -0.36199889 0.30168076 1.0000000
## 7-6 0.062221817 -0.25417504 0.37861868 0.9999597
## 8-6 -0.046471075 -0.37831090 0.28536875 0.9999988
## 8-7 -0.108692892 -0.44053272 0.22314693 0.9950344
##
## $`as.factor(lter)`
## diff lwr upr p adj
## 1-0 0.02537045 -0.242141285 0.29288219 0.9999981
## 2-0 0.23525177 -0.030388887 0.50089243 0.1285758
## 3-0 0.22493524 -0.051441525 0.50131201 0.2134939
## 3.5-0 0.40520648 0.128829715 0.68158325 0.0002618
## 4-0 0.28545189 0.009075122 0.56182866 0.0370497
## 5-0 0.41581115 0.139434380 0.69218792 0.0001564
## 5.5-0 0.06704740 -0.209329365 0.34342417 0.9977109
## 6-0 0.14296392 -0.180984777 0.46691262 0.9022332
## 2-1 0.20988132 -0.028575167 0.44833781 0.1339319
## 3-1 0.19956479 -0.050796257 0.44992584 0.2379441
## 3.5-1 0.37983603 0.129474983 0.63019708 0.0001316
## 4-1 0.26008144 0.009720390 0.51044249 0.0350324
## 5-1 0.39044070 0.140079648 0.64080175 0.0000733
## 5.5-1 0.04167695 -0.208684097 0.29203800 0.9998552
## 6-1 0.11759347 -0.184464961 0.41965190 0.9507968
## 3-2 -0.01031653 -0.258677322 0.23804427 1.0000000
## 3.5-2 0.16995471 -0.078406082 0.41831551 0.4444029
## 4-2 0.05020012 -0.198160676 0.29856091 0.9993854
## 5-2 0.18055938 -0.067801418 0.42892017 0.3585926
## 5.5-2 -0.16820437 -0.416565163 0.08015643 0.4592154
## 6-2 -0.09228785 -0.392690455 0.20811476 0.9885619
## 3.5-3 0.18027124 -0.079540699 0.44008318 0.4245901
## 4-3 0.06051665 -0.199295292 0.32032859 0.9982846
## 5-3 0.19087590 -0.068936034 0.45068784 0.3440576
## 5.5-3 -0.15788784 -0.417699779 0.10192410 0.6096158
## 6-3 -0.08197132 -0.391908227 0.22796558 0.9958184
## 4-3.5 -0.11975459 -0.379566532 0.14005735 0.8780245
## 5-3.5 0.01060466 -0.249207274 0.27041660 1.0000000
## 5.5-3.5 -0.33815908 -0.597971019 -0.07834714 0.0020950
## 6-3.5 -0.26224256 -0.572179467 0.04769434 0.1714318
## 5-4 0.13035926 -0.129452681 0.39017120 0.8173299
## 5.5-4 -0.21840449 -0.478216426 0.04140745 0.1781359
## 6-4 -0.14248797 -0.452424873 0.16744894 0.8795946
## 5.5-5 -0.34876375 -0.608575684 -0.08895181 0.0012769
## 6-5 -0.27284723 -0.582784131 0.03708968 0.1337664
## 6-5.5 0.07591652 -0.234020386 0.38585342 0.9975500
The post-hoc test generates a lot of text. The main findings are as follows: - All reef zones are significantly different and fore reef is more different from fringe and back reefs than the back and fringe reefs are from each other.
10 out of 36 site:site comparisons are significant. Half of these (5) are comparisons between lter 0 and other lter sites. This indicates that lter 0 is quite different from other lter sites. for the rest, it seems that lter sites are pretty similar overall.
32 out of 66 month:month comparisons are significant. A lot of these significant comparisons seem to be with months 9, 10, 1, 2 and 3.
In this section I will look at whether the differences in daily temperature range between back and fringe reefs are driven by differing daily minima or maxima. I will basically be doing the same thing as I did for temperature ranges but for minimum and maximum daily values.
I am using ggplot again with geom_smooth() to get averages wiht 95% confidence intervals. Beware, this graph will be a little hard to read. The top three lines are daily maximum temperatures and the bottom three lines are daily minimum temperatures.
mintemp <- ggplot(hobofullrange, aes(x=as.Date(longdate, format= "%m / %d / %Y"), y=min_temp))+
geom_smooth(aes(colour=zone))+
theme_bw()+ theme(legend.position = c(0.15,0.82))+
labs(title="Daily temperature minima", y="Daily temperature minima (°C) with 95% CI", x="date")+
ylim(25,31)+
coord_cartesian(ylim=c(26,31))
maxtemp <- ggplot(hobofullrange, aes(x=as.Date(longdate, format= "%m / %d / %Y"), y=max_temp))+
geom_smooth(aes(colour=zone))+
theme_bw()+ theme(legend.position="none")+
labs(title="Daily temperature maxima", y="Daily temperature maxima (°C) with 95% CI", x="date")+
coord_cartesian(ylim=c(26,31))
plot_grid(mintemp, maxtemp)
Maximum temperatures seem to be generally higher in the fringing reefs. The higher daily temperature ranges in the fringe reef before january 2018 seem to be caused by higher maximum temperatures, and after april 2018 by lower minimum temperatures.
Now I will calculate averages for the daily minimum and maximum temperatures to allow for easy comparison and for statistical tests.
I will use the group_by() and summarise() functions to calculate monthly means.
hobofullminmeans <- hobofullrange %>%
group_by(year, month, lter, zone)%>%
summarise(meanmin = mean(min_temp))
hobofullmaxmeans <- hobofullrange %>%
group_by(year, month, lter, zone)%>%
summarise(meanmax = mean(max_temp))
Check the dataframe. There should by 209 rows, just like with the mean daily ranges.
nrow(hobofullminmeans)
## [1] 209
nrow(hobofullmaxmeans)
## [1] 209
Looks right.
First I will test for differences between temperature minima.
minaov <- aov(meanmin~zone + as.factor(month) + as.factor(lter), data=hobofullminmeans)
summary(minaov)
## Df Sum Sq Mean Sq F value Pr(>F)
## zone 2 0.49 0.246 14.518 1.38e-06 ***
## as.factor(month) 11 126.14 11.467 675.680 < 2e-16 ***
## as.factor(lter) 8 0.47 0.059 3.453 0.000982 ***
## Residuals 187 3.17 0.017
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Monthly means for daily temperature minima differ signifcantly between reef zones, months and lter sites.
maxaov <- aov(meanmax~zone + as.factor(month) + as.factor(lter), data=hobofullmaxmeans)
summary(maxaov)
## Df Sum Sq Mean Sq F value Pr(>F)
## zone 2 26.82 13.412 162.442 < 2e-16 ***
## as.factor(month) 11 129.15 11.741 142.195 < 2e-16 ***
## as.factor(lter) 8 4.08 0.510 6.176 4.51e-07 ***
## Residuals 187 15.44 0.083
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Mean monthly maximum temperatures also differ between reef zones, months and lter sites.
I will use Tukey tests again. First for the minimum temperatures.
minHSD <- TukeyHSD(minaov, ordered=FALSE)
minHSD
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = meanmin ~ zone + as.factor(month) + as.factor(lter), data = hobofullminmeans)
##
## $zone
## diff lwr upr p adj
## fore-back 0.07903005 0.01760819 0.14045191 0.0075935
## fringe-back -0.05706106 -0.10389952 -0.01022261 0.0123617
## fringe-fore -0.13609111 -0.19678606 -0.07539617 0.0000010
##
## $`as.factor(month)`
## diff lwr upr p adj
## 10-1 -2.349091082 -2.49699465 -2.20118751 0.0000000
## 11-1 -1.278602404 -1.42650597 -1.13069884 0.0000000
## 12-1 -0.404174573 -0.55207814 -0.25627100 0.0000000
## 2-1 -0.769633776 -0.91753734 -0.62173021 0.0000000
## 3-1 -0.344945194 -0.48719429 -0.20269610 0.0000000
## 4-1 -0.200929429 -0.34676431 -0.05509454 0.0005572
## 5-1 -0.578587553 -0.72442244 -0.43275267 0.0000000
## 6-1 -1.268997948 -1.41483283 -1.12316306 0.0000000
## 7-1 -1.799720244 -1.94555513 -1.65388536 0.0000000
## 8-1 -1.876878809 -2.02963296 -1.72412466 0.0000000
## 9-1 -2.167850000 -2.31575357 -2.01994643 0.0000000
## 11-10 1.070488678 0.92258511 1.21839225 0.0000000
## 12-10 1.944916509 1.79701294 2.09282008 0.0000000
## 2-10 1.579457306 1.43155374 1.72736087 0.0000000
## 3-10 2.004145888 1.86189679 2.14639499 0.0000000
## 4-10 2.148161653 2.00232677 2.29399654 0.0000000
## 5-10 1.770503528 1.62466864 1.91633841 0.0000000
## 6-10 1.080093134 0.93425825 1.22592802 0.0000000
## 7-10 0.549370837 0.40353595 0.69520572 0.0000000
## 8-10 0.472212272 0.31945812 0.62496642 0.0000000
## 9-10 0.181241082 0.03333751 0.32914465 0.0041040
## 12-11 0.874427830 0.72652426 1.02233140 0.0000000
## 2-11 0.508968627 0.36106506 0.65687220 0.0000000
## 3-11 0.933657210 0.79140811 1.07590631 0.0000000
## 4-11 1.077672975 0.93183809 1.22350786 0.0000000
## 5-11 0.700014850 0.55417997 0.84584974 0.0000000
## 6-11 0.009604456 -0.13623043 0.15543934 1.0000000
## 7-11 -0.521117841 -0.66695273 -0.37528296 0.0000000
## 8-11 -0.598276406 -0.75103055 -0.44552226 0.0000000
## 9-11 -0.889247597 -1.03715117 -0.74134403 0.0000000
## 2-12 -0.365459203 -0.51336277 -0.21755563 0.0000000
## 3-12 0.059229379 -0.08301972 0.20147848 0.9663388
## 4-12 0.203245144 0.05741026 0.34908003 0.0004470
## 5-12 -0.174412980 -0.32024787 -0.02857809 0.0058779
## 6-12 -0.864823374 -1.01065826 -0.71898849 0.0000000
## 7-12 -1.395545671 -1.54138056 -1.24971079 0.0000000
## 8-12 -1.472704236 -1.62545839 -1.31995009 0.0000000
## 9-12 -1.763675427 -1.91157900 -1.61577186 0.0000000
## 3-2 0.424688582 0.28243949 0.56693768 0.0000000
## 4-2 0.568704347 0.42286946 0.71453923 0.0000000
## 5-2 0.191046223 0.04521134 0.33688111 0.0013917
## 6-2 -0.499364171 -0.64519906 -0.35352929 0.0000000
## 7-2 -1.030086468 -1.17592135 -0.88425158 0.0000000
## 8-2 -1.107245033 -1.25999918 -0.95449088 0.0000000
## 9-2 -1.398216224 -1.54611979 -1.25031266 0.0000000
## 4-3 0.144015765 0.00391882 0.28411271 0.0379075
## 5-3 -0.233642360 -0.37373930 -0.09354542 0.0000072
## 6-3 -0.924052754 -1.06414970 -0.78395581 0.0000000
## 7-3 -1.454775050 -1.59487199 -1.31467811 0.0000000
## 8-3 -1.531933616 -1.67921963 -1.38464760 0.0000000
## 9-3 -1.822904806 -1.96515390 -1.68065571 0.0000000
## 5-4 -0.377658124 -0.52139456 -0.23392169 0.0000000
## 6-4 -1.068068519 -1.21180495 -0.92433209 0.0000000
## 7-4 -1.598790815 -1.74252725 -1.45505438 0.0000000
## 8-4 -1.675949380 -1.82670142 -1.52519734 0.0000000
## 9-4 -1.966920571 -2.11275546 -1.82108569 0.0000000
## 6-5 -0.690410394 -0.83414683 -0.54667396 0.0000000
## 7-5 -1.221132691 -1.36486912 -1.07739626 0.0000000
## 8-5 -1.298291256 -1.44904330 -1.14753921 0.0000000
## 9-5 -1.589262447 -1.73509733 -1.44342756 0.0000000
## 7-6 -0.530722297 -0.67445873 -0.38698586 0.0000000
## 8-6 -0.607880862 -0.75863290 -0.45712882 0.0000000
## 9-6 -0.898852053 -1.04468694 -0.75301717 0.0000000
## 8-7 -0.077158565 -0.22791061 0.07359348 0.8688257
## 9-7 -0.368129756 -0.51396464 -0.22229487 0.0000000
## 9-8 -0.290971191 -0.44372534 -0.13821704 0.0000001
##
## $`as.factor(lter)`
## diff lwr upr p adj
## 1-0 -0.018939391 -0.14046772 0.1025889415 0.9999121
## 2-0 -0.061403290 -0.18208161 0.0592750266 0.8054742
## 3-0 0.015066000 -0.11048964 0.1406216417 0.9999882
## 3.5-0 -0.035813126 -0.16136877 0.0897425156 0.9930060
## 4-0 -0.133177741 -0.25873338 -0.0076220998 0.0284564
## 5-0 -0.092767466 -0.21832311 0.0327881755 0.3362479
## 5.5-0 -0.004351231 -0.12990687 0.1212044105 1.0000000
## 6-0 -0.073582179 -0.22074935 0.0735849910 0.8202121
## 2-1 -0.042463899 -0.15079268 0.0658648770 0.9488219
## 3-1 0.034005391 -0.07973153 0.1477423101 0.9904302
## 3.5-1 -0.016873735 -0.13061065 0.0968631839 0.9999396
## 4-1 -0.114238351 -0.22797527 -0.0005014314 0.0480619
## 5-1 -0.073828075 -0.18756499 0.0399088438 0.5195603
## 5.5-1 0.014588160 -0.09914876 0.1283250788 0.9999803
## 6-1 -0.054642788 -0.19186539 0.0825798176 0.9440372
## 3-2 0.076469290 -0.03635893 0.1892975112 0.4581775
## 3.5-2 0.025590164 -0.08723806 0.1384183851 0.9985819
## 4-2 -0.071774451 -0.18460267 0.0410537697 0.5477689
## 5-2 -0.031364176 -0.14419240 0.0814640450 0.9941226
## 5.5-2 0.057052059 -0.05577616 0.1698802800 0.8108231
## 6-2 -0.012178888 -0.14864927 0.1242914897 0.9999988
## 3.5-3 -0.050879126 -0.16890951 0.0671512529 0.9135773
## 4-3 -0.148243742 -0.26627412 -0.0302133625 0.0035797
## 5-3 -0.107833466 -0.22586385 0.0101969128 0.1035671
## 5.5-3 -0.019417231 -0.13744761 0.0986131478 0.9998676
## 6-3 -0.088648179 -0.22944991 0.0521535508 0.5620279
## 4-3.5 -0.097364615 -0.21539499 0.0206657636 0.1983592
## 5-3.5 -0.056954340 -0.17498472 0.0610760389 0.8475765
## 5.5-3.5 0.031461895 -0.08656848 0.1494922739 0.9955868
## 6-3.5 -0.037769053 -0.17857078 0.1030326769 0.9953916
## 5-4 0.040410275 -0.07762010 0.1584406543 0.9771834
## 5.5-4 0.128826510 0.01079613 0.2468568893 0.0210591
## 6-4 0.059595563 -0.08120617 0.2003972923 0.9216238
## 5.5-5 0.088416235 -0.02961414 0.2064466140 0.3175358
## 6-5 0.019185287 -0.12161644 0.1599870170 0.9999685
## 6-5.5 -0.069230948 -0.21003268 0.0715707820 0.8335265
There seems to be a significant difference between each of the zones. While it’s highly significant for fore:fringe, it’s less signficant for fore:back and back:fringe. As can be expected, temperature minima are highly significantly different month-to-month.
Now I’ll do the same thing with the maximum temperatures.
maxHSD <- TukeyHSD(maxaov)
maxHSD
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = meanmax ~ zone + as.factor(month) + as.factor(lter), data = hobofullmaxmeans)
##
## $zone
## diff lwr upr p adj
## fore-back -0.8143526 -0.94982850 -0.6788768 0.0e+00
## fringe-back 0.1991945 0.09588475 0.3025043 2.8e-05
## fringe-fore 1.0135472 0.87967464 1.1474197 0.0e+00
##
## $`as.factor(month)`
## diff lwr upr p adj
## 10-1 -2.12478368 -2.451008966 -1.79855840 0.0000000
## 11-1 -1.33758861 -1.663813900 -1.01136333 0.0000000
## 12-1 -0.46184061 -0.788065892 -0.13561532 0.0003279
## 2-1 -1.08130374 -1.407529026 -0.75507846 0.0000000
## 3-1 -0.17407473 -0.487828159 0.13967871 0.7957457
## 4-1 -0.36858914 -0.690251610 -0.04692667 0.0106004
## 5-1 -1.02309446 -1.344756927 -0.70143199 0.0000000
## 6-1 -1.69719284 -2.018855314 -1.37553038 0.0000000
## 7-1 -2.16569332 -2.487355794 -1.84403086 0.0000000
## 8-1 -2.35154478 -2.688468808 -2.01462076 0.0000000
## 9-1 -1.74926182 -2.075487109 -1.42303654 0.0000000
## 11-10 0.78719507 0.460969781 1.11342035 0.0000000
## 12-10 1.66294307 1.336717789 1.98916836 0.0000000
## 2-10 1.04347994 0.717254655 1.36970523 0.0000000
## 3-10 1.95070895 1.636955522 2.26446239 0.0000000
## 4-10 1.75619454 1.434532071 2.07785701 0.0000000
## 5-10 1.10168922 0.780026754 1.42335169 0.0000000
## 6-10 0.42759084 0.105928367 0.74925331 0.0010770
## 7-10 -0.04090964 -0.362572112 0.28075283 0.9999996
## 8-10 -0.22676110 -0.563685126 0.11016293 0.5318587
## 9-10 0.37552186 0.049296573 0.70174714 0.0099808
## 12-11 0.87574801 0.549522722 1.20197329 0.0000000
## 2-11 0.25628487 -0.069940411 0.58251016 0.2871920
## 3-11 1.16351389 0.849760456 1.47726732 0.0000000
## 4-11 0.96899947 0.647337004 1.29066194 0.0000000
## 5-11 0.31449416 -0.007168312 0.63615663 0.0618774
## 6-11 -0.35960423 -0.681266699 -0.03794176 0.0145514
## 7-11 -0.82810471 -1.149767179 -0.50644224 0.0000000
## 8-11 -1.01395617 -1.350880193 -0.67703214 0.0000000
## 9-11 -0.41167321 -0.737898494 -0.08544792 0.0025956
## 2-12 -0.61946313 -0.945688419 -0.29323785 0.0000001
## 3-12 0.28776588 -0.025987552 0.60151931 0.1066220
## 4-12 0.09325147 -0.228411003 0.41491394 0.9983096
## 5-12 -0.56125385 -0.882916320 -0.23959138 0.0000020
## 6-12 -1.23535224 -1.557014707 -0.91368977 0.0000000
## 7-12 -1.70385272 -2.025515186 -1.38219025 0.0000000
## 8-12 -1.88970417 -2.226628200 -1.55278015 0.0000000
## 9-12 -1.28742122 -1.613646501 -0.96119593 0.0000000
## 3-2 0.90722901 0.593475582 1.22098245 0.0000000
## 4-2 0.71271460 0.391052131 1.03437707 0.0000000
## 5-2 0.05820928 -0.263453186 0.37987175 0.9999826
## 6-2 -0.61588910 -0.937551573 -0.29422664 0.0000001
## 7-2 -1.08438958 -1.406052053 -0.76272711 0.0000000
## 8-2 -1.27024104 -1.607165067 -0.93331702 0.0000000
## 9-2 -0.66795808 -0.994183368 -0.34173280 0.0000000
## 4-3 -0.19451441 -0.503520925 0.11449210 0.6350487
## 5-3 -0.84901973 -1.158026242 -0.54001322 0.0000000
## 6-3 -1.52311812 -1.832124629 -1.21411161 0.0000000
## 7-3 -1.99161860 -2.300625109 -1.68261209 0.0000000
## 8-3 -2.17747006 -2.502333225 -1.85260689 0.0000000
## 9-3 -1.57518710 -1.888940529 -1.26143366 0.0000000
## 5-4 -0.65450532 -0.971539307 -0.33747133 0.0000000
## 6-4 -1.32860370 -1.645637695 -1.01156971 0.0000000
## 7-4 -1.79710418 -2.114138174 -1.48007019 0.0000000
## 8-4 -1.98295564 -2.315463695 -1.65044759 0.0000000
## 9-4 -1.38067268 -1.702335151 -1.05901021 0.0000000
## 6-5 -0.67409839 -0.991132378 -0.35706440 0.0000000
## 7-5 -1.14259887 -1.459632858 -0.82556488 0.0000000
## 8-5 -1.32845032 -1.660958379 -0.99594227 0.0000000
## 9-5 -0.72616737 -1.047829835 -0.40450490 0.0000000
## 7-6 -0.46850048 -0.785534470 -0.15146649 0.0001342
## 8-6 -0.65435194 -0.986859992 -0.32184388 0.0000000
## 9-6 -0.05206898 -0.373731448 0.26959349 0.9999945
## 8-7 -0.18585146 -0.518359512 0.14665660 0.7878507
## 9-7 0.41643150 0.094769032 0.73809397 0.0017032
## 9-8 0.60228296 0.265358933 0.93920698 0.0000010
##
## $`as.factor(lter)`
## diff lwr upr p adj
## 1-0 0.006431060 -0.26161937 2.744815e-01 1.0000000
## 2-0 0.173848480 -0.09232710 4.400241e-01 0.5108492
## 3-0 0.240001243 -0.03693207 5.169346e-01 0.1480026
## 3.5-0 0.369393357 0.09246005 6.463267e-01 0.0014172
## 4-0 0.152274148 -0.12465916 4.292075e-01 0.7299712
## 5-0 0.323043682 0.04611037 5.999770e-01 0.0096973
## 5.5-0 0.062696171 -0.21423714 3.396295e-01 0.9986003
## 6-0 0.069381743 -0.25521930 3.939828e-01 0.9990758
## 2-1 0.167417420 -0.07151925 4.063541e-01 0.4106278
## 3-1 0.233570183 -0.01729502 4.844354e-01 0.0900564
## 3.5-1 0.362962297 0.11209709 6.138275e-01 0.0003378
## 4-1 0.145843088 -0.10502212 3.967083e-01 0.6658318
## 5-1 0.316612622 0.06574742 5.674778e-01 0.0033355
## 5.5-1 0.056265111 -0.19460009 3.071303e-01 0.9986913
## 6-1 0.062950683 -0.23971601 3.656174e-01 0.9992424
## 3-2 0.066152763 -0.18270816 3.150137e-01 0.9956698
## 3.5-2 0.195544877 -0.05331605 4.444058e-01 0.2554952
## 4-2 -0.021574332 -0.27043525 2.272866e-01 0.9999991
## 5-2 0.149195202 -0.09966572 3.980561e-01 0.6272621
## 5.5-2 -0.111152308 -0.36001323 1.377086e-01 0.8959819
## 6-2 -0.104466737 -0.40547427 1.965408e-01 0.9751828
## 3.5-3 0.129392114 -0.13094301 3.897272e-01 0.8250367
## 4-3 -0.087727095 -0.34806222 1.726080e-01 0.9793334
## 5-3 0.083042439 -0.17729269 3.433776e-01 0.9854081
## 5.5-3 -0.177305072 -0.43764020 8.303005e-02 0.4511964
## 6-3 -0.170619500 -0.48118053 1.399415e-01 0.7308881
## 4-3.5 -0.217119209 -0.47745433 4.321592e-02 0.1864758
## 5-3.5 -0.046349675 -0.30668480 2.139855e-01 0.9997601
## 5.5-3.5 -0.306697186 -0.56703231 -4.636206e-02 0.0085602
## 6-3.5 -0.300011614 -0.61057264 1.054941e-02 0.0672917
## 5-4 0.170769534 -0.08956559 4.311047e-01 0.5047422
## 5.5-4 -0.089577977 -0.34991310 1.707571e-01 0.9764656
## 6-4 -0.082892405 -0.39345343 2.276686e-01 0.9955463
## 5.5-5 -0.260347510 -0.52068264 -1.238479e-05 0.0499787
## 6-5 -0.253661939 -0.56422297 5.689909e-02 0.2094239
## 6-5.5 0.006685571 -0.30387546 3.172466e-01 1.0000000
Temperature maxima are strongly significantly different between reef zones and between months.
It seems that differences in daily temperature ranges are mostly driven by differences in daily temperature maxima.