회귀분석 : 개요 (1)
단순선형회귀
통계에서 가장 기본적인 모형이라고 할 수 있음.
Y = \beta_0 + \beta_1 x + \epsilon
- Y : outcome variable.
- 항상 단일변수 / 연속형
- x : covariate, predictor
- 연속형 / 이산형 모두 해당
- x가 이산형이면 범주형 회귀분석이 됨
- \epsilon : 확률분포. 오차를 설명한다.
그래서 회귀모형이 뭔데?
-
covariates와 outcome 간의 관계를 이야기하는 수리적 모형
-
좀 더 자세히 봤을 때, covariate가 주어질 때 outcome의 평균을 추정하는 모형
- 표본을 가지고 평균을 추정하는 것이 중요한 목표라고 할 수 있다.
- 그 표본이 바로 covariate라고 할 수 있음.
-
제일 기초적인 모형은 다음과 같을 수 있다고 할 수 있음.
ex. 딸의 키 = f(엄마의 키) + 오차항
D = f(M) + \epsilon
모형을 찾는 방법
f(): 이 수업에서는 직선의 방정식으로 가정.- 그래서 생각해 본다면…
Y = \beta_0 + \beta_1x + \epsilon \\
Y = \beta_0 + \beta_1x_1 + \beta_2(x_2)^2 + \beta_3x_3 + \epsilon
- 둘 다 선형임. parameter인 베타가 기준이기 때문.
- 더 좋은 모형은? 모형을 설계 후, 진단해 봐야 안다.
오차항의 역할
- 베타와 x가 아무리 많아도 실제 Y와 추정한 Y는 오차가 날 수 밖에 없다.
- 통계에서는 이를 오차항이 담당한다고 본다.
- 베타가 늘어나면 오차항의 역할이 줄어든다고 생각할 수 있다.
회귀분석 : 개요 (2)
회귀분석의 목적
- prediction (예측), association (연상)
- 예측은 솔직히 머신러닝(=non-linear regression)이 더 잘해준다.
- 그러나 association은 linear model이 더 잘 해준다.
- input이 output에 어떠한 효과를 주는지 잘 검증할 수 있다.
- 이것이 머신러닝의 단점이라고 할 수도 있다.
- 복잡한 모형일수록 association이 잘 안 된다.
통계적 추론과 회귀
ex. 혈압약이 헐압에 미치는 영향
- 전후의 차이를 알 수 있는 방법 = paired t-test
- Before Blood(BP_b) vs After Blood(BP_a)
D = BP_b - BP_a \\[10pt]
H_0 : \mu_D = 0 \\
H_1 : \mu_D > 0
여기서는 단측검정을 놨지만, 가끔은 양측검정을 하기도 한다. (단측 vs 양측 : 단측검정이 검정력이 더 높다.)
통계적 추론의 절차
- 영가설과 대립가설을 설정
- 유의수준을 설정한다. (유의수준 : Pr(Reject~H_0 | H_0) = \alpha)
- 검정통계량을 설정 (예시 : paired t-test)
T = \frac{\bar{d} - \mu_0}{S_d}
- S_d : 표본의 표준편차. 일종의 Scale Parameter
- \bar{d} : 표본의 평균. 전수조사를 할 수 없기에 쓰는 값.
- CLT를 적용할 수 있다. n \to \inf, \sqrt{n}(\bar{X} - \mu) \to N(0, \sigma^2)
- 검정통계량 T의 분포(= t 분포)를 통해 정확성을 따진다.
- 이때의 분포는 귀무가설 하에서의 분포.
- 이후 유의수준 alpha와 p-value를 비교
- p-value가 alpha보다 작으면 ”reject H_0”
- p-value가 alpha보다 크면 ”failed to reject H_0”
- 결론을 내린다.
- 통계적으로 유의미한 차이가 있다 / 없다.
추정과 검정 (1)
- 점 추정은 부정확하다. 따라서 보통 구간추정을 쓴다.
\bar{X} \pm q~\frac{S_x}{\sqrt{n}}
- \pm 뒤에 있는 식은 사실 통계적 검정의 그 부분과 같다.
- 구간을 구할 때는 대립가설 H_1의 예측치가 들어가면 안된다.
- q : 분위수 값.
- 같은 자료를 가지고 검정했을 때와 구간추정 했을 때의 값이 같아야 한다.
95% CI for \mu_x (166, 172)
- 같은 샘플 사이즈로 100번 반복해서 실험했다고 가정.
- 이때 166~172로 나오는 갯수 : 평균적으로 95%
회귀분석 : 개요 (3)
추정과 검정 (2)
- 가설 세우기
H_0 : \mu_x - \mu_z = 0
- \mu_x : population average height of female students
- \mu_z : population average height of male students
- \alpha = 0.05
- 검정통계량 설정
T = \frac{(\bar{X} - \bar{Z}) -
(\mu_x - \mu_z)}
{SE(\bar{X} - \bar{Z})}
\sim t(n_x + n_z - 2)
T분포를 유도하는 방법은 다음과 같다.
결론적으로 보면 two-sample t-test와 회귀모형에서의 기울기 추정은 같다.
이 과정은 추후에 다시 등장.
R언어 복습
회귀분석에서 유용한 R언어 파트.
R언어의 객체 → 크게 데이터와 함수로 나눔.
- 데이터
- numeric, character, boolean
- 하나의 타입만 : vector, matrix, array (각각 1d, 2d, 3d). 기준: element
- 여러 타입도 허용 : list, dataframe (제일 많이 쓰임). 기준: component
- dataframe : list + matrix (column-wise로 타입을 지정 가능)
- 함수
r
lm()
X1 = 3
Y1 = 4
c(X1, Y1)
# rep 함수
print(rep(1,4))
c(rep(1,4), rep(2,3))
# seq 함수
seq(0, 10, length=11) # 0 ~ 11 사이를 11개로 다 채운다.
seq(0, 10, by=2) # 0 ~ 10 사이를 2씩 띄우면서 채운다.
r
# ordering
x = c(4,6,2,9)
sort(x) # 정렬하기
order(x) # 순서 확인
r
# indexing
r
# ploting