시뮬레이션 기반 추론

R을 활용한 선형 회귀 추론

Jo Hardin

Professor, Pomona College

R을 활용한 선형 회귀 추론

쌍둥이 IQ 산점도.

R을 활용한 선형 회귀 추론

쌍둥이 데이터

쌍둥이 IQ 표. 각 행은 쌍둥이 한 쌍에 해당합니다. 첫 번째 열은 위탁 부모에게 양육된 쌍둥이의 IQ, 두 번째 열은 친부모에게 양육된 쌍둥이의 IQ입니다.

R을 활용한 선형 회귀 추론

순열된 쌍둥이 데이터

쌍둥이 IQ 표의 각 열이 순열되어, 같은 행에 동일한 쌍의 쌍둥이가 나타나지 않습니다.

R을 활용한 선형 회귀 추론

순열 데이터 (1) 시각화

원본 데이터

순열 데이터 (1)

R을 활용한 선형 회귀 추론

순열 데이터 (2) 시각화

원본 데이터

순열 데이터 (2)

R을 활용한 선형 회귀 추론

순열 데이터 (1) 및 (2)

순열 데이터 (1)

순열 데이터 (2)

R을 활용한 선형 회귀 추론
twins %>%
   specify(Foster ~ Biological) %>%
   hypothesize(null = "independence") %>%
   generate(reps = 10, type = "permute") %>%
   calculate(stat = "slope")
A tibble: 10 x 2
   replicate          stat
       <int>         <dbl>
 1         1  0.0007709302
 2         2 -0.0353592305
 3         3 -0.0278627974
 4         4 -0.0072547982
 5         5 -0.1252761541
 6         6 -0.1669869287
 7         7 -0.2610519170
 8         8 -0.0157695494
 9         9  0.0581361900
10        10  0.1598471947
R을 활용한 선형 회귀 추론

다수의 순열 기울기

perm_slope <- twins %>%
   specify(Foster ~ Biological) %>%
   hypothesize(
     null = "independence"
     ) %>%
   generate(reps = 1000, 
            type = "permute") %>%
   calculate(stat = "slope") 

ggplot(data = perm_slope, aes(x = stat)) + 
   geom_histogram() +
   xlim(-1,1)

R을 활용한 선형 회귀 추론

순열 기울기와 관측 기울기(빨간색)

obs_slope <- lm(Foster ~ Biological,
                data = twins) %>%
   tidy() %>%   
   filter(term == "Biological") %>%
   select(estimate) %>%   
   pull()
obs_slope
0.901436
ggplot(data = perm_slope, aes(x = stat)) + 
   geom_histogram() +
   geom_vline(xintercept = obs_slope, color = "red") 
   + xlim(-1,1)

R을 활용한 선형 회귀 추론

연습해 봅시다!

R을 활용한 선형 회귀 추론

Preparing Video For Download...