# 從faraway輸入資料
data("twins")
# 看前六筆資料
twins |> head() |> knitr::kable()
| Foster | Biological | Social |
|---|---|---|
| 82 | 82 | high |
| 80 | 90 | high |
| 88 | 91 | high |
| 108 | 115 | high |
| 116 | 115 | high |
| 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 ...
twins這筆資料包含2個連續變項和1個類別變項,類別變項Social中分為”high”,“low”,“middle”,總資料筆數為27。
# 摘要資料內容
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'
在Foster和Biological的相關圖中,所標示的數字代表個體的IQ。
在3種社經地位中,Foster和Biological皆呈正比,顯示不論是被領養的孩子還是在原生家庭的孩子,原本就聰明的個體在同一種社經地位下,就會展現出較高的IQ。(組內差異)
在3種社經地位中,斜率看起來沒有差太多(幾乎呈現平行),但low的分數明顯較低,接著是middle,最後是high。顯示處於社經地位高的家庭,部分孩子能展現較高的IQ,而低社經地位的孩子則展現出比middle、high兩組更低的IQ分數。(組間差異)
# 散佈圖 加上模型預測區域
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
intercept的估計值β為-0.61,t-value為-0.051,沒有超出正負1.96的臨界值,且p-value = 0.960 > .05,因此雖然intercept的估計值不等於0(Foster的grand mean),顯示有差異但未達顯著水準。
Biological的估計值β為0.966,t-value為9.031,超出正負1.96的臨界值,且p-value = 5.05e-09 < .05,可以說Biological的估計值不等於0,且差異達顯著水準,展現出明顯的差異。
在Social這個類別變項中,high是reference level。low和middle的估計值β分別為6.226和2.035,但兩者的t-value和p-value皆未顯示達顯著,因此可以說明社經地位無法有效預測IQ分數。
R-squared值為 .8039,表示該迴歸模型可解釋依變項中80.39%的變異。 其中Biological達到顯著,表示 Foster 和 Biological 之間有顯著的線性相關,在控制Sociallow 和 Socialmiddle 下,Biological 每增加一單位,Foster會增加0.966。
# 檢查殘差變異是否為正向分布,根據模型繪製理論分數與標準化殘差的分數
plot(twmod, which = 2)
從圖中可以解釋,我們的理論分數和標準化殘差分數呈正相關,且實際上的分數並沒有偏離預期非常多,但仍有部分偏差值無法被解釋。
# fitted value(預測值) 和 residuals(殘差) 的關係圖
# 線段越接近水平越好
plot(twmod, which = 1)
理想中的殘差數值所形成的線段應是完美的水平,表示所有數值皆能被迴歸模型預測。雖然圖中顯示的不是完美的水平線,但起伏不大,可以說明此迴歸模型能預測大部分的結果,但仍要注意預測值並非完美的。