Tentative Model Comparison

Author

Jingyi Yang

This document aims to provide an informal comparison of three models that have been fitted in the [Title name : Two level (game-school) models with fixed effect and random effect predictors].

Since these three models has different fixed predictors (and different random effects), we use the maximum likelihood method (REML=FALSE) in lmer function, not the Restricted Maximum Likelihood (REML=TRUE).

1. Clean the data

# Select the columns
data_clean <- data %>% select(`Conference`, `School`, `Area Classification (0-Rural; 1-Urban)`, `Year`, `Tenure Year`, `In-Season_Game`, `S_Diversion`, `Attendance`, `Game Time`,`Game result (Win=1; Loss=0)`,`Athletic Dept Profit`, `Athletic Dept Total Expenses`, `Athletic Dept Total Revenues`) 
# Convert game time to a numerical variable and create a new column
data_clean$GameTime_numeric <- as.numeric(format(data_clean$`Game Time`, "%H")) + as.numeric(format(data_clean$`Game Time`, "%M"))/60 
# Avoid game time impacted by the computer system date
data_clean$`Game Time`=format(data_clean$`Game Time`, format = "%H:%M") 
# Convert the categorical variables to the factor data type
data_clean <- data_clean %>% mutate(`Game Time`= as.character(`Game Time`)) %>% mutate(`Area Classification (0-Rural; 1-Urban)`= as.character(`Area Classification (0-Rural; 1-Urban)`)) %>% mutate(`Attendance`= as.numeric(`Attendance`)) 
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `Attendance = as.numeric(Attendance)`.
Caused by warning:
! NAs introduced by coercion
# Convert the categorical variables to the factor data type
cols_to_factor <- data_clean%>% select_if(is.character) %>% colnames() 
cols_to_factor 
[1] "Conference"                            
[2] "School"                                
[3] "Area Classification (0-Rural; 1-Urban)"
[4] "Game Time"                             
[5] "Game result (Win=1; Loss=0)"           
# Make sure there is no NA level 
data_clean <- data_clean %>% 
  mutate(`Game result (Win=1; Loss=0)` = na_if(`Game result (Win=1; Loss=0)`, "N/A")) %>%
          mutate(across(all_of(cols_to_factor), as.factor)) 
# Clean the game that is being cancelled
data_clean <- subset(data_clean, !is.na(`Game result (Win=1; Loss=0)`)) 
# Classify game time into four time slots
data_clean$GameTime_numeric_c_1 <- with(data_clean, ifelse(
  GameTime_numeric >= 9 &  GameTime_numeric < 12, 1,  # Morning
  ifelse(GameTime_numeric >= 12 & GameTime_numeric < 15.5, 2,   # Noon
  ifelse(GameTime_numeric >= 15.5 & GameTime_numeric < 19, 3,   # Afternoon
  ifelse(GameTime_numeric >= 19,  4,   # Evening
  NA)))                                
)) 
# Centralize game time by 12
data_clean$GameTime_numeric_c_2 <-  data_clean$GameTime_numeric-12 
# Centralize in the in-season game to 0
data_clean$`In-Season_Game_Centered` <- with(data_clean,
  ifelse(`In-Season_Game` == 1, 0,
  ifelse(`In-Season_Game` == 2, 1,
  ifelse(`In-Season_Game` == 3, 2,
  ifelse(`In-Season_Game` == 4, 3,
  ifelse(`In-Season_Game` == 5, 4,
  ifelse(`In-Season_Game` == 6, 5,
  ifelse(`In-Season_Game` == 7, 6,
  ifelse(`In-Season_Game` == 8, 7,
  ifelse(`In-Season_Game` == 9, 8, NA)))))))))
) 
# Centralize the tenure year to 0
data_clean$`Tenure Year Centered` <- with(data_clean,
  ifelse(`Tenure Year` == 1, 0,
  ifelse(`Tenure Year` == 2, 1,
  ifelse(`Tenure Year` == 3, 2,
  ifelse(`Tenure Year` == 4, 3,
  ifelse(`Tenure Year` == 5, 4,
  ifelse(`Tenure Year` == 6, 5,
  ifelse(`Tenure Year` == 7, 6,
  ifelse(`Tenure Year` == 8, 7,
  ifelse(`Tenure Year` == 9, 8,
  ifelse(`Tenure Year` == 10, 9,
  ifelse(`Tenure Year` == 11, 10,
  ifelse(`Tenure Year` == 12, 11,
  ifelse(`Tenure Year` == 13, 12,
  ifelse(`Tenure Year` == 14, 13,
  ifelse(`Tenure Year` == 15, 14,
  ifelse(`Tenure Year` == 16, 15,
  ifelse(`Tenure Year` == 17, 16,
  ifelse(`Tenure Year` == 18, 17,
  ifelse(`Tenure Year` == 19, 18,
  ifelse(`Tenure Year` == 20, 19,
         NA))))))))))))))))))))
)  
 # Centralize the year to 0
data_clean$Year_Centered <- with(data_clean,
  ifelse(`Year` == 2003, 0,
  ifelse(`Year` == 2004, 1,
  ifelse(`Year` == 2005, 2,
  ifelse(`Year` == 2006, 3,
  ifelse(`Year` == 2007, 4,
  ifelse(`Year` == 2008, 5,
  ifelse(`Year` == 2009, 6,
  ifelse(`Year` == 2010, 7,
  ifelse(`Year` == 2011, 8,
  ifelse(`Year` == 2012, 9,
  ifelse(`Year` == 2013, 10,
  ifelse(`Year` == 2014, 11,
  ifelse(`Year` == 2015, 12,
  ifelse(`Year` == 2016, 13,
  ifelse(`Year` == 2017, 14,
  ifelse(`Year` == 2018, 15,
  ifelse(`Year` == 2019, 16,
  ifelse(`Year` == 2020, 17,
  ifelse(`Year` == 2021, 18,
  ifelse(`Year` == 2022, 19,
  ifelse(`Year` == 2023, 20,
  ifelse(`Year` == 2024, 21,
         NA))))))))))))))))))))))
)
# Rename the columns
data_clean <- data_clean %>% dplyr::rename(`conference`= `Conference`,
                                    `school`= `School`,
                                    `area_classification` = `Area Classification (0-Rural; 1-Urban)`,
                                    `year`= `Year`,
                                    `tenure_year` = `Tenure Year`,
                                    `s_game`= `In-Season_Game`,
                                    `s_diversion`= `S_Diversion`,
                                    `attendance`= `Attendance`,
                                    `game_time`= `Game Time`,
                                    `game_result`= `Game result (Win=1; Loss=0)`,
                                    `profit`= `Athletic Dept Profit`,
                                    `total_expenses`= `Athletic Dept Total Expenses`,
                                    `total_revenues`= `Athletic Dept Total Revenues`,
                                    `game_time_chars_c_1`= `GameTime_numeric_c_1`,
                                    `game_time_num_c_2`= `GameTime_numeric_c_2`,
                                    `s_game_c`= `In-Season_Game_Centered`,
                                    `tenure_year_c`= `Tenure Year Centered`,
                                    `year_c`= `Year_Centered`
                                    ) %>% select(- `GameTime_numeric`) 

# Change the variable into a factor variable
data_clean$game_time_chars_c_1 <-as.factor(data_clean$game_time_chars_c_1) 
# The variable Attendance belongs to the game level (level 1). Use the Centering Within cluster (CWC) method to centralize the attendance variable, making each cluster have a mean of 0.

data_clean %<>%
  group_by(school) %>%
  mutate(attendance_mean_school = mean(attendance, na.rm = TRUE)) %>%
  mutate(attendance_cwc_school = attendance - attendance_mean_school) %>%
  ungroup()
# Rescale the attendance to make the variable have a mean of 0 and a standard deviation of 1 to solve the issue of different scales.

data_clean %<>%
  group_by(school) %>%
  mutate(attendance_mean_school = mean(attendance, na.rm = TRUE)) %>%
  mutate(attendance_school_z = (attendance - attendance_mean_school)/sd(attendance, na.rm = TRUE)) %>% 
  ungroup()
# The variable Attendance belongs to the game level (level 1). Use the Centering Within cluster (CWC) method to centralize the attendance variable, making each cluster have a mean of 0.

data_clean %<>%
  group_by(year) %>%
  mutate(attendance_mean_year = mean(attendance, na.rm = TRUE)) %>%
  mutate(attendance_cwc_year = attendance - attendance_mean_year) %>%
  ungroup()
# Rescale the attendance to make the variable have a mean of 0 and a standard deviation of 1 to solve the issue of different scales.

data_clean %<>%
  group_by(year) %>%
  mutate(attendance_mean_year = mean(attendance, na.rm = TRUE)) %>%
  mutate(attendance_year_z = (attendance - attendance_mean_year)/sd(attendance, na.rm = TRUE)) %>%
  ungroup()
# The variable total revenues belongs to the year level (level 2). Use the Centering Grand Mean (CGM) method to centralize the total revenues variable, making all individuals have a mean of 0.

data_clean %<>%
mutate(total_revenues_mean = mean(total_revenues, na.rm = TRUE)) %>%
mutate(total_revenues_cgm = total_revenues - total_revenues_mean)
# Rescale the attendance to make the variable have a mean of 0 and a standard deviation of 1 to solve the issue of different scales.

data_clean %<>%
mutate(total_revenues_mean = mean(total_revenues, na.rm = TRUE)) %>%
mutate(total_revenues_z = (total_revenues - total_revenues_mean)/sd(total_revenues,na.rm = TRUE))
str(data_clean)
tibble [1,390 × 27] (S3: tbl_df/tbl/data.frame)
 $ conference            : Factor w/ 5 levels "ACC","Big10",..: 4 4 4 4 4 4 4 4 4 4 ...
 $ school                : Factor w/ 31 levels "Arizona State",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ area_classification   : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ year                  : num [1:1390] 2015 2015 2015 2015 2015 ...
 $ tenure_year           : num [1:1390] 1 1 1 1 1 1 1 2 2 2 ...
 $ s_game                : num [1:1390] 1 2 3 4 5 6 7 1 2 3 ...
 $ s_diversion           : num [1:1390] 0.44 0.412 0.315 0.57 0.579 ...
 $ attendance            : num [1:1390] 46500 43310 61904 44157 56534 ...
 $ game_time             : Factor w/ 54 levels "09:00","10:00",..: 49 44 46 44 46 13 15 49 44 44 ...
 $ game_result           : Factor w/ 2 levels "0","1": 2 2 1 2 1 2 2 2 2 2 ...
 $ profit                : num [1:1390] 566524 566524 566524 566524 566524 ...
 $ total_expenses        : num [1:1390] 83873516 83873516 83873516 83873516 83873516 ...
 $ total_revenues        : num [1:1390] 84440040 84440040 84440040 84440040 84440040 ...
 $ game_time_chars_c_1   : Factor w/ 4 levels "1","2","3","4": 4 4 4 4 4 2 2 4 4 4 ...
 $ game_time_num_c_2     : num [1:1390] 8 7 7.5 7 7.5 1 1.5 8 7 7 ...
 $ s_game_c              : num [1:1390] 0 1 2 3 4 5 6 0 1 2 ...
 $ tenure_year_c         : num [1:1390] 0 0 0 0 0 0 0 1 1 1 ...
 $ year_c                : num [1:1390] 12 12 12 12 12 12 12 13 13 13 ...
 $ attendance_mean_school: num [1:1390] 50009 50009 50009 50009 50009 ...
 $ attendance_cwc_school : num [1:1390] -3509 -6699 11895 -5852 6525 ...
 $ attendance_school_z   : num [1:1390] -0.65 -1.24 2.2 -1.08 1.21 ...
 $ attendance_mean_year  : num [1:1390] 70003 70003 70003 70003 70003 ...
 $ attendance_cwc_year   : num [1:1390] -23503 -26693 -8099 -25846 -13469 ...
 $ attendance_year_z     : num [1:1390] -0.856 -0.972 -0.295 -0.941 -0.49 ...
 $ total_revenues_mean   : num [1:1390] 1.25e+08 1.25e+08 1.25e+08 1.25e+08 1.25e+08 ...
 $ total_revenues_cgm    : num [1:1390] -40621158 -40621158 -40621158 -40621158 -40621158 ...
 $ total_revenues_z      : num [1:1390] -0.833 -0.833 -0.833 -0.833 -0.833 ...

2. Summary Outputs

2.1 Two level (game-school) model with main effects

m_school_r_2 <- lmer(
s_diversion ~ game_time_num_c_2 + attendance_school_z+ game_result + s_game_c + area_classification + tenure_year_c + total_revenues_z +conference + (1+tenure_year_c|school),
data = data_clean,   control = lmerControl(optimizer = "bobyqa"),  REML = FALSE
)
summary(m_school_r_2)
Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
  method [lmerModLmerTest]
Formula: s_diversion ~ game_time_num_c_2 + attendance_school_z + game_result +  
    s_game_c + area_classification + tenure_year_c + total_revenues_z +  
    conference + (1 + tenure_year_c | school)
   Data: data_clean
Control: lmerControl(optimizer = "bobyqa")

      AIC       BIC    logLik -2*log(L)  df.resid 
  -1723.3   -1641.2     877.6   -1755.3      1229 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.3719 -0.5641 -0.0701  0.4776  3.9566 

Random effects:
 Groups   Name          Variance Std.Dev. Corr 
 school   (Intercept)   0.04541  0.21310       
          tenure_year_c 0.00111  0.03332  -0.22
 Residual               0.01216  0.11028       
Number of obs: 1245, groups:  school, 27

Fixed effects:
                       Estimate Std. Error         df t value Pr(>|t|)   
(Intercept)           5.215e-01  1.732e-01  2.684e+01   3.011  0.00562 **
game_time_num_c_2    -3.686e-04  1.148e-03  1.201e+03  -0.321  0.74812   
attendance_school_z   2.722e-03  3.409e-03  1.215e+03   0.799  0.42468   
game_result1          8.229e-03  7.577e-03  1.201e+03   1.086  0.27766   
s_game_c             -5.663e-04  1.633e-03  1.196e+03  -0.347  0.72887   
area_classification1 -7.463e-02  1.372e-01  2.658e+01  -0.544  0.59090   
tenure_year_c         7.392e-03  7.248e-03  2.610e+01   1.020  0.31713   
total_revenues_z      2.391e-02  9.218e-03  1.230e+03   2.593  0.00962 **
conferenceBig10      -1.400e-01  1.267e-01  2.607e+01  -1.105  0.27922   
conferenceBig12      -2.593e-01  1.819e-01  2.654e+01  -1.426  0.16566   
conferencePac12       2.111e-03  1.572e-01  2.918e+01   0.013  0.98937   
conferenceSEC        -2.309e-01  1.314e-01  2.624e+01  -1.758  0.09044 . 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation of Fixed Effects:
            (Intr) g____2 attn__ gm_rs1 s_gm_c ar_cl1 tnr_y_ ttl_r_ cnfB10
gm_tm_nm__2 -0.024                                                        
attndnc_sc_ -0.012 -0.116                                                 
game_reslt1 -0.036  0.040  0.097                                          
s_game_c    -0.036  0.148 -0.046  0.169                                   
ar_clssfct1 -0.792  0.001  0.002 -0.002  0.000                            
tenure_yr_c -0.060 -0.014  0.050 -0.019  0.007 -0.012                     
totl_rvns_z  0.074 -0.004 -0.087 -0.036 -0.032 -0.020 -0.184              
confrncBg10 -0.672  0.005  0.011  0.006  0.002  0.218  0.009 -0.047       
confrncBg12 -0.350 -0.005  0.013  0.005  0.007  0.001  0.008 -0.050  0.475
confrncPc12 -0.592 -0.009  0.005  0.020  0.004  0.246 -0.047  0.014  0.600
conferncSEC -0.484 -0.009  0.006  0.003 -0.001  0.001  0.022 -0.058  0.657
            cnfB12 cnfP12
gm_tm_nm__2              
attndnc_sc_              
game_reslt1              
s_game_c                 
ar_clssfct1              
tenure_yr_c              
totl_rvns_z              
confrncBg10              
confrncBg12              
confrncPc12  0.381       
conferncSEC  0.459  0.527

2.2 Two level (game-school) model with interaction effects

m_school_inter_r_2  <- lmer(
 s_diversion ~ 1 + game_time_num_c_2 + s_game_c + area_classification + attendance_school_z + game_result + tenure_year_c
    + total_revenues_z
    + conference
    + total_revenues_z:tenure_year_c     
    + attendance_school_z:tenure_year_c
    + game_result:tenure_year_c
    + area_classification:total_revenues_z
    + (1 + tenure_year_c | school),
  data = data_clean,
  control = lmerControl(optimizer = "bobyqa"),  REML = FALSE
)
summary(m_school_inter_r_2)
Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
  method [lmerModLmerTest]
Formula: 
s_diversion ~ 1 + game_time_num_c_2 + s_game_c + area_classification +  
    attendance_school_z + game_result + tenure_year_c + total_revenues_z +  
    conference + total_revenues_z:tenure_year_c + attendance_school_z:tenure_year_c +  
    game_result:tenure_year_c + area_classification:total_revenues_z +  
    (1 + tenure_year_c | school)
   Data: data_clean
Control: lmerControl(optimizer = "bobyqa")

      AIC       BIC    logLik -2*log(L)  df.resid 
  -1760.7   -1658.2     900.4   -1800.7      1225 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.4269 -0.5159 -0.0567  0.4811  3.8762 

Random effects:
 Groups   Name          Variance Std.Dev. Corr 
 school   (Intercept)   0.042894 0.20711       
          tenure_year_c 0.001005 0.03171  -0.17
 Residual               0.011739 0.10834       
Number of obs: 1245, groups:  school, 27

Fixed effects:
                                        Estimate Std. Error         df t value
(Intercept)                            7.736e-01  1.844e-01  3.539e+01   4.195
game_time_num_c_2                     -3.441e-04  1.132e-03  1.203e+03  -0.304
s_game_c                              -7.876e-04  1.606e-03  1.196e+03  -0.491
area_classification1                  -2.500e-01  1.513e-01  3.633e+01  -1.652
attendance_school_z                   -9.838e-03  5.383e-03  1.220e+03  -1.828
game_result1                          -9.352e-03  1.110e-02  1.206e+03  -0.843
tenure_year_c                         -5.397e-03  7.259e-03  3.105e+01  -0.744
total_revenues_z                       2.829e-01  8.262e-02  2.180e+02   3.424
conferenceBig10                       -1.813e-01  1.249e-01  2.636e+01  -1.452
conferenceBig12                       -3.537e-01  1.798e-01  2.712e+01  -1.968
conferencePac12                        1.251e-03  1.549e-01  2.952e+01   0.008
conferenceSEC                         -2.749e-01  1.294e-01  2.647e+01  -2.125
tenure_year_c:total_revenues_z        -6.155e-03  1.124e-03  1.231e+03  -5.474
attendance_school_z:tenure_year_c      1.508e-03  5.863e-04  1.212e+03   2.572
game_result1:tenure_year_c             2.973e-03  1.713e-03  1.208e+03   1.735
area_classification1:total_revenues_z -1.859e-01  8.286e-02  2.156e+02  -2.243
                                      Pr(>|t|)    
(Intercept)                           0.000174 ***
game_time_num_c_2                     0.761122    
s_game_c                              0.623864    
area_classification1                  0.107152    
attendance_school_z                   0.067857 .  
game_result1                          0.399620    
tenure_year_c                         0.462764    
total_revenues_z                      0.000738 ***
conferenceBig10                       0.158250    
conferenceBig12                       0.059388 .  
conferencePac12                       0.993611    
conferenceSEC                         0.043060 *  
tenure_year_c:total_revenues_z        5.33e-08 ***
attendance_school_z:tenure_year_c     0.010243 *  
game_result1:tenure_year_c            0.082982 .  
area_classification1:total_revenues_z 0.025903 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 16 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it

2.3 Two level (game-school) models with interaction and nonlinear effects

m_school_polytenure_inter_r_2 <- lmer(
 s_diversion ~ 1 + game_time_num_c_2 + attendance_school_z + game_result + s_game_c + conference + area_classification
                 + total_revenues_z
                 + poly(tenure_year_c , 3)
                 + poly(tenure_year_c , 3):conference
                 + poly(tenure_year_c , 3):attendance_school_z
                 + area_classification:total_revenues_z
                 + poly(tenure_year_c , 3):total_revenues_z
                 + (1 + poly(tenure_year_c , 2) | school),
  data = data_clean,
  control = lmerControl(optimizer = "bobyqa"),  REML = FALSE
)
summary(m_school_polytenure_inter_r_2)
Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
  method [lmerModLmerTest]
Formula: 
s_diversion ~ 1 + game_time_num_c_2 + attendance_school_z + game_result +  
    s_game_c + conference + area_classification + total_revenues_z +  
    poly(tenure_year_c, 3) + poly(tenure_year_c, 3):conference +  
    poly(tenure_year_c, 3):attendance_school_z + area_classification:total_revenues_z +  
    poly(tenure_year_c, 3):total_revenues_z + (1 + poly(tenure_year_c,  
    2) | school)
   Data: data_clean
Control: lmerControl(optimizer = "bobyqa")

      AIC       BIC    logLik -2*log(L)  df.resid 
  -1961.3   -1756.2    1020.6   -2041.3      1205 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.8097 -0.5172 -0.0286  0.4532  4.4720 

Random effects:
 Groups   Name                    Variance  Std.Dev. Corr     
 school   (Intercept)             6.097e-02  0.24692          
          poly(tenure_year_c, 2)1 1.057e+02 10.28145 0.57     
          poly(tenure_year_c, 2)2 1.310e+01  3.61876 0.39 0.88
 Residual                         9.383e-03  0.09687          
Number of obs: 1245, groups:  school, 27

Fixed effects:
                                              Estimate Std. Error         df
(Intercept)                                  6.737e-01  2.159e-01  2.803e+01
game_time_num_c_2                           -9.005e-05  1.017e-03  1.184e+03
attendance_school_z                         -1.734e-03  3.361e-03  1.212e+03
game_result1                                 5.003e-03  6.765e-03  1.188e+03
s_game_c                                     2.993e-05  1.439e-03  1.169e+03
conferenceBig10                             -3.848e-03  1.796e-01  1.547e+01
conferenceBig12                             -1.962e-01  2.594e-01  1.571e+01
conferencePac12                              1.266e-01  2.114e-01  1.661e+01
conferenceSEC                               -3.277e-01  1.952e-01  1.589e+01
area_classification1                        -3.492e-01  1.521e-01  3.638e+01
total_revenues_z                             4.056e-01  1.001e-01  9.128e+01
poly(tenure_year_c, 3)1                     -9.395e+00  7.736e+00  7.778e+00
poly(tenure_year_c, 3)2                     -2.272e+00  3.176e+00  5.890e+00
poly(tenure_year_c, 3)3                      2.945e+00  7.128e-01  3.184e+02
conferenceBig10:poly(tenure_year_c, 3)1      7.360e+00  8.844e+00  7.722e+00
conferenceBig12:poly(tenure_year_c, 3)1      5.159e+00  1.239e+01  6.860e+00
conferencePac12:poly(tenure_year_c, 3)1      8.745e+00  1.026e+01  7.512e+00
conferenceSEC:poly(tenure_year_c, 3)1       -8.876e+00  9.985e+00  8.505e+00
conferenceBig10:poly(tenure_year_c, 3)2      5.915e-01  3.631e+00  6.044e+00
conferenceBig12:poly(tenure_year_c, 3)2     -3.167e+00  5.228e+00  6.674e+00
conferencePac12:poly(tenure_year_c, 3)2      2.553e+00  4.233e+00  6.104e+00
conferenceSEC:poly(tenure_year_c, 3)2       -1.169e+01  4.337e+00  7.261e+00
conferenceBig10:poly(tenure_year_c, 3)3     -4.641e+00  8.505e-01  3.448e+02
conferenceBig12:poly(tenure_year_c, 3)3     -5.558e+00  1.934e+00  1.002e+02
conferencePac12:poly(tenure_year_c, 3)3     -5.284e+00  1.193e+00  1.427e+02
conferenceSEC:poly(tenure_year_c, 3)3       -8.804e+00  1.067e+00  2.712e+02
attendance_school_z:poly(tenure_year_c, 3)1  2.944e-01  1.019e-01  1.205e+03
attendance_school_z:poly(tenure_year_c, 3)2 -7.283e-02  1.014e-01  1.214e+03
attendance_school_z:poly(tenure_year_c, 3)3 -2.621e-01  1.098e-01  1.207e+03
area_classification1:total_revenues_z       -3.502e-01  1.010e-01  9.412e+01
total_revenues_z:poly(tenure_year_c, 3)1    -6.727e-01  3.158e-01  1.023e+03
total_revenues_z:poly(tenure_year_c, 3)2     6.526e-01  3.546e-01  5.187e+02
total_revenues_z:poly(tenure_year_c, 3)3    -4.520e-01  1.962e-01  4.782e+02
                                            t value Pr(>|t|)    
(Intercept)                                   3.120 0.004162 ** 
game_time_num_c_2                            -0.089 0.929432    
attendance_school_z                          -0.516 0.606032    
game_result1                                  0.740 0.459698    
s_game_c                                      0.021 0.983414    
conferenceBig10                              -0.021 0.983183    
conferenceBig12                              -0.756 0.460747    
conferencePac12                               0.599 0.557238    
conferenceSEC                                -1.679 0.112782    
area_classification1                         -2.295 0.027586 *  
total_revenues_z                              4.053 0.000106 ***
poly(tenure_year_c, 3)1                      -1.214 0.260153    
poly(tenure_year_c, 3)2                      -0.715 0.501835    
poly(tenure_year_c, 3)3                       4.131 4.62e-05 ***
conferenceBig10:poly(tenure_year_c, 3)1       0.832 0.430274    
conferenceBig12:poly(tenure_year_c, 3)1       0.416 0.689892    
conferencePac12:poly(tenure_year_c, 3)1       0.852 0.420602    
conferenceSEC:poly(tenure_year_c, 3)1        -0.889 0.398487    
conferenceBig10:poly(tenure_year_c, 3)2       0.163 0.875898    
conferenceBig12:poly(tenure_year_c, 3)2      -0.606 0.564628    
conferencePac12:poly(tenure_year_c, 3)2       0.603 0.568158    
conferenceSEC:poly(tenure_year_c, 3)2        -2.697 0.029748 *  
conferenceBig10:poly(tenure_year_c, 3)3      -5.457 9.27e-08 ***
conferenceBig12:poly(tenure_year_c, 3)3      -2.875 0.004942 ** 
conferencePac12:poly(tenure_year_c, 3)3      -4.429 1.87e-05 ***
conferenceSEC:poly(tenure_year_c, 3)3        -8.249 6.96e-15 ***
attendance_school_z:poly(tenure_year_c, 3)1   2.888 0.003943 ** 
attendance_school_z:poly(tenure_year_c, 3)2  -0.718 0.472839    
attendance_school_z:poly(tenure_year_c, 3)3  -2.387 0.017153 *  
area_classification1:total_revenues_z        -3.469 0.000790 ***
total_revenues_z:poly(tenure_year_c, 3)1     -2.130 0.033384 *  
total_revenues_z:poly(tenure_year_c, 3)2      1.840 0.066275 .  
total_revenues_z:poly(tenure_year_c, 3)3     -2.304 0.021634 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Correlation matrix not shown by default, as p = 33 > 12.
Use print(x, correlation=TRUE)  or
    vcov(x)        if you need it

3. Model Performance

performance::model_performance(m_school_r_2,estimator = "ML")
# Indices of model performance

AIC     |    AICc |     BIC | R2 (cond.) | R2 (marg.) |   ICC |  RMSE | Sigma
-----------------------------------------------------------------------------
-1723.3 | -1722.8 | -1641.2 |      0.885 |      0.086 | 0.875 | 0.108 | 0.110
performance::model_performance(m_school_inter_r_2,estimator = "ML")
# Indices of model performance

AIC     |    AICc |     BIC | R2 (cond.) | R2 (marg.) |   ICC |  RMSE | Sigma
-----------------------------------------------------------------------------
-1760.7 | -1760.0 | -1658.2 |      0.887 |      0.100 | 0.875 | 0.106 | 0.108
performance::model_performance(m_school_polytenure_inter_r_2,estimator = "ML")
# Indices of model performance

AIC     |    AICc |     BIC | R2 (cond.) | R2 (marg.) |   ICC |  RMSE | Sigma
-----------------------------------------------------------------------------
-1961.3 | -1958.6 | -1756.2 |      0.908 |      0.312 | 0.867 | 0.095 | 0.097