통계/회귀분석 - R 프로그래밍

회귀분석 - 중회귀모형

BlueNoa 2021. 6. 24. 02:39
728x90
반응형

· 중회귀모형

설명변수(x) 또는 독립변수가 두 개 이상인 회귀를 중회귀라 한다.

한 화면에 가능한 쌍들의 산점도를 모두 그린 그림을 산점도 행렬이라고 한다.

 

R패키지로는 lattice와 rgl을 사용할 것이다.

 

· 독립변수가 k 개인 중회귀모형

설명변수의 개수가 k(설명변수명 : x1,..., xk)인 회귀모형은 아래와 같이 표현할 수 있다.(단, xi는 i번째 설명변수의 벡터를 의미한다.)

 

 

 

※ 역행렬

행렬 A가 n by n인 정방 행렬이고 행렬식이 D(A) ≠ 0이면, 행렬 A의 역행렬인 A ** -1가 존재한다.

 

 

· 행렬에 대한 성질들

  • 행렬 X' * X에 대한 성질

 

  • 행렬의 미분(Vector 미분)

 

  • 최소 제곱법(최소 자승법)에 의한 회귀계수 구하기

여기서 x'xb = x'y를 정규 방정식이라고 한다.

 

 

  • R에서 계산해보기
# 행렬의 곱 : %*%
# 행렬 x의 전치행렬 : t(x)
# 행렬 x의 역행렬 : solve(x)

# R에서 중회귀분석의 회귀계수 구해보기
x1 = c(40, 50, 30, 60, 70, 60, 30, 60, 20, 80) # 홍보비용
x2 = c(15, 20, 14, 22, 30, 24, 16, 20, 14, 32) # 직원수
y = c(87, 108, 69, 135, 148, 132, 73, 128, 50, 170) # 예금유치액
df = data.frame(x1, x2, y)

n = length(y) # 데이터의 길이
one = rep(1, n) # 1로 구성된 n개의 design행렬
x = cbind(one, x1, x2) # 디자인 행렬을 포함한 데이터
txx = t(x) %*% x # x'x
txy = t(x) %*% y # x'y
ixx = solve(txx) # (x'x)의 역행렬
b = ixx %*% txy
b
         [,1]
one 9.2304476
x1  1.9548082
x2  0.1463355

 

추가적으로 회귀계수 추정량이 b라고 할 경우, 적합 회귀식(평균 반응식)과 잔차는 R에서 다음과 같이 표현가능하다.

yhat(평균 반응량 vector) : yhat  = xb 

잔차 vector : e = y - yhat = y - xb

 

yhat = x %*% b
yhat

e = y - yhat
e
yhat의 결과
           [,1]
 [1,]  89.61781
 [2,] 109.89757
 [3,]  69.92339
 [4,] 129.73832
 [5,] 150.45708
 [6,] 130.03099
 [7,]  70.21606
 [8,] 129.44565
 [9,]  50.37531
[10,] 170.29784

e의 결과
            [,1]
 [1,] -2.6178062
 [2,] -1.8975652
 [3,] -0.9233891
 [4,]  5.2616822
 [5,] -2.4570831
 [6,]  1.9690113
 [7,]  2.7839400
 [8,] -1.4456468
 [9,] -0.3753074
[10,] -0.2978357

 

 

 

728x90
반응형