Tentative Model Comparison

Author

Jingyi Yang

1. Install Packages

library(readxl)
library("readr")
library("tidyverse")
Warning: package 'ggplot2' was built under R version 4.5.2
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ purrr     1.0.4
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   4.0.1     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(lme4)
Loading required package: Matrix

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack
library(lmerTest)
Warning: package 'lmerTest' was built under R version 4.5.2

Attaching package: 'lmerTest'

The following object is masked from 'package:lme4':

    lmer

The following object is masked from 'package:stats':

    step
library("effectsize")
Warning: package 'effectsize' was built under R version 4.5.2

2. Import the Data

The codes for “Import the Data” is the same as the codes for “Import the Data” given in the first report “Waste Management Project Update (Part I - exploratory data analysis - 12032025)”

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

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

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

5. 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
performance::model_performance(m_school_polytenure_inter_r_2)
Model was not fitted with REML, however, `estimator = "REML"`. Set
  `estimator = "ML"` to obtain identical results as from `AIC()`.
# Indices of model performance

AIC     |    AICc |     BIC | R2 (cond.) | R2 (marg.) |   ICC |  RMSE | Sigma
-----------------------------------------------------------------------------
-1927.0 | -1924.3 | -1721.9 |      0.908 |      0.312 | 0.867 | 0.095 | 0.097