1
$\begingroup$

I hope someone could advise to interpret and report outputs of the multiple polynomial regression fit. I am trying to do a simple sensitivity analysis of an empirical threshold-based ecological model and possible interactions of different levels(change in thresholds). I have varied thresholds of 3 environmental variables +/- 1:3 levels (i.e. temperature thresh. was 10, and tested are values from 7 to 13), which are my predictors. The response is the area under empirically built ROC curve. I am not interested in prediction, only a simple inference.

I have already asked a question on the topic here, and as suggested tried polynomial fits, found 4th order to be the best, before 5th becomes looking line an overfit.
The formula:

rsm_fit <-  lm(auc ~ poly( rh, h, t, degree = 4, raw = TRUE), data = cd_data)

The Output:

Call:
lm(formula = auc ~ poly(rh, h, t, degree = 4, raw = TRUE), data = cd_data)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.060750 -0.012905  0.000603  0.015137  0.056616 

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                  7.782e-01  4.695e-03 165.771  < 2e-16 ***
poly(rh, h, t, degree = 4, raw = TRUE)1.0.0 -3.112e-02  1.903e-03 -16.354  < 2e-16 ***
poly(rh, h, t, degree = 4, raw = TRUE)2.0.0 -9.219e-03  1.578e-03  -5.842 1.31e-08 ***
poly(rh, h, t, degree = 4, raw = TRUE)3.0.0  8.417e-04  2.165e-04   3.888 0.000124 ***
poly(rh, h, t, degree = 4, raw = TRUE)4.0.0  5.150e-04  1.495e-04   3.444 0.000653 ***
poly(rh, h, t, degree = 4, raw = TRUE)0.1.0 -2.116e-02  1.903e-03 -11.121  < 2e-16 ***
poly(rh, h, t, degree = 4, raw = TRUE)1.1.0 -1.291e-04  1.166e-03  -0.111 0.911857    
poly(rh, h, t, degree = 4, raw = TRUE)2.1.0  9.978e-04  1.736e-04   5.749 2.16e-08 ***
poly(rh, h, t, degree = 4, raw = TRUE)3.1.0  6.149e-05  1.082e-04   0.568 0.570355    
poly(rh, h, t, degree = 4, raw = TRUE)0.2.0 -4.097e-03  1.578e-03  -2.596 0.009881 ** 
poly(rh, h, t, degree = 4, raw = TRUE)1.2.0  2.031e-03  1.736e-04  11.704  < 2e-16 ***
poly(rh, h, t, degree = 4, raw = TRUE)2.2.0 -2.796e-05  1.002e-04  -0.279 0.780425    
poly(rh, h, t, degree = 4, raw = TRUE)0.3.0  3.573e-04  2.165e-04   1.651 0.099842 .  
poly(rh, h, t, degree = 4, raw = TRUE)1.3.0  1.278e-04  1.082e-04   1.181 0.238584    
poly(rh, h, t, degree = 4, raw = TRUE)0.4.0  1.925e-04  1.495e-04   1.287 0.199099    
poly(rh, h, t, degree = 4, raw = TRUE)0.0.1  1.258e-02  1.903e-03   6.610 1.70e-10 ***
poly(rh, h, t, degree = 4, raw = TRUE)1.0.1 -6.130e-03  1.166e-03  -5.258 2.72e-07 ***
poly(rh, h, t, degree = 4, raw = TRUE)2.0.1  1.000e-03  1.736e-04   5.762 2.02e-08 ***
poly(rh, h, t, degree = 4, raw = TRUE)3.0.1  7.179e-05  1.082e-04   0.663 0.507630    
poly(rh, h, t, degree = 4, raw = TRUE)0.1.1 -4.512e-03  1.166e-03  -3.871 0.000132 ***
poly(rh, h, t, degree = 4, raw = TRUE)1.1.1  4.167e-04  1.503e-04   2.772 0.005906 ** 
poly(rh, h, t, degree = 4, raw = TRUE)2.1.1  7.520e-06  8.678e-05   0.087 0.931003    
poly(rh, h, t, degree = 4, raw = TRUE)0.2.1  1.569e-04  1.736e-04   0.904 0.366647    
poly(rh, h, t, degree = 4, raw = TRUE)1.2.1  2.741e-04  8.678e-05   3.159 0.001742 ** 
poly(rh, h, t, degree = 4, raw = TRUE)0.3.1  2.396e-04  1.082e-04   2.214 0.027573 *  
poly(rh, h, t, degree = 4, raw = TRUE)0.0.2 -3.751e-03  1.578e-03  -2.377 0.018065 *  
poly(rh, h, t, degree = 4, raw = TRUE)1.0.2  1.948e-04  1.736e-04   1.122 0.262578    
poly(rh, h, t, degree = 4, raw = TRUE)2.0.2  2.254e-04  1.002e-04   2.249 0.025209 *  
poly(rh, h, t, degree = 4, raw = TRUE)0.1.2 -3.510e-04  1.736e-04  -2.022 0.044016 *  
poly(rh, h, t, degree = 4, raw = TRUE)1.1.2  1.239e-04  8.678e-05   1.427 0.154456    
poly(rh, h, t, degree = 4, raw = TRUE)0.2.2 -1.581e-05  1.002e-04  -0.158 0.874731    
poly(rh, h, t, degree = 4, raw = TRUE)0.0.3 -1.247e-03  2.165e-04  -5.760 2.04e-08 ***
poly(rh, h, t, degree = 4, raw = TRUE)1.0.3  3.431e-04  1.082e-04   3.170 0.001678 ** 
poly(rh, h, t, degree = 4, raw = TRUE)0.1.3  2.584e-05  1.082e-04   0.239 0.811448    
poly(rh, h, t, degree = 4, raw = TRUE)0.0.4  2.327e-04  1.495e-04   1.556 0.120655    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.02227 on 308 degrees of freedom
Multiple R-squared:  0.8811,    Adjusted R-squared:  0.868 
F-statistic: 67.12 on 34 and 308 DF,  p-value: < 2.2e-16

Some of the interactions are not significant. Should they be removed? I have tried to look for an answer on this without any luck.

to plot the surface I used:

persp(rsm_fit, ~ h + t,zlab = "AUROC",at = data.frame(t = 0, rh = -3, h = 0 ), col = color, zlim = c(z_min,z_max),theta = 50, phi = 10,  shade  = .2)

3D plot looks like: enter image description here

Is there a recomendation for more customisable way to plot 3D surface than current.

$\endgroup$
5
  • $\begingroup$ No, you do not remove non-significant terms. You should find the best model for your data (using domain knowledge firstly and lastly just using a sequence of polynomials if you have no idea what is going on) using CV or a test set, and then interpret the best model as is. $\endgroup$ Commented Jan 7, 2019 at 9:32
  • $\begingroup$ Tnx. I did find the best model which is the 4th degree, and I know what is going on - this makes sense with theory. But how do I report all this? $\endgroup$
    – m_c
    Commented Jan 7, 2019 at 10:37
  • $\begingroup$ Any big model such as this will not be trivial to interpret, you have to decide what you include and how you explain it based on your final goal, what you are trying to show here. If this is consistent with your theory then explain how / in what way it is consistent. $\endgroup$ Commented Jan 7, 2019 at 10:49
  • $\begingroup$ Any advice on visualisation? $\endgroup$
    – m_c
    Commented Jan 7, 2019 at 17:11
  • $\begingroup$ Depends again on your objective, what you are trying to show. Personally I would show 3 graphs, one for each variable (rh, t, h). On each graph I would draw all the polynomial fits for that variable (with the data points in the background), so that we can easily compare the polynomial fits for that variable and see which polynomial fits better to the data. $\endgroup$ Commented Jan 8, 2019 at 9:12

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.