class: center, middle, inverse, title-slide .title[ # 4. 확률과 통계적 추론 I: 확률, 모집단과 표본 ] .subtitle[ ## 정치와 데이터분석 ] .author[ ### 박상훈 (
sh.park.poli@gmail.com
) ] .date[ ### 강원대학교 ] --- # 오늘의 목표 ## 10:10-11:00 확률(개념, 연산, 분포)에 대해 이해하기: 정규, 이항, 포아송, 음이항 분포 등에 대한 실습 + Gailmard Ch. 4, CH. 6의 확률측도, 사건연산, PMF/CDF/PDF, 조건부/독립, Data Generating Process (DGP)와 분포를 연결 ## 11:10-12:05 표본 `\(\rightarrow\)` 모집단 추론의 다리 놓기, Part I.<br>K & W Ch. 7의 모집단, 표본, 표집분포, CLT, 신뢰구간 등에 대한 이해 ## 12:15-12:45 표본 `\(\rightarrow\)` 모집단 추론의 다리 놓기, Part II.<br>ModernDive Ch. 7, 8 --- # Recap the Last Class! ## Pop-up quizes! 각 변수의 유형을 구분해보자. <table class=" lightable-material lightable-striped lightable-hover" style='color: black; font-family: "Source Sans Pro", helvetica, sans-serif; margin-left: auto; margin-right: auto;'> <thead> <tr> <th style="text-align:left;"> gender </th> <th style="text-align:right;"> sleep </th> <th style="text-align:left;"> school </th> <th style="text-align:right;"> countries </th> <th style="text-align:right;"> bodytemp </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> male </td> <td style="text-align:right;"> 5.0 </td> <td style="text-align:left;"> Elem </td> <td style="text-align:right;"> 13 </td> <td style="text-align:right;"> 36.4 </td> </tr> <tr> <td style="text-align:left;"> female </td> <td style="text-align:right;"> 7.0 </td> <td style="text-align:left;"> Elem </td> <td style="text-align:right;"> 7 </td> <td style="text-align:right;"> 37.4 </td> </tr> <tr> <td style="text-align:left;"> male </td> <td style="text-align:right;"> 5.5 </td> <td style="text-align:left;"> High </td> <td style="text-align:right;"> 1 </td> <td style="text-align:right;"> 37.1 </td> </tr> <tr> <td style="text-align:left;"> female </td> <td style="text-align:right;"> 3.0 </td> <td style="text-align:left;"> Col </td> <td style="text-align:right;"> 9 </td> <td style="text-align:right;"> 36.5 </td> </tr> </tbody> </table> --- # Recap the Last Class! ## Pop-up quizes! 각 변수의 유형을 구분해보자. + `gender`: -- 명목형-이항형 + `sleep`: -- 연속형-등간형 + `school`: -- 명목형-분류형(혹은 순위형) + `countries`: -- 명목형-분류형 + `bodytemp`: -- 연속형-비율형 --- # Recap the Last Class! ## Pop-up quizes! .pull-left[ 산포도를 보고 올바른 진술을 고르시오. (a) 관계 없음(독립) (b) 정(positive) 관계 (c) 길수록 두개골은 더 넓어진다 (d) 더 넓을수록 길다 ] .pull-right[ <img src="05-slides_files/figure-html/unnamed-chunk-3-1.png" width="90%" /> ] --- class: center, middle # Part I. 확률과 분포(Probability and Distribution) --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률, 분포, 그리고 가설 확률모델: 우리가 어떠한 이론적 기대인 모델을 가지고 있을 때, 어떠한 데이터(현실)를 관측할 확률에 대해 알려줌. -- 동전 던지기 + 앞면을 관측할 확률을 대략 0.5일 것이라고 기대 + 정확히는 동전을 반복해서 던졌을 때, 데이터가 어떻게 나타날 것(동전의 앞/뒷면이 반반)이라는 이론을 가지고 있다는 것 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률, 분포, 그리고 가설 $$ \Pr(Y|M) = \Pr(데이터 | 모델) $$ + 즉, 확률이란 무한정 반복되는 무작위한 과정에서 우리가 어떠한 결과를 관측할 횟수의 비율(proportion of times) + **무작위한 과정(random process)**: 무슨 일이 일어날 것이라는 건 알지만, 그 결과가 어떤 것인지는 알지 못하는 상태 + 동전 던지기, 주사위 굴리기 등은 결과가 무엇이든 도출될 것은 알지만 구체적인 결과를 불확실 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률의 유형 사건 `\(A\)` 와 `\(B\)` .pull-left[ **결합확률(Joint probability)** `\(\Pr(A\cap B)\)` 또는 `\(\Pr(A \text{ and } B)\)` **한계확률(Marginal probability)** `\(\Pr(A)\)` 또는 `\(\Pr(B)\)` ] .pull-right[ **조건부확률(Conditional probability)** 한계확률 대비 결합확률의 비율 `\(\Pr(A|B) = \Pr(A\cap B)/\Pr(B)\)` ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률의 유형: 한계확률과 결합확률 .pull-left[ .center[Table: 한계확률과 결합확률 (1)] | 구분 | `\(A_{\text{Fight}}\)` | `\(A_{\text{Comply}}\)` | 총합 | | ------------------- | :----------------: | :-----------------: | :-: | | `\(B_{\text{Fight}}\)` | 0.3 | 0.2 | 0.5 | | `\(B_{\text{Comply}}\)` | 0.1 | 0.4 | 0.5 | | 총합 | 0.4 | 0.6 | 1 | ] .pull-right[ A와 B라는 국가는 서로 갈등 중 + A가 싸우기로 결정할 확률은?<br>/B가 싸우기로 결정할 확률은? + A가 상대방의 요구에 순응할 확률은? /B가 상대방의 요구에 순응할 확률은? + A와 B가 모두 싸우기로 결정할 확률은?<br>/A와 B가 모두 상대방에게 순응할 확률은? ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률의 유형: 한계확률과 결합확률 .pull-left[ .center[Table: 한계확률과 결합확률 (1)] | 구분 | `\(A_{\text{Fight}}\)` | `\(A_{\text{Comply}}\)` | 총합 | | ------------------- | :----------------: | :-----------------: | :-: | | `\(B_{\text{Fight}}\)` | 0.3 | 0.2 | 0.5 | | `\(B_{\text{Comply}}\)` | 0.1 | 0.4 | 0.5 | | 총합 | 0.4 | 0.6 | 1 | ] .pull-right[ A와 B라는 국가는 서로 갈등 중 + `\(\Pr(A_\text{Fight}) = 0.4\)` <br> `\(\Pr(B_\text{Fight}) = 0.5\)` + `\(\Pr(A_\text{Comply}) = 0.6\)` <br> `\(\Pr(B_\text{Comply}) = 0.5\)` + `\(\Pr(A_\text{Fight}\cap B_\text{Fight}) = 0.3\)` <br> `\(\Pr(A_\text{Comply}\cap B_\text{Comply}) = 0.4\)` ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률의 유형: 한계확률과 결합확률 .pull-left[ .center[Table: 한계확률과 결합확률 (2)] | 구분 | A | B | 총합 | | -- | :-: | :-: | :-: | | 남성 | 40 | 60 | 100 | | 여성 | 65 | 35 | 100 | | 총합 | 105 | 95 | 200 | ] .pull-right[ 유권자들에게 두 가지 질문: <br>(1) A 후보 vs B 후보 투표<br>(2) 남성 vs 여성 + 응답자가 여성일 확률은? + 응답자가 남성일 확률은? + 여성 중에서 A 후보에게 투표했을 조건부 확률은? + 응답자가 여성이면서 A 후보에게 투표했을 확률은? ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률의 유형: 한계확률과 결합확률 .pull-left[ .center[Table: 한계확률과 결합확률 (2)] | 구분 | A | B | 총합 | | -- | :-: | :-: | :-: | | 남성 | 40 | 60 | 100 | | 여성 | 65 | 35 | 100 | | 총합 | 105 | 95 | 200 | ] .pull-right[ 유권자들에게 두 가지 질문: <br>(1) A 후보 vs B 후보 투표<br>(2) 남성 vs 여성 + `\(\Pr(\text{여성}) = 100/200 = 0.5\)` + `\(\Pr(\text{남성}) = 100/200 = 0.5\)` + `\(\Pr(A\mid \text{여성}) = 65/100 = 0.65\)` + `\(\Pr(A,\text{여성}) = 65/200 = 0.325\)` ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 독립(Independence) 어떤 사건의 결과를 알아도 다른 사건의 결과에 정보가 없다면 독립 + 동전 던지기 1회 결과는 2회 결과에 영향을 주지 않음 `\(\rightarrow\)` 독립 + 반대로 정보가 있다면 종속. 예를 들어, 카드 덱에서 에이스를 한 장 뽑았다면 다음 에이스 확률은 변함 `\(\rightarrow\)` 종속 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 확률변수(Random variables) 무작위 사건의 결과를 수량화하여 나타냄. + `\(X\)` 는 변수, `\(x\)`는 그 변수의 구체적인 값을 나타냄. + `\(X = \{1, 2, 3, \dots, x\}\)` + `\(\Pr(X = x)\)` : 확률변수 `\(X\)` 가 `\(x\)` 라는 구체적인 값을 가질 확률 + 이때, `\(x\)` 는 이산형(정수) 혹은 연속형(실수)일 수 있음. --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 기대값(Expectation) 확률변수의 평균적 결과 = 기대값 + 모집단을 대표하는 값이나, 우리는 현실에서 가지고 있는 데이터인 표본을 대표하는 값인 평균으로 이 기대값을 대응함. $$ \mu = E(X) = \sum^k_{i = 1}x_i \Pr(X = x_i) $$ -- 1~6의 눈을 가진 주사위의 기대값을 구하면 어떻게 될까? -- $$ E(X) = 1 \times \frac{1}{6} + \cdots + 6 \times \frac{1}{6} = 3.5 $$ --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이산형 확률 변수의 기대값 .panelset[ .panel[.panel-name[R-code] ``` r library(tidyverse) discrete <- tibble(x = c(rep("0", 60), rep("1", 20), "2", "3", "4", rep("5", 10), "6", "7", "8", "9", rep("10", 3))) discrete |> ggplot(aes(x = x)) + geom_bar(aes(y = (..count..)/sum(..count..))) + scale_y_continuous(breaks = c(seq(0, 0.6, 0.1)), labels = scales::percent) + scale_x_discrete(limits = c(unique(discrete$x))) ``` ] .panel[.panel-name[Plot] <!-- --> ] .panel[.panel-name[Expected value] $$ `\begin{aligned} E(X) =&0 \times 0.6 + 1 \times 0.2 + 2 \times 0.01 + 4 \times 0.01\\ & + 5 \times 0.1 + 6 \times 0.01 + 7 \times 0.01 + 8 \times 0.01 + 9 \times 0.01 + 10 \times 0.03\\ = & 1.39 \end{aligned}` $$ ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포(Distribution) 확률분포(Probability distribution)는 임의의 사건이나 값 `\(x_i\)`가 나타날 확률 `\(p_i\)`와의 체계적 관계를 나타냄. + 어떤 확률변수 `\(X\)`가 취할 수 있는 가능한 값들을 `\(x_1, x_2, \dots, x_n\)`이라고 할 때, 각 값이 발생할 확률을 `\(p_1, p_2, \dots, p_n\)`으로 정의 + 즉, 확률분포는 다음과 같은 쌍 `\((x_i, p_i)\)`들의 집합으로 표현 $$ \Pr(X = x_i) = p_i, \:\:\: (i = 1, 2, \dots, n) $$ + 이때, 확률변수는 다음의 조건을 만족해야 함. + (1) 확률은 0 이상이어야 함: `\(p_i \geq 0 \:\:\: \forall i\)`, (2) 확률의 전체 합은 1: `\(\sum^n_{i = 1}p_i = 1\)` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포(Distribution): 예시 ### 동전 던지기 `\(x_i \in \{\text{앞}, \text{뒤}\}\)`, `\(p_1 = 0.5, p_2 = 0.5\)` `\(\rightarrow\)` 확률분포: `\(\{ (\text{앞}, 0.5), (\text{뒤}, 0.5) \}\)` ### 주사위 던지기 `\(x_i \in \{1, 2, 3, 4, 5, 6\}\)`, `\(p_i = \tfrac{1}{6}\)` `\(\rightarrow\)` 확률분포: `\(\{(1, 1/6), (2, 1/6), \dots, (6, 1/6) \}\)` --- background-image: url("stat101w2_Distribution.png") background-size: 850px background-position: 70% 80% # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포(Distribution) --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포(Distribution) ### 확률질량함수(Probability Mass Function, PMF) 이산확률분포(Discrete distribution): 베르누이분포, 이항분포, 포아송분포 이산형 확률변수 `\(X\)`에 대해 `\(p(x) = P(X = x)\)` 의 관계를 보여주는 함수 ### 확률밀도함수(Probability Density Function, PMF) 연속확률분포(Continuous distribution): 정규분포, 지수분포 연속형 확률변수 `\(X\)`에 대한 확률을 나타내는 함수 `\(f(x)\)`. `\(\Pr(a \leq X \leq b) = \int_a^b f(x), dx\)` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포(Distribution) ### 누적분포함수(Cummulative Distribution Function, CDF) 주어진 확률변수의 값이 특정한 값보다 크거나 작을 확률을 나타내는 함수 + 이산형: `\(F(x) = \Pr(X \leq x) = \sum^{}_{x_i \leq x} p_i\)` + 연속형: `\(F(x) = \int^x_{-\infty} f(t)dt\)` + `\(t\)` 는 `\(-\infty\)`부터 `\(x\)`까지의 구간에서 흘러가는 변수를 의미 + `\(x\)`는 내가 누적 확률을 계산하고 싶은 지점(상한) --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 누적분포함수(Cummulative Distribution Function, CDF) .panelset[ .panel[.panel-name[R-code] ``` r x <- seq(-5, 5, length = 100) plot(x, dnorm(x), type = "l", col = "#DB3A2F", ylab = "Density", xlim = c(-5, 5), ylim = c(0, 1)) text(-3, 0.2, "PDF of Normal Distribution", col = "#DB3A2F") par(new=TRUE) plot(x, pnorm(x), type = "l", col = "#275D8E", ylab = "Density", xlim = c(-5, 5), ylim = c(0, 1)) text(2, 0.5, "CDF of Normal Distribution", col = "#275D8E") ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 데이터 생성 과정(Data Generating Process, DGP)와 분포 선택 분포 = 가정한 데이터 생성 과정(DGP) + 정규: 연속적인 값 + 이항/로짓: 이진 선택(있다/없다) + 포아송/음이항: 카운트 `\(\cdot\)` 과산포: 횟수 + 지수/웨이블: 지속시간 체계적 부분 + 확률적 부분의 모형 관점 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포와 R R을 사용하면 쉽게 밀도, 누적분포함수, 분위, 확률값 등을 구할 수 있음. .pull-left[ `dname`: 밀도(density) `pname`: 누적분포함수(CDF) ] .pull-right[ `qname`: 분위(quantile) `rname`: 확률값(random values) ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 분포와 R R을 사용하면 쉽게 밀도, 누적분포함수, 분위, 확률값 등을 구할 수 있음. .pull-left[ .panelset[ .panel[.panel-name[dnorm] ``` r dnorm(x = 3, mean = 2, sd = 5) ``` ``` ## [1] 0.07820854 ``` ] .panel[.panel-name[pnorm] ``` r pnorm(q = 3, mean = 2, sd = 5) ``` ``` ## [1] 0.5792597 ``` ] .panel[.panel-name[qnorm] ``` r qnorm(p = 0.975, mean = 2, sd = 5) ``` ``` ## [1] 11.79982 ``` ] .panel[.panel-name[rnorm] ``` r rnorm(n = 4, mean = 2, sd = 5) ``` ``` ## [1] 4.426134 5.483844 2.927570 5.503668 ``` ] .panel[.panel-name[dbinom] ``` r dbinom(x= 6, size = 10, prob = 0.75) ``` ``` ## [1] 0.145998 ``` ] .panel[.panel-name[pbinom] ``` r pbinom(2, size=5, prob=.5, lower.tail=FALSE) ``` ``` ## [1] 0.5 ``` ] .panel[.panel-name[qbinom] ``` r qbinom(.40, size=30, prob=.25) ``` ``` ## [1] 7 ``` ] .panel[.panel-name[rbinom] ``` r rbinom(6, size=100, prob=.3) ``` ``` ## [1] 30 36 28 34 31 23 ``` ] ] ] .pull-right[ <table class="table" style="color: black; margin-left: auto; margin-right: auto;"> <thead> <tr> <th style="text-align:left;"> Command </th> <th style="text-align:left;"> Distribution </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> *binom </td> <td style="text-align:left;"> Binomial </td> </tr> <tr> <td style="text-align:left;"> *t </td> <td style="text-align:left;"> t </td> </tr> <tr> <td style="text-align:left;"> *pois </td> <td style="text-align:left;"> Poisson </td> </tr> <tr> <td style="text-align:left;"> *f </td> <td style="text-align:left;"> F </td> </tr> <tr> <td style="text-align:left;"> *chisq </td> <td style="text-align:left;"> Chi-Squared </td> </tr> </tbody> </table> ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 정규분포(Normal distribution) 표준정규분포: `\(\pm 1 SD ≈ 68\%\)`, `\(\pm 2 SD ≈ 95\%\)`, `\(\pm 3 SD ≈ 99\%\)` <!-- --> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 정규분포(Normal distribution) 평균 50, SD 10인 정규분포에서 70의 위치? -- ``` r pnorm(70, mean = 50, sd = 10, lower.tail = TRUE) ``` ``` ## [1] 0.9772499 ``` ``` r pnorm(70, mean = 50, sd = 10, lower.tail = FALSE) ``` ``` ## [1] 0.02275013 ``` ``` r 1 - pnorm(70, mean = 50, sd = 10, lower.tail = TRUE) ``` ``` ## [1] 0.02275013 ``` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 정규분포(Normal distribution) 평균 50, SD 10인 정규분포에서 70의 위치? 70은 하위 약 97.7% (상위 2.3%) --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## Student's `\(t\)`: `\(t\)`-분포 정규와 유사하나 꼬리가 두꺼움. + 자유도(degree of freedom)가 커질수록 정규에 수렴 + 추정 과정에서 **독립적으로 변할 수 있는 정보 조각의 수** + 자유도가 작다는 것의 의미는? 추정한 모수(제약)가 생기면, 데이터 값들 사이에 **구속조건**이 생겨서 자유롭게 변할 수 있는 차원이 감소 + 표본분산에서 `\(n-1\)`로 나누어주는 것에서 `\(-1\)`은 표본평균인 `\(\bar{x}\)`를 이미 추정했다는 사실이 하나의 제약을 만들어 `\(\sum_{i=1}^n (x_i-\bar{x})=0\)` 이 항상 성립. + 따라서 `\((x_i-\bar{x})\)` 들은 **완전히 독립적이지 않다** `\(\rightarrow\)` 자유도는 `\(n\)`이 아니라 `\(n-1\)` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## Student's `\(t\)`: `\(t\)`-분포 정규와 유사하나 꼬리가 두꺼움. + 자유도(degree of freedom)가 커질수록 정규에 수렴 + `\(t\)`-분포에서의 자유도 + 일표본(one-sample) 평균 검정/CI: 모분산을 모르므로 `\(s\)`를 추정 `\(\rightarrow\)` 제약 1개 + `\(t=\frac{\bar{X}-\mu_0}{s/\sqrt{n}}, \quad t\sim t_{\color{#d13}{n-1}}\)` + 평균 신뢰구간의 오차한계에 `\(t(se)\)` 등장(다음 주차에 자세히 배울 것임) + 자유도가 작을수록 꼬리 두꺼움 `\(\rightarrow\)` 더 큰 임계값 `\(\rightarrow\)` 더 넓은 신뢰구간 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## Student's `\(t\)`: `\(t\)`-분포 .pull-left[ ``` r x <- seq(-4, 4, length.out = 400) plot(x, dnorm(x), type="l", lwd=2, ylab="density", xlab="", main="t 분포: df에 따른 꼬리 두께") lines(x, dt(x, df=20), lty=2) lines(x, dt(x, df=5), lty=3) legend("topright", c("정규", "t(df=20)", "t(df=5)"), lwd=c(2,1,1), lty=c(1,2,3), bty="n") ``` ] .pull-right[ <!-- --> ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## Student's `\(t\)`: `\(t\)`-분포 <!-- --> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이항분포(Binomial distribution) `\(n\)` 번 시행에서 `\(k\)` 번 성공할 확률 + 각 시행은 **독립**이며 결과는 **성공(1)** 또는 **실패(0)** + 모든 시행의 성공확률은 **고정** `\(p\)` + 관심 변수: `\(Y=\)` 성공 횟수 .pull-left[ ### 확률질량함수(PMF) $$ `\begin{aligned} \Pr(Y=y)&=\binom{n}{y}\,p^{\,y}(1-p)^{\,n-y},\\&\quad y=0,1,\dots,n \end{aligned}` $$ ] .pull-right[ ### 조합적 직관 - `\(n\)`번 중 **어느 `\(y\)`개의 위치에서 성공이 나오는지** 경우의 수: `\(\binom{n}{y}\)` - 각 배치는 `\(p^y(1-p)^{n-y}\)`의 확률 ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이항분포(Binomial distribution) `\(n\)` 번 시행에서 `\(k\)` 번 성공할 확률 ### 이항분포의 특성 .pull-left[ 기대값: `\(\mathbb{E}[Y]=np\)` 분산: `\(\mathrm{Var}(Y)=np(1-p)\)` ] .pull-right[ 누적분포(CDF): `\(\Pr(Y\le y)=\displaystyle\sum_{i=0}^{y}\binom{n}{i}p^{i}(1-p)^{n-i}\)` ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이항분포(Binomial distribution) `\(n\)` 번 시행에서 `\(k\)` 번 성공할 확률 ``` r pbinom(27, size=100, prob=0.25, lower.tail = TRUE) ``` ``` ## [1] 0.7223805 ``` -- 27번 성공은 하위 72.2%, 상위 27.8% --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이항분포(Binomial distribution) .panelset[ .panel[.panel-name[R-code: Parameters] .pull-left[ ``` r # 파라미터 n <- 20; p <- 0.3 # PMF/CDF/분위/난수 dbinom(6, size=n, prob=p) # P(Y=6) ``` ``` ## [1] 0.191639 ``` ``` r pbinom(6, size=n, prob=p) # P(Y<=6) ``` ``` ## [1] 0.6080098 ``` ] .pull-right[ ``` r qbinom(.95, size=n, prob=p) # 95% 분위 ``` ``` ## [1] 9 ``` ``` r rbinom(5, size=n, prob=p) # 난수 5개 ``` ``` ## [1] 7 6 11 6 8 ``` ] ] .panel[.panel-name[R-code: Plot] ``` r # 정규근사와 비교 y <- 0:n prob_exact <- dbinom(y, n, p) prob_norm <- pnorm(y+0.5, n*p, sqrt(n*p*(1-p))) - pnorm(y-0.5, n*p, sqrt(n*p*(1-p))) tibble(y, exact=prob_exact, normal_cc=prob_norm) |> pivot_longer(-y, names_to="type", values_to="pr") |> ggplot(aes(y, pr, color=type)) + geom_line() + labs(title="Binomial vs Normal(continuity correction)") ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 이항분포(Binomial distribution) ### Pop-up Quiz `\(n=50\)`, `\(p=0.2\)`에서 `\(Y\)`의 기대값과 분산은? -- + **HINT**: 이항분포 `\(Y \sim \text{Binomial}(n,p)\)` 일 때, `\(\mathbb{E}[Y] = np\)`, `\(Var(Y) = np(1-p)\)` -- + `\(E[Y]=10\)`, `\(\mathrm{Var}(Y)=8\)` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 포아송분포(Poisson distribution) 단위 시간/공간에서 희소한 사건의 발생 건수 희소한 사건의 발생 건수, 평균 = 분산 = `\(\lambda\)` + 시간(혹은 공간) 축에서 사건이 드물고 독립적으로 발생 + 평균 발생률(강도) `\(\lambda\)` (단위당 평균 사건수) .pull-left[ ### 확률질량함수 $$ \Pr(Y = y) = e^{-\lambda}\frac{\lambda^y}{y!}, \quad y = 0, 1, 2\dots $$ ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 포아송분포(Poisson distribution) 단위 시간/공간에서 희소한 사건의 발생 건수 희소한 사건의 발생 건수, 평균 = 분산 = `\(\lambda\)` + 시간(혹은 공간) 축에서 사건이 드물고 독립적으로 발생 + 평균 발생률(강도) `\(\lambda\)` (단위당 평균 사건수) .pull-left[ ### 포아송분포의 특성 기대값: `\(\mathbb{E}[Y]=\lambda\)` 분산: `\(\mathrm{Var}(Y)=\lambda\)` (평균=분산) ] .pull-right[ 누적분포: `\(\Pr(Y\le y)=\displaystyle\sum_{i=0}^{y}e^{-\lambda}\frac{\lambda^{i}}{i!}\)` ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 포아송분포(Poisson distribution) <!-- --> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 포아송분포(Poisson distribution) .panelset[ .panel[.panel-name[R-code: Parameters] .pull-left[ ``` r lambda <- 3 # PMF/CDF/분위/난수 dpois(4, lambda) # P(Y=4) ``` ``` ## [1] 0.1680314 ``` ``` r ppois(4, lambda) # P(Y<=4) ``` ``` ## [1] 0.8152632 ``` ] .pull-right[ ``` r qpois(.95, lambda) # 95% 분위 ``` ``` ## [1] 6 ``` ``` r rpois(5, lambda) # 난수 5개 ``` ``` ## [1] 3 4 5 2 5 ``` ``` r # 포아송 과정의 시간확장: 길이 t 구간의 평균은 lambda*t t <- 2; dpois(4, lambda*t) # 길이 2에서 4건일 확률 ``` ``` ## [1] 0.1338526 ``` ] ] .panel[.panel-name[R-code: Plot] ``` r n <- 200; p <- 0.02; lambda <- n*p y <- 0:10 bin <- dbinom(y, n, p) pois <- dpois(y, lambda) tibble(y, bin, pois) |> pivot_longer(-y, names_to="type", values_to="pr") |> ggplot(aes(y, pr, color=type)) + geom_point() + geom_line() + labs(title="Binomial(n=200,p=.02) vs Poisson(lambda=4)") ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 음이항분포(Negative binomial distribution) `\(n\)` 번째 시도에서 `\(k\)` 번째에 성공할 확률 + 각 시행은 **독립**이고, 결과는 **성공(1)** 또는 **실패(0)** + 각 시행의 성공확률은 **항상 `\(p\)` **(고정) + ** `\(N\)` = `\(k\)`번째 성공이 처음 나오는 시점(시도 횟수) ** `\(\rightarrow\)` 지원: `\(n = k, k+1, \dots\)` + 동치표현: ** `\(X = N-k\)` = `\(k\)` 번째 성공 전까지 실패 횟수 ** `\(\rightarrow\)` 지원: `\(x=0,1,2,\dots\)` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 음이항분포(Negative binomial distribution) ### 이항분포와의 관계 **이항분포**는 **정해진 시도 `\(n\)`에서 성공이 몇 번?**을 묻는 반면, **음이항분포**는 **성공을 k번 얻을 때까지 몇 번 시도?**를 묻는 분포 --- class: middle, center # Part II. 모집단과 표본(Population and Sample) --- background-image: url("sample-pop.png") background-size: 650px background-position: 90% 65% # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본 .left-column[ 우리는 모집단에 대한 이론적 기대를 가진다. "모집단은 ~할거야!" 모집단을 직접 관측/획득할 수 없으므로, 표본을 바탕으로 모집단에 대한 추론을 수행 "표본이 ~하니, 모집단도 ~할거야!" 그러나 이러한 추론은 단정적(deterministic)이지 않음! ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본 ### 표본: 모집단의 무작위 부분집합 표본 통계량의 **표집분포**가 추론의 핵심 ### 중심극한정리(Central Limit Theorem, CLT) 표본평균의 분포 `\(\approx\)` 정규분포, `\(SE=\sigma/\sqrt{n}\)` 무작위 표집이 이상적 (편의표집은 위의 가정이 깨질 수 있음.) --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본 ### 중심극한정리(Central Limit Theorem, CLT) .panelset[ .panel[.panel-name[R-code] ``` r set.seed(2025) N <- 1e6 pop <- tibble(x = rexp(N, rate = 1/5)) # 평균=5, 한쪽 꼬리 clt_means <- function(n, B=5000){ replicate(B, mean(sample(pop$x, n))) } m_small <- clt_means(5) m_mid <- clt_means(30) m_big <- clt_means(200) ``` ] .panel[.panel-name[R-code: Plot] ``` r p1 <- tibble(m=m_small) |> ggplot(aes(m)) + geom_histogram(bins=40) + labs(title="n=5") p2 <- tibble(m=m_mid) |> ggplot(aes(m)) + geom_histogram(bins=40) + labs(title="n=30") p3 <- tibble(m=m_big) |> ggplot(aes(m)) + geom_histogram(bins=40) + labs(title="n=200") (p1 + p2) / p3 + plot_annotation( title="비정규 모집단에서도 표본평균은 정규형에 수렴(CLT)") ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: CLT 미니 시뮬레이션 .panelset[ .panel[.panel-name[R-code] ``` r one_sample <- tibble(x = sample(1:6, size = 600, replace = TRUE)) mean(one_sample$x) ``` ``` ## [1] 3.388333 ``` ``` r rep_means <- replicate(2000, mean(sample(1:6, size = 600, replace = TRUE))) ``` ] .panel[.panel-name[R-code: Plot] ``` r tibble(m = rep_means) %>% ggplot(aes(m)) + geom_histogram(bins = 40) + labs(title = "표본평균의 경험적 표집분포", x = "sample mean", y = "count") + labs(title="Binomial(n=200,p=.02) vs Poisson(lambda=4)") ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표집변동성 그릇(모집단)에서 숟가락(n)으로 공을 퍼서 `\(\hat{p}\)` 추정 여러 번 반복하면 `\(\hat{p}\)` 가 매번 달라짐 `\(\rightarrow\)` 표집변동성 .panelset[ .panel[.panel-name[R-code-1] ``` r set.seed(2025); N <- 100000 p_true <- 0.34 pop <- tibble(ball = rbinom(N, 1, p_true)); n <- 50 one_scoop <- sample(pop$ball, size = n, replace = TRUE) mean(one_scoop) ``` ``` ## [1] 0.28 ``` ] .panel[.panel-name[R-code-2] ``` r B <- 33 props <- replicate(B, mean(sample(pop$ball, size = n, replace = TRUE))) ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본 크기에 따른 표집분포 폭 비교 .panelset[ .panel[.panel-name[R-code] ``` r compare_n <- function(n, B = 1000, p = 0.34){ replicate(B, mean(rbinom(n, 1, p))) } set.seed(2025) d <- list( n_50 = compare_n(50), n_200 = compare_n(200), n_800 = compare_n(800) ) |> enframe(name = "group", value = "props") |> unnest(props) ``` ] .panel[.panel-name[Plot] <!-- --> ] ] --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본을 통한 모집단 추론 맛보기 모집단을 우리가 모른다고 가정 + 각각의 변수들로부터 50개의 관측치들을 무작위 표본을 추출 + 이 무작위 표본을 5,000번 반복하여 뽑고 그렇게 뽑힌 5,000개의 무작위 표본들의 평균 분포를 그래프로 시각화 + 사망률에 대한 무작위 표본 1개를 뽑아보고, 그 표본 이름은 `samp1.mort` 라고 지정 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본을 통한 모집단 추론 맛보기 ``` r library(WDI) WDI.data <- WDI(country = "all", indicator = c("SH.DYN.NMRT","DC.DAC.USAL.CD", "SH.VAC.TTNS.ZS", "SP.URB.TOTL.IN.ZS", "NE.TRD.GNFS.ZS"), start = 1990, end = 2005, extra = FALSE, cache = NULL) # 사망률 samp1.mort <- sample(WDI.data$SH.DYN.NMRT, 50) # 표본 평균과 모집단 평균을 비교 mean(samp1.mort, na.rm = TRUE) # 사망률 표본의 평균 ``` ``` ## [1] 24.73767 ``` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본을 통한 모집단 추론 맛보기 ``` r ## na.rm 옵션은 표본에 결측치가 있을 수 있을 때 중요하게 사용 ## 결측치 빼고 평균을 구하란 뜻 mean(WDI.data$SH.DYN.NMRT, na.rm = TRUE) # 사망률 모집단의 평균 ``` ``` ## [1] 22.51515 ``` 5,000개의 표본들을 루프 (loop)를 가지고 뽑아서 그 각각의 평균들을 벡터로 저장 + 이를 위해서 먼저 빈깡통, 빈벡터 (Blank vector)를 만듦. ``` r # 빈 벡터 만들기 sample_means50.mort <- rep(NA, 5000) # 루프로 5,000개의 표본평균을 구해 저장하기 for(i in 1:5000) { samp <- sample(WDI.data$SH.DYN.NMRT, 50) sample_means50.mort[i] <- mean(samp, na.rm = TRUE)} ``` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본을 통한 모집단 추론 맛보기 여기에서 루프의 의미는 원래 우리가 가지고 있던 WDI의 사망률 지표에서 50개씩 꺼낸 표본을 1개라고 할 때, 이와 같은 과정을 5,000번 반복하라는 것 + 그러면 5,000개의 표본을 얻게 되고, 이 중 당연히 결측치도 있을 수 있으므로 `na.rm()` 옵션으로 결측치를 제외하여 평균을 구하라고 코딩하는 것 + 평균을 구할 때, 요소 중에 `NA`(결측치)가 있으면 전체 평균 값도 `NA`로 계산되므로 이걸 처리 + 이렇게 구한 5,000개의 표본들의 평균들이 어떻게 분포되어 있는지 확인 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 표본을 통한 모집단 추론 맛보기 ``` r mean(sample_means50.mort, na.rm = TRUE) ``` ``` ## [1] 22.5144 ``` ``` r mean(WDI.data$SH.DYN.NMRT, na.rm = TRUE) ``` ``` ## [1] 22.51515 ``` --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 다르게 생각해보기 ### 비모수 부트스트래핑 우리의 표본은 모집단으로부터 무작위 추출된 것 따라서 만약 표본으로부터 무작위 *복원(replacement)* 추출을 한다면, 그 결과는 모집단으로부터 무작위 추출한 또 다른 표본이라고 할 수 있을 것 즉, 표본으로부터 무작위 복원추출을 한다는 것은 모집단으로부터 표본을 추출하는 행위를 것을 모방하는 것 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 다르게 생각해보기 ### 비모수 부트스트래핑 비모수 부트스트래핑을 통해서 + 표집분포를 얻을 수 있으며, + 표집분포에 대한 함수도 어떤 것이든 얻을 수 있음. + `\(g = 1, \dots, G\)`번 표본재추출을 한다고 할 때, 총 G개의 결과값을 저장하고 그 결과를 요약해서 보여줄 수 있게 됨: 평균, 표준편차, 히스토그램, 신뢰구간 등 --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide1.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide2.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide3.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide4.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide5.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide6.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide7.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide8.PNG" width="75%" style="display: block; margin: auto;" /> --- # 확률과 통계적 추론 I: 확률, 모집단과 표본 ## 모집단과 표본: 비모수 부트스트래핑 <img src="fig/w10_/Slide9.PNG" width="75%" style="display: block; margin: auto;" /> --- class: middle, center # Part III. R을 이용한 시각화 실습 및 질의응답 다음 강의에는 정규분포와 신뢰구간에 대해 살펴볼 것 --- class: center, middle background-image: url("knu_wide.png") background-size: 300px background-position: 11% 15% # 감사합니다! ## 궁금한 것이 있으면 언제든 연락하세요. 강사 연락처 | 연락처 | 박상훈 | | :-----------------------------------------------: | :--------------------------------------------------: | | <svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"></path></svg> | [sh.park.poli@gmail.com](sh.park.poli@gmail.com) | | <svg viewBox="0 0 576 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"></path></svg> | [sanghoon-park.com/](https://www.sanghoon-park.com/) | | <svg viewBox="0 0 448 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"></path></svg> | 영상바이오관 405 |