통계/회귀분석 - 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
반응형