# 從faraway輸入資料
data("twins")
# 看前六筆資料
head(twins)
## Foster Biological Social
## 1 82 82 high
## 2 80 90 high
## 3 88 91 high
## 4 108 115 high
## 5 116 115 high
## 6 117 129 high
# 檢視資料結構
str(twins)
## 'data.frame': 27 obs. of 3 variables:
## $ Foster : num 82 80 88 108 116 117 132 71 75 93 ...
## $ Biological: num 82 90 91 115 115 129 131 78 79 82 ...
## $ Social : Factor w/ 3 levels "high","low","middle": 1 1 1 1 1 1 1 3 3 3 ...
# 摘要資料內容
summary(twins)
## Foster Biological Social
## Min. : 63.00 Min. : 68.0 high : 7
## 1st Qu.: 84.50 1st Qu.: 83.5 low :14
## Median : 94.00 Median : 94.0 middle: 6
## Mean : 95.11 Mean : 95.3
## 3rd Qu.:107.50 3rd Qu.:104.5
## Max. :132.00 Max. :131.0
# 繪製Foster和Biological的相關圖
ggplot(aes(y = Foster, x = Biological, color = Social), data = twins) + geom_point() + geom_smooth(method = lm, se = F) + theme_bw()
## `geom_smooth()` using formula 'y ~ x'
# 散佈圖 加上模型預測區域
twmod <- lm(Foster ~ Biological + Social, data = twins)
summary(twmod)
##
## Call:
## lm(formula = Foster ~ Biological + Social, data = twins)
##
## Residuals:
## Min 1Q Median 3Q Max
## -14.8235 -5.2366 -0.1111 4.4755 13.6978
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.6076 11.8551 -0.051 0.960
## Biological 0.9658 0.1069 9.031 5.05e-09 ***
## Sociallow 6.2264 3.9171 1.590 0.126
## Socialmiddle 2.0353 4.5908 0.443 0.662
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.571 on 23 degrees of freedom
## Multiple R-squared: 0.8039, Adjusted R-squared: 0.7784
## F-statistic: 31.44 on 3 and 23 DF, p-value: 2.604e-08
-0.61 + 0.966Biological + 6.23Sociallow + 2.04Socialmiddle + 7.57
R-squared 值為 .8039,說明迴歸模型占結果測量變異的 80.39%。 其中Biological t value 超出正負1.96,且p - value < .05,達到顯著,表示 Foster 和 Biological 之間有顯著的線性相關,在控制Sociallow 和 Socialmiddle 下,Biological 每增加一單位,Foster會增加0.966。
# 查看殘差值是否為常態分布
hist( x = residuals(twmod),
xlab = "Value of residual",
main = "",
breaks = 20)
殘差未呈現常態分布,但整體而言有往0集中。實際數值仍與預期有差異。
# 檢查殘差變異是否為正向分布,根據模型繪製理論分數與標準化殘差的分數
plot(twmod, which = 2)
# fitted value(預測值) 和 residuals(殘差) 的關係圖
# 線段越接近水平越好
plot(twmod, which = 1)
雖然不是完美的水平線,但起伏不大,可以說明此模型雖然會受部分殘差影響,但整體而言可以達到還不錯的預測結果。
# 將變項拆開來看,分別繪製其與 residuals(殘差) 的關係圖
residualPlots(twmod)
## Test stat Pr(>|Test stat|)
## Biological -0.6159 0.5443
## Social
## Tukey test -0.8109 0.4174
變項 Foster 和 Biological 跟殘差仍有一點相關,但未達顯著,Social 所呈現的box plot,其第二四分位數也很接近0,顯示上述變項都可以做為有效的預測模型。
# fitted value(預測值) 和開根號後的 standardized residuals(標準化殘差) 的關係圖
# 線段越接近水平越好
plot(twmod, which = 3)
雖然不是完美的水平線,但起伏不大,可以說明此模型雖然會受標準化殘差些微的影響,但整體而言可以達到還不錯的預測結果。