相比於R基礎提供的評價模型擬合狀況,car包中提供了大量函數,大大加強了擬合和評價迴歸模型的能力ide
函數 | 目的 |
qqplot() | 分位數比較圖 |
durbinWatsonTest() | 對偏差自相關性作Durbin-Watson檢驗 |
crPlots() | 成分與殘差圖 |
ncvTest() | 對非恆定的偏差方差作得分檢驗 |
spreadLevelPlot() | 分散水平檢驗 |
outlierTest() | Bonferroni離羣點檢驗 |
avPlots() | 添加的變量圖形 |
inluencePlot() | 迴歸影響圖 |
scatterplot() | 加強的散點圖 |
scatterplotMatrix() | 加強的散點圖矩陣 |
vif() | 方差膨脹因子 |
與基礎包中的plot()函數相比,qqPlot()函數提供了更爲精確的正態假設檢驗方法,它畫出了在n-p-1個自由度的 t 分佈下的 學生化殘差(studentized residual,也稱學生化刪除殘差或摺疊化殘差)圖形。其中 n 是樣本大小,p 是迴歸參數的數目(包括截距項)函數
> library(car) > states <- as.data.frame(state.x77[,c("Murder", "Population", + "Illiteracy", "Income", "Frost")]) > fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states) > qqPlot(fit, labels=row.names(states), id.method="identify", + simulate=TRUE, main="Q-Q Plot")
id.method = "identify"選項可以交互式繪圖--待圖形繪製後,用鼠標單擊圖形內的點,將會標註函數中labels選項的設定值,敲擊 Esc鍵,從那個圖形下拉菜單中選擇Stop,或者在圖形上右擊,都將關門閉這種交互模式。spa
simulate = TRUE 時,95%的置信區間將會用參數自助法code
residplot()函數生成學生化殘差柱狀圖(即直方圖),並添加 正態曲線、核密度曲線和軸須圖orm
經過這種方法來實現可視化,觀察殘差的正態性it
residplot <- function(fit, nbreaks=10) { z <- rstudent(fit) hist(z, breaks=nbreaks, freq=FALSE, xlab="Studentized Residual", main="Distribution of Errors") rug(jitter(z), col="brown") curve(dnorm(x, mean=mean(z), sd=sd(z)), add=TRUE, col="blue", lwd=2) lines(density(z)$x, density(z)$y, col="red", lwd=2, lty=2) legend("topright", legend = c( "Normal Curve", "Kernel Density Curve"), lty=1:2, col=c("blue","red"), cex=.7) } residplot(fit)
經過 成分殘差圖(compoet plus residual plot),也稱 偏殘差圖(partial residual plot),查看出自變量與因變量之間是否呈非線性關係,也能夠看看是否有不一樣於已設定線性模型的系統誤差,圖形能夠用car包中crplot()函數繪製io
#以下圖 library(car) crPlots(fit)
若圖形存在非線性,則說明對預測變量的函數形式建模不夠充分,那麼就須要添加一些曲線成分,好比多項式、或對一個或多個變量進行變換(如log(x)代替 x),或用其餘迴歸變體形式而是不線性迴歸table
car包提供了兩個有用的函數,能夠判斷偏差方差是否恆定。 ncvtest()函數生成一個計分檢驗,零假設(原假設)偏差方差不變,備擇假設爲偏差方差隨着擬合值水平的變化而變化,若檢驗顯著,則說明存在異方差性(偏差方差不恆定)function
spreadLevelPlot()函數建立一個添加了最佳擬合曲線的散點圖,展現標準化殘差絕對值與擬合值的關係,代碼以下form
#檢驗同方差性 #以下圖 #H0爲方差恆定 不顯著 > library(car) > ncvTest(fit) Non-constant Variance Score Test Variance formula: ~ fitted.values Chisquare = 1.746514 Df = 1 p = 0.1863156 #顯著水平爲 α = 0.05,p > 0.05表示 α錯誤(H0)爲真,可是咱們卻拒絕了)發生的機率大於5%,因此接受H0,計分檢驗不顯著 > spreadLevelPlot(fit) Suggested power transformation: 1.209626
能夠獲得計分檢驗不顯著(p = 0.19),說明知足方差不變假設。
也能夠能夠經過分佈水平圖看到這一點,其中點在水平的最佳擬合曲線周圍呈水平隨機分佈。若違反了該假設,你將會看到一個非水平曲線
代碼結果建議冪次變換(suggested power transformation)的含義是,通過 次冪(
)變換,非恆定的偏差方差將會平穩。例如,若圖形顯示了非水平趨勢,建議冪次轉換爲0.5,在迴歸等式中用
代替 Y,可能會使模型那個知足同方差性,若建議冪次爲0,則使用對數變換,對於當前例子,異方差習慣很不明顯,所以建議冪次接近1(不須要進行變換)