# 從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)

理想中的殘差數值所形成的線段應是完美的水平,表示所有數值皆能被迴歸模型預測。雖然圖中顯示的不是完美的水平線,但起伏不大,可以說明此迴歸模型能預測大部分的結果,但仍要注意預測值並非完美的。