분석(공분산, 상관분석, 회귀분석)


공분산

  • 2개의 확률변수의 상관정도 - cov(X, Y)
    • \[\sigma_{XY} = \frac{1}{N}\displaystyle\sum^N_{i=1}(x_i-\mu_x)(y_i-\mu_y) : 모집단\]
    • \[S_{xy} = \frac{1}{n-1}\displaystyle\sum^n_{i = 1}(x_i-\bar x)(y_i - \bar y) : 표본집단\]
    • \[cov(X, Y) = E[(X - E[X])(Y-E[Y])] : 확률변수\]
      • \[cov(X, Y) = E[XY] - E[X]E[Y]\]

상관계수

  • 두 변수간에 어떤 선형적 또는 비선형적 관계 - cor(X, Y)
    • 공분산을 정규화한 값 - 각 표준편차로 나눠줌
    • \[\rho_{XY} = \frac{\sigma_{XY}}{\sigma_X \sigma_Y},\ r_{xy} = \frac{S_{xy}}{S_xS_y}\]
    • \[|cor(X, Y)| \leq 1\]

alt text

예제

  • 아래 자료를 활용하여 공분산과 상관계수를 구하여라
X 1 2 3 4
Y 2 5 6 7
X = c(1, 2, 3, 4)
Y = c(2, 5, 6, 7)
plot(X, Y)
cov(X, Y)
cor(X, Y)

상관분석

  • 변수 간의 관계의 밀접한 정도(상관관계)를 분석
  • T분포 사용 : \(t = r\sqrt\frac{n-2}{1-r^2}\)
  • 귀무가설 - 두 변수 간에는 상관(선형적인 관계)이 없다 대립가설 - 두 변수 간에는 상관(선형적인 관계)이 있다

예제

plot(attitude)
cov(attitude)
cor(attitude)
cor.test(attitude$rating, attitude$complaints)

회귀분석

  • 독립변수의 변화에 따른 종속변수의 변화를 분석
    • 단순회귀분석 : 한개의 독립변수와 한개의 종속변수 간의 관계를 직선으로 표현
    • 다중회귀분석 : 2개 이상의 독립변수와 한개의 종속변수 간의 관계를 직선으로 표현

단순회귀분석

  • \[직선관계를 고려하여 y = \beta_0 + \beta_1x 형태 수식으로 모델링\]
    • \[\beta_0, \beta_1를 찾는것이 1차 목표로 잔차 값을 활용하여 구함\]
    • 목표는 잔차의 제곰의 합을 최소화 시킴
    • 최소제곱법을 사용

      잔차

  • 데이터 값과 추정치의 차이
  • 정규분포를 따르며 분산이 일정하고 특별한 추세를 따르지 않음
    • \(y = \beta^*_0 + \beta^*_1x + \epsilon, \epsilon \sim iid N(0, \sigma^2) [회귀모형VS회귀식]\)

      수식화

  • \[데이터(x_i, y_i) for i = 1, ..., N\]
  • 추정치 \(\hat y_i = \beta_0 + \beta_1x_i\) for i = 1, …, N
  • \(\min_{\beta_0, \beta_1}\displaystyle\sum^N_{i=1}(y_i - \hat y_i)^2\)

    결정계수

  • R^2 또는 R-Sq 등으로 표기
  • 모형의 설명력을 평가해준다. 추정한 모형이 주어진 자료에 적합한 정도를 재는 척도
  • 종속변인과 독립변인 사이에 상관관계가 높을수록 1에 가까워진다. 즉, 값이 클수록 유용성이 높다
  • \(y_i - \bar y = (y_i - \hat y_i) + (\hat y_i - \bar y)\) 편차 = 설명 불가 편차 + 설명 가능 편차
  • 각 항의 제곱의 합들을 고려, SST = SSE + SSR
  • SSE가 작고 SSR이 클수록 회귀식의 정도가 좋다
  • \(R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}\)

    가설검정

  • 가설
    • 귀무가설 : 회귀식의 회귀계수는 0이다
    • 대립가설 : 회귀식의 획귀계수는 0이 아니다
  • 검정통계량
    • \[t = \frac{b_1}{S_{b_1}}\ where\ S_{b_1} = \frac{\sqrt {SSE}}{\sqrt{n-2}\sqrt{\displaystyle\sum(x_i - \bar x)^2}}\]

예제 1-1

str(cars)
plot(dist ~ speed, data = cars, col = 'navy')
cor.test(cars$speed, cars$dist)

예제 1-2

out = lm(dist ~ speed, data = cars)
summary(out)
plot(dist ~ speed, data = cars, col = 'navy')
abline(out, col = 'black')

예제 1-3

yhat = out$coefficients[1] + out$coefficients[2]*cars$speed
fitted(out)
cars$dist - yhat
resid(out)
plot(cars$speed, resid(out))
abline(h = 0)

예제 2

x = matrix(c(5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 19, 18, 20, 24, 26, 30, 32, 31, 34), nrow = 10, ncol = 2)
x
colnames(x) = c('advt', 'sales')
x = data.frame(x)
plot(x)
fit <- lm(sales ~ advt, data = x)
summary(fit)
anova(fit)
plot(x$advt, fit$residuals)
abline(h = 0)