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 up workspace, load, manipulate and visualize raw data

Load and manipulate raw data

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.

Figure of raw temperature data

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.

Analysis of daily average temperatures

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.

Manipulate date data

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.

Calculate daily means for temperature

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

Figure of daily means for temperature

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)

Calculate monthly temperature means

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.

Test for significance between zones, months and LTER sites

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.

Post-hoc tests

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.

Analysis of daily temperature ranges

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.

Calculate 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.

figure of daily temperature ranges

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.

Calculate average daily ranges per month

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.

Boxplots of mean daily ranges per month

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.

Test for significance differences between zones, months, and LTER sites

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!

Post-hoc tests

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.

Analysis of daily temperature minima and maxima

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.

Figure of minimum and maximum temperatures

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.

Calculate average monthly maximum 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.

Test for significance of differences between zones and months

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.

Post-hoc tests

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.