library(tidyverse)
library(car)
library(faraway)
data(hsb)
看看資料結構
str(hsb)
## 'data.frame': 200 obs. of 11 variables:
## $ id : int 70 121 86 141 172 113 50 11 84 48 ...
## $ gender : Factor w/ 2 levels "female","male": 2 1 2 2 2 2 2 2 2 2 ...
## $ race : Factor w/ 4 levels "african-amer",..: 4 4 4 4 4 4 1 3 4 1 ...
## $ ses : Factor w/ 3 levels "high","low","middle": 2 3 1 1 3 3 3 3 3 3 ...
## $ schtyp : Factor w/ 2 levels "private","public": 2 2 2 2 2 2 2 2 2 2 ...
## $ prog : Factor w/ 3 levels "academic","general",..: 2 3 2 3 1 1 2 1 2 1 ...
## $ read : int 57 68 44 63 47 44 50 34 63 57 ...
## $ write : int 52 59 33 44 52 52 59 46 57 55 ...
## $ math : int 41 53 54 47 57 51 42 45 54 52 ...
## $ science: int 47 63 58 53 53 63 53 39 58 50 ...
## $ socst : int 57 61 31 56 61 61 61 36 51 51 ...
head(hsb)
## id gender race ses schtyp prog read write math science socst
## 1 70 male white low public general 57 52 41 47 57
## 2 121 female white middle public vocation 68 59 53 63 61
## 3 86 male white high public general 44 33 54 58 31
## 4 141 male white high public vocation 63 44 47 53 56
## 5 172 male white middle public academic 47 52 57 53 61
## 6 113 male white middle public academic 44 52 51 63 61
現在想要知道,性別與閱讀能力對寫作能力的預測力。
因為性別為類別變項,所以不需做相關檢定。
#看一下閱讀能力和寫作能力在性別上的差異:
ggplot(aes(y = read, x = write, color = gender), data = hsb) +
geom_point() +
geom_smooth(method = lm, se = F) +
theme_bw()
## `geom_smooth()` using formula 'y ~ x'
從上方的圖表可以看出,閱讀能力和寫作能力在性別上皆呈現正相關,斜率差不多。
#開始跑線性回歸模型,看性別與閱讀能力在寫作能力上的預測力:
rwg <- lm(write ~ gender + read, data = hsb)
summary(rwg)
##
## Call:
## lm(formula = write ~ gender + read, data = hsb)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.523 -5.658 0.168 5.043 15.175
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 25.71526 2.64464 9.724 < 2e-16 ***
## gendermale -5.48689 1.01426 -5.410 1.82e-07 ***
## read 0.56589 0.04938 11.459 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.133 on 197 degrees of freedom
## Multiple R-squared: 0.4394, Adjusted R-squared: 0.4337
## F-statistic: 77.21 on 2 and 197 DF, p-value: < 2.2e-16
yi=β0+β1x1i+β2x2i+εi
Writing = 25.715 - 5.487male + 0.566read + 7.133
截距的 β 估計值為25.715,t-value = 9.724,p-value < 0.05,因此拒絕虛無假設,截距估計值顯著大於零,也就是說,寫作的整體平均數(grand mean)為25.715。
性別屬於類別變項,詮釋方式與連續變項不同,是群組平均數的差異。此一迴歸模型將女性設為參照組,男性的寫作平均數比女性低5.487,然而t值為-5.410,p值<.000,因此拒絕虛無假設,男性的寫作能力較女性差。
閱讀的 β 估計值為0.566,t-value = 11.459,p-value < 0.05,因此拒絕虛無假設,閱讀與寫作有顯著的正相關。換言之,在考量其他變項之後,每變動一個單位的閱讀,寫作的平均數就會上升0.566。
R-squared = 0.4394。此迴歸模型可解釋寫作中約43.94%的變異。
#檢測資料是否為常態
直方圖可以直觀的看出資料分布情況:
hist( x = residuals(rwg),
xlab = "Value of residual",
main = "",
breaks = 20)
一個良好的迴歸模型,其預測值與觀察值的差異應近乎零,因此殘差會服從常態分佈,且平均數為零。
Normal Q-Q
.殘差是否為常態分佈
.殘差之圖形越接近直線越好
plot(rwg, which = 2)
從上方圖表可以看出,殘差的點所組成的線段接近直線,所以此筆資料的殘差接近常態分佈。
#觀察線性關係
.越接近水平線越好
residualPlots(rwg)
## Test stat Pr(>|Test stat|)
## gender
## read -1.1356 0.25752
## Tukey test -1.7249 0.08455 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#檢測標準化殘差和期望值的同質性
同質性越高,越接近水平線
plot(rwg, which = 3)
從Residuals vs. Fitted的圖來看,點點應該是離散狀,紅色虛線呈筆直的水平線,且貼近零,表示殘差不會隨著預測值的變動而有所改變。可是此殘差圖中的紅色虛線,仍呈微幅的曲線狀,或許尚有些變異未能完全被模式中的自變項所解釋。