59doit

[ R ] 회귀분석 #1 단순회귀분석 본문

통계기반 데이터분석

[ R ] 회귀분석 #1 단순회귀분석

yul_S2 2022. 11. 27. 09:52
반응형

회귀분석

특정 변수(독립변수)가 다른 변수(종속변수)에 어떠한 영향을 미치는 가를 분석하는 방법 인과관계가 있는지를 분석하는 방법

인과관계: 변수 A가 변수 B의 값을 변하게 하는 원인이 되는 관계. 이때 변수 A를 독립변수, 변수 B를 종속변수로 지칭

 

한 변수의 값을 가지고 다른 변수의 값을 예측해 주는 분석방법

 

상관관계 분석 vs. 회귀분석 차이점

1) 상관관계 분석: 변수 간의 관련성 분석

2) 회귀분석: 변수 간의 인과관계 분석

 

회귀분석의 특징

1) 가장 강력하고 사용범위가 넓은 분석 방법

2) 독립변수가 종속변수에 영향을 미치는 변수를 규명하고, 이들 변수에 의해서 회귀방정식(Y=a+bX where a: 상수, b: 회귀계수, X: 독립변수, Y: 종속변수)을 도출하여 회귀선을 추정

3) 회귀계수는 단위시간에 따라 변하는 양(기울기)이며, 회귀선을 추정함에 있어 최소자승법을 이용

4) 독립변수와 종속변수가 모두 등간척도 또는 비율척도로 구성되어 있어야 한다.

 

잔차(오차): 관측치와 예측치의 차

최소제곱법: 잔차들의 제곱의 합이 최소가 되도록 정하는 방법

 

(1) 회귀방정식의 이해

회귀선(Regression Line):

1) 한 변수의 증감이 다른 변수의 단위증가에 대해 어느 정도인가를 나타내는 선

2) 두 집단의 분포에서 잔차(각 값들의 편차)들의 제곱의 합을 최소화시키는(최소자승법) 회귀방정식에 의해 만들어진다.

3) 두 변수 간의 예측 관계에 있어서 한 변수에 의해서 예측되는 다른 변수의 예측치들이 그 변수의 평균치로 회귀하는 경향이 있다고 하여 갈튼(Galton)에 의해서 명명되었다.

 

 

 

(2) 단순 회귀분석

 

 

독립변수와 종속변수가 각각 한 개 일 때 독립변수가 종속변수에 미치는 인과관계를 분석하고자 할 때 사용.

회귀분석 수행 시 기본 가정이 충족되어야 사용 가능

 

회귀분석의 기본 가정:

선형성: 독립변수와 종속변수가 선형적. 회귀선 확인

잔차 정규성: 잔차(종속변수의 관측값과 회귀모델의 예측값 간의 차이)의 정규성. 정규성 검정

잔차 독립성: 잔차들은 서로 독립적. 더빈-왓슨 값 확인

잔차 등분산성: 잔차들의 분산이 일정. 표준잔차와 표준예측치 도표

다중 공선성: 독립변수 간의 강한 상관관계로 인한 문제 발생 여부. 분산팽창요인(VIF) 확인

 

회귀분석 절차

1단계: 회귀분석의 기본 가정 충족 여부 확인

2단계: 분산분석의 F값으로 회귀모형의 유의성 여부 판단

3단계: 독립변수와 종속변수 간의 상관관계와 회귀모형의 설명력 확인

4단계: 가설의 채택 여부 결정

5단계: 회귀방정식을 적용하여 회귀식을 수립하고 결과 해석

 

귀무가설: 제품적절성이 제품만족도에 영향을 미친하고 볼 수 없다.

대립가설: 제품적절성이 제품만족도에 영향을 미친다고 볼 수 있다.

 

 

 

 

ex)  단순 선형 회귀분석 수행

 

product.csv
0.00MB

 

 

#1 데이터 가져오기

product <- read.csv("C:/product.csv",header=TRUE)
str(product)

 

#2 독립변수와 종속변수 생성

y=product$제품_만족도
x=product$제품_적절성
df <- data.frame(x,y)

단순선형회귀분석은 lm()함수 이용 형식: lm(formula = Y ~ X, data)
X: 독립변수
Y: 종속변수
data: 데이터프레임

 

#3 단순 선형회귀 모델 생성

result.lm <- lm(formula = y~x, data=df)

 

#4 회귀분석의 절편과 기울기

result.lm
# Call:
#   lm(formula = y ~ x, data = df)

# Coefficients:
#   (Intercept)            x  
#     0.7789       0.7393

 

#5 모델의 적합값과 잔차 보기

names(result.lm)
# [1] "coefficients"  "residuals"     "effects"       "rank"         
# [5] "fitted.values" "assign"        "qr"            "df.residual"  
# [9] "xlevels"       "call"          "terms"         "model"   

 

#5-1 적합값 보기

fitted.values(result.lm)[1:2]
#             1              2 
# 3.735963 2.996687 

fitted.values: 모델이 예측한 적합값

 

 

#5-2 관측값 보기

head(df,1)
#    x y
# 1 4 3

 

 

 

#5-3 회귀방정식을 적용하여 모델의 적합값 계산

Y=0.7789+0.7393*4
Y
# 3.7361

 

 

#5-4 잔차(오차) 계산

3-3.735963
# -0.735963

residuals: 모델의 잔차

 

#5-5 모델의 잔차 보기

residuals(result.lm)[1:2]
#                 1                 2 
# -0.7359630 -0.9966869 

 

 

#5-6 모델의 잔차와 회귀방정식에 의한 적합값으로부터 관측값 계산

-0.7359630 + 3.735963
# 3

 

 

 

ex)  선형 회귀분석 모델 시각화

#1 xy 산점도

plot(formula=y~x, data=product)



 

#2 선형 회귀모델 생성

result.lm <- lm(formula=y~x, data=product)

 

#3 회귀선

abline(result.lm, col="red")



 

 

ex)  선형 회귀분석 결과보기

 

summary(result.lm)
# Call:
#   lm(formula = y ~ x, data = product)

# Residuals:
#   Min       1Q   Median       3Q      Max 
# -1.99669 -0.25741  0.00331  0.26404  1.26404 

# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  0.77886    0.12416   6.273 1.45e-09 ***
#   x            0.73928    0.03823  19.340  < 2e-16 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

# Residual standard error: 0.5329 on 262 degrees of freedom
# Multiple R-squared:  0.5881, Adjusted R-squared:  0.5865 
# F-statistic:   374 on 1 and 262 DF,  p-value: < 2.2e-16
  • 결정계수: 독립변수에 의해서 종속변수가 얼마만큼 설명되었는가를 나타내는 회귀모형의 설명력, 1에 가까울수록 설명변수(독립변수)가 설명을 잘한다 라고 판단
  • 수정결정계수(Adjusted R-squared): 오차를 감안하여 조정된 R값. 실제 분석에서는 이 값을 이용, F-statistic: F-검정통계량으로 회귀모형의 적합성(회귀선이 모형에 적합
반응형
Comments