본문 바로가기

배운 책들 정리/만만한 통계 : R 활용

0221 만만한 통계 R - 선형회귀, 단순회귀, 다중회귀 (18)

CP18 선형회귀

1) 선형회귀 

단순회귀분석 (simple regression) : 독립변수가 하나, 종속변수는 하나 

다중회귀분석 (multiple regression) : 독립변수가 2개 이상, 종속변수는 하나

- 회귀분석 : 오차를 가장 적게 만들어주는 선을 찾는 것을 의미함. (오차가 줄어야 예측하기가 쉬우니)

- 독립변수 = X변수

- 종속변수 = Y변수

 

최적선 : 주어진 데이터 셋의 데이터에 가장 잘 맞는 라인 

회귀선 : 데이터 세트에서 두 변수 간의 관계를 추정하는데 사용되는 직선 (독립 변수 값을 기반으로 종속 변수 값을 예측)

예측 오차 : 종속 변수의 예측 값과 데이터 세트에서 실제 관찰된 값 간의 차이

 

2) 절편과 기울기

기울기 : X편차*Y편차합 / X편차제곱합 (X분산이 들어가는 이유는 Y가 얼마나 변하는지 보기 위함)

절편  : Y = bX + a  -> a = y - bx

  • y는 예측하려는 종속 변수(또는 응답 변수)입니다. (y평균)
  • x는 y를 예측하는 데 사용하는 독립 변수(또는 예측 변수)입니다. (x평균)
  • a은 절편(x가 0일 때 y의 값)이고,
  • b은 기울기(x의 모든 단위 변화에 대한 y의 변화)입니다.

3) 회귀계수의 t검정

검정통계량 t 값 : 기울기 / 표준오차

대립가설 : 기울기 != 0

귀무가설 : 기울기 = 0

기울기가 높을 수록 예측치가 높음.

계산식 : sqrt ((yhat 편차제곱합 / 자유도) / x편차제곱합)

자유도 : n-k-1

n : 표본 크기 

k : 독립 변수의 수(예측 변수)

 

4) 실습

# 단순선형회귀 simple regression
# 독립변수(x변수) 1개, 종속변수(y변수) 1개
x <- c(3.5,2.5,4.0,3.8,2.8,1.9,3.2,3.7,2.7,3.3)
y <- c(3.3,2.2,3.5,2.7,3.5,2.0,3.1,3.4,1.9,3.7)
# 평균
x_bar <- mean(x)
y_bar <- mean(y)
x_bar;y_bar
# 편차
# x편차 = x값 - x평균
x_dev <- x - x_bar
# y편차 = y값 - y평균
y_dev <- y - y_bar
# 기울기 = x편차*y편차 합/x편차 제곱합
b <- sum(x_dev*y_dev)/sum(x_dev^2)
b
# 절편 = y평균 - (기울기 * x평균)
a <- y_bar - b*x_bar
a
# 예측치 y hat
x = 2
y_hat <- b*x+a
y_hat
# 회귀계수(=기울기)에 대한 t검정
# 검정통계량 t값 = 기울기/표준오차
# 분자 = 기울기
b
# 분모 = 표준오차 = 제곱근((y hat 편차제곱합/자유도)/x편차제곱합)

# y hat 편차
# y hat = y 예측치 계산
y_hat <- b*x+a
y_hat
y_hat_dev <- y-y_hat
y_hat_dev
# y hat 편차제곱합
sum(y_hat_dev^2)
자유도 = n-k-1 (k:독립변수의 계수)
k <- 1
n <- length(x)
df <- n-k-1
k;n;df
# 분자 = (y hat 편차제곱합/자유도)
(sum(y_hat_dev^2)/df)
# 분모 = x편차제곱합
sum(x_dev^2)
# 제곱근(분자/분모)
se <- sqrt((sum(y_hat_dev^2)/df)/sum(x_dev^2))
se
# 검정통계량 t값 = 기울기 /표준오차
t <- b/se
t <- abs(t)
t
# 임계값, 유의수준, 자유도, 양측검정
alpha <- 0.05
df
cv <- qt(1-alpha/2,df)
cv
cv<t
True = 오른쪽 = 기각 = 귀무가설 기각 = 연구가설 채택
# 유의확률
1 - pt(t, df)
alpha > p

5) 모형적합성 평가 : 결정계수 (모형 적합도)

* 결정계수 (총 변량)

- 설명력을 의미함

- 모형 설명된 변량 + 그렇지 못한 남은 변량

 

6) 결정계수의 계산

분산분석에서 BETWEEN -> 결정계수 ERROR

분산분석에서 WITHIN -> 결정계수 REGRESSION

SSR/SST = 1- SSE/SST

결정계수 값이 클 수록 좋은 것.

 

7) 결정계수 계산 실습

# 결정계수 = SSR/SST
# SSE
sse <-  sum(y_hat_dev^2)
# SSR
# 회귀편차 = y hat - y평균
(y_hat-y_bar)
# 회귀편차제곱합 SSR
ssr <- sum((y_hat-y_bar)^2)
# 결정계수 = ssr/sst
ssr/(sse+ssr)
# 46% 설명할 수 있다.

결정계수 0.46 확인

8) 조정 결정계수

- 수치가 높을 수록 모델의 적합성을 나타냄 (여러 모델의 적합도를 비교하는데 사용)

 

9) F검정의 절차

- 결론 : 해당 모델이 적합하다

 

10) 유의성 검정

p -> 1-pf(f,k,df)

alpha>p

 

11) 모형적합성 F검정 & 유의성 검정 실습

# 모형 적합성 F검정
# 검정통계량 F 값 = MSR/MSE
# MSR = SSR/K
msr <- ssr/k
# MSE = SSE/(n-k-1)
mse <- sse/df
f <- msr/mse
f
# 임계값, 유의수준, 자유도
k;alpha;df
cv <- qf(1-alpha,k,df)
cv
cv<f
# 연구가설 채택 = 회귀계수가 적어도 하나는 0이 아니다 = 유의하다
# 유의확률
p <- 1-pf(f,k,df)
p
alpha>p
sr <- lm(y~x)
summary(sr)

 

12) 예측 변수가 많으면 더 정확할까?

중요한 예측 변수가 많을 수록 정확도가 증가하지만 반대로

중요하지 않은 예측 변수면 정확도가 감소한다.

 

13) 다중회귀분석의 기본 개념

다중회귀분석 : 종속 변수 <-> 여러 독립 변수의 관계성

 

14) 다중회귀분석 실습

# 실습
data <- read.csv("./Syntax(R)/18/ch18ds1.csv")
head(data)
str(data)
단순선형회귀모델, lm(종속변수~독립변수)
sr <- lm(Injuries~Training, data = data)
summary(sr)
# 산점도+회귀선
plot(Injuries~Training, data = data)
abline(sr)

# 다중선형회귀모델
mr <- lm(Injuries~Training + Trainer, data = data)
summary(mr)

회귀분석 (절편, 기울기, r제곱 = 임계값, F검정통계값)
모델 비교

CP18 보건의료문제

1) 단순회귀모델

* 잔차의 독립성 검성 (d-w)

* 회귀분석 결과 표 확인

 

잔차의 독립성 검정 : 회귀모형의 오차나 잔차가 서로 독립적인지 여부를 확인하는 것

잔차 : 변수의 예측 값과 실제 값 간의 차이

잔차의 독립성 검정 쓰는 이유 : 잔차가 독립적이지 않다면 포착하지 못한 데이터의 구조나 패턴이 있음을 의미하기 때문에 잔차독립성을 검정한다

 

2) 다중 회귀 모델

* 잔차의 독립성 검성 (d-w)

* 회귀분석 결과 표 확인

 

3) 다중 회귀 분석 결과표 작성

B / S.E. / b(베타) / t / p / vif

 

* 변수 정리

# 분모 = 표준오차 = 제곱근((y hat 편차제곱합/자유도)/x편차제곱합)

msr = (y hat 편차제곱합/자유도) 

 

* 함수 정리

qf : 임계값 함수 (자유도 2개 필요) // 임계값 = 추계값

예시) qf(1-alpha,k,df)

pf : 누적 분포 함수 계산 (1-pf를 해서 f통계값을 구하기 위해)

예시) pf(f,k,df)

f는 f 통계 값

k는 모델의 예측 변수 수

df는 모델의 자유도

R-squared : 결정계수

adjusted : 조정

estimate 절편

training*estimate 회귀계수

 

검정 통계량 -> 임계값

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST