Lecture 13 Diagnostics in MLR Variance Inflation Factors Added variable plots Identifying outliers BMTRY 701 Biostatistical Methods II
Variance Inflation Factor (VIF) Diagnostic for multicollinearity Describes the amount of an X that is explained by the other X’s in the model If VIF is high, then it suggests that the covariate should not be added. Why? it is redundant it adds variance to the model it creates ‘instability’ in the estimation
How to calculate VIF? Simple idea: That is, the VIF for the j th covariate is the coefficient of determination (R 2 ) obtained from regressing x j on the remaining x’s in the model
Sounds like a lot of work! You don’t actually have to estimate the regressions for each x j. Some matrix notation: X = matrix of covariates including a column for the intercept X T = transpose of X. That is, flip X on its diagonal X -1 = the inverse of X. That is, what you multiply X by to get the identity matrix I = the identity matrix. A matrix with 0’s on the off-diagonal and 1’s on the diagonal Useful matrix: X T X. (see chapter 3 for lots on it!) Another useful matrix: (X T X) -1
XTXXTX Recall what it means to standardize a variable: subtract off the mean divide by the standard deviation Imagine that you standardize all of the variables in your model (x’s). Call the new covariate matrix W Now, if calculate W T W (and divide by n-1), it is the correlation matrix Lastly, take the inverse of W T W (i.e., (W T W) -1 )
VIFs The diagonals of the (W T W) -1 matrix are the VIFs This is a natural by-product of the regression The (W T W) -1 matrix is estimated when the regression is estimated Rules of thumb: VIF larger than 10 implies a serious multicollinearity problem VIFs of 5 or greater suggest that coefficient estimates may be misleading due to multicollinearity
Getting the VIFs the old-fashioned way # standardize variables ages <- (AGE-mean(AGE))/sqrt(var(AGE)) censuss <- (CENSUS - mean(CENSUS))/sqrt(var(CENSUS)) xrays <- (XRAY - mean(XRAY))/sqrt(var(XRAY)) infrisks <- (INFRISK-mean(INFRISK))/sqrt(var(INFRISK)) sqrtcults <- (sqrtCULT-mean(sqrtCULT))/sqrt(var(sqrtCULT)) nurses <- (NURSE - mean(NURSE))/sqrt(var(NURSE)) # create matrix of covariates xmat <- data.frame(ages, censuss, xrays, infrisks, sqrtcults, nurses) xmat <- as.matrix(xmat) n <- nrow(xmat) # estimate x-transpose x and divide by n-1 cormat <- t(xmat)%*%xmat/(n-1) # solve finds the inverse of a matrix vifmat <- solve(cormat) round(diag(vifmat), 2)
More practical way. library(HH) mlr <- lm(logLOS ~ AGE + CENSUS + XRAY + INFRISK + sqrtCULT + NURSE) round(diag(vifmat), 2) ages censuss xrays infrisks sqrtcults nurses vif(mlr) AGE CENSUS XRAY INFRISK sqrtCULT NURSE
What to do? Unlikely that only one variable will have high VIF You need to then determine which to include, which to remove Judgement should be based on science + statistics!
More diagnostics: the added variable plots These can help check for adequacy of model Is there curvature between Y and X after adjusting for the other X’s? “Refined” residual plots They show the marginal importance of an individual predictor Help figure out a good form for the predictor
Example: SENIC Recall the difficulty determining the form for INFIRSK in our regression model. Last time, we settled on including one term, INFRISK^2 But, we could do an adjusted variable plot approach. How? We want to know, adjusting for all else in the model, what is the right form for INFRISK?
R code av1 <- lm(logLOS ~ AGE + XRAY + CENSUS + factor(REGION) ) av2 <- lm(INFRISK ~ AGE + XRAY + CENSUS + factor(REGION) ) resy <- av1$residuals resx <- av2$residuals plot(resx, resy, pch=16) abline(lm(resy~resx), lwd=2)
Added Variable Plot
What does that show? The relationship between logLOS and INFRISK if you added INFRISK to the regression But, is that what we want to see? How about looking at residuals versus INFRISK (before including INFRISK in the model)?
R code mlr8 <- lm(logLOS ~ AGE + XRAY + CENSUS + factor(REGION)) smoother <- lowess(INFRISK, mlr8$residuals) plot(INFRISK, mlr8$residuals) lines(smoother)
R code > infrisk.star 4,INFRISK-4,0) > mlr9 <- lm(logLOS ~ INFRISK + infrisk.star + AGE + XRAY + >CENSUS + factor(REGION)) > summary(mlr9) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.798e e < 2e-16 *** INFRISK 1.836e e infrisk.star 6.795e e * AGE 5.554e e * XRAY 1.361e e * CENSUS 3.718e e e-06 *** factor(REGION) e e * factor(REGION) e e *** factor(REGION) e e e-07 *** --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 104 degrees of freedom Multiple R-Squared: , Adjusted R-squared: F-statistic: on 8 and 104 DF, p-value: < 2.2e-16
Residual Plots SPLINE FOR INFRISK INFRISK 2
Which is better? Cannot compare via ANOVA because they are not nested! But, we can compare statistics qualitatively R-squared: MLR7: 0.60 MLR9: 0.62 Partial R-squared: MLR7: 0.17 MLR9: 0.19
Identifying Outliers Harder to do in the MLR setting than in the SLR setting. Recall two concepts that make outliers important: Leverage is a function of the explanatory variable(s) alone and measures the potential for a data point to affect the model parameter estimates. Influence is a measure of how much a data point actually does affect the estimated model. Leverage and influence both may be defined in terms of matrices
“Hat” matrix We must do some matrix stuff to understand this Notation for a MLR with p predictors and data on n patients. The data:
More notation: THE MODEL: What are the dimensions of each? Matrix Format for the MLR model
“Transpose” and “Inverse” X-transpose: X’ or X T X-inverse: X -1 Hat matrix = H Why is H important? It transforms Y’s to Yhat’s:
Estimating, based on fitted model Variance-Covariance Matrix of residuals: Variance of ith residual: Covariance of ith and jth residual:
Other uses of H I = identity matrix Variance-Covariance Matrix of residuals: Variance of ith residual: Covariance of ith and jth residual:
Property of hij’s This means that each row of H sums to 1 And, that each column of H sums to 1
Other use of H Identifies points of leverage
Using the Hat Matrix to identify outliers Look at hii to see if a datapoint is an outlier Large values of hii imply small values of var(ei) As hii gets close to 1, var(ei) approaches 0. Note that As hii approaches 1, yhat approaches y This gives hii the name “leverage” HIGH HAT VALUE IMPLIES POTENTIAL FOR OUTLIER!
R code hat <- hatvalues(reg) plot(1:102, hat) highhat 0.10,1,0) plot(x,y) points(x[highhat==1], y[highhat==1], col=2, pch=16, cex=1.5)
Hat values versus index
Identifying points with high hii
Does a high hat mean it has a large residual? No. hii measures leverage, not influence Recall what hii is made of it depends ONLY on the X’s it does not depend on the actual Y value Look back at the plot: which of these is probably most “influential” Standard cutoffs for “large” hii: 2p/n 0.5 very high, high
Let’s look at our MLR9 Any outliers?
Using the hat matrix in MLR Studentized residuals Acknowledge: each residual has a different variance magnitude of residual should be made relative to its variance (or sd) Studentized residuals recognize differences in sampling errors
Defining Studentized Residuals From slide 15, We then define Comparing ei and ri ei have different variance due to sampling variations ri have constant variance
Deleted Residuals Influence is more intuitively quantified by how things change when an observation is in versus out of the estimation process Would be more useful to have residuals in the situation when the observation is removed. Example: if a Yi is far out then it may be very influential in the regression and the residual will be small but, if that case is removed before estimating and then the residual is calculated based on the fit, the residual would be large
Deleted Residuals, di Process: delete ith case fit regression with all other cases obtain estimate of E(Yi) based on its X’s and fitted model
Deleted Residuals, di Nice result: you don’t actually have to refit without the ith case! where ei is the ‘plain’ residual from the ith case and hii is the hat value. Both are from the regression INCLUDING the case For small hii: ei and di will be similar For large hii: ei and di will be different
Studentized Deleted Residuals Recall the need to standardize, based on the knowledge of the variance The difference between ti and ri?
Another nice result You can calculate MSE (i) without refitting the model
Testing for outliers outlier = Y observations whose studentized deleted residuals are large (in absolute value) t i ~ t with n-p-1 degrees of freedom Two examples: simulated data mlr9