단순선형 회귀분석의 목표

독립변수(x) 여러개와 종속변수(y)1개 간 선경관계 파악하고 예측에 활용하는 통계적 방법

 

회귀식 : y = b0 + b1x1+b2x2+...+bnxn

 

주요 이론

- 단순선형 회귀분석에서 확장

- coefficients : EstimateStd. 부분이 중요

여기서 중요한건 b0의 상수항. lm()결과의 intercept값임

- *** 표시된 독립변수가 종속변수 설명하는데 중요한 변수 의미

- adjsted R-squared : 모델 설명력. 클수록 좋음. 0~1값 가짐. 

- p-value 값(유의수준) : 신뢰수준. 작을수록 좋음.

 통상 0.05미만이면 95%이상의 신뢰수준으로 통계적 유의미함

-다중선형 회귀모델에서 변수의 선택 : 독립변수가 많으면 복잡, 적을수록 좋음.

  모든 독립변수가 종속변수 설명을 동일하게 기여하는 것은 아님

  기여도가 낮은 변수는 제외하는게 좋음.

 - stepAIC()함수 : R은 모델 기여 변수 선별

 

주요 R코드 (암기)

plot(데이터셋, pch=16, col="blue", main ="Matrix Scatterplot") #산점도에서 변수간 상관관계확인

모델1 = lm(종속변수~독립변수1+독립변수2+독립변수..., 데이터셋) #다중선형회귀분석 모델학습

         또는  = lm(종속변수~ . ,데이터셋)  # dot . 은 모든 독립변수 대체 의미

모델2 = stepAIC(모델1)  #변수선택

summary(모델2)  #내용확인

 

*

*

*

 

다중선형회귀분석 R실습

문제 : 여러독립변수 이용해 Prestige에측

 

#실습코드

library(car)

#1)데이터셋 확인

head(Prestige)

class(Prestige)

df = Prestige[ ,c(1:4)] #필요데이터만 정리

plot(df, pch=16, col="blue", main = "Matrix Scatterplot") #산점도

 

#2)회귀모델 학습

model1 = lm(income~ . , data = df)

summary(model1) #결과확인 #coefficients, ***, R-squared, p-value확인

 

#3)변수선택 <-패키지다운, library(MASS)

df2 = Prestige[,c(1:5)] #데이터준비

head(df2) #데이터확인

model2 = lm(income ~ . , data= df2) #회귀모델 만들기

model3 = stepAIC(model2) #기여도 고려 독립변수 선별 제거

 

#4)결과비교하기. adjusted R-squared값 비교

summary(model1)

summary(model3)

 

#예상치와 실제값 비교

women_1 = 11

prestige_1 = 68

income_pred = 431.574 -(48.385*women_1) +(165.875*prestige_1)

 

 

########################################################################

 

 

 

 

 

단순선형 회귀분석의 목표

독립변수(x) 1개와 종속변수(y)1개 간 선경관계 파악하고 예측에 활용하는 통계적 방법

 

회귀식 : y = ax + b

 

주요 이론

y=ax+b에서 a와 b구하는것이 중요

실제값과는 오차범위가 반드시 존재한다

즉, 회귀식으로 실제값이 아닌 예측값을 구하는것

 

주요 R코드 (암기)

plot(종속변수y~독립변수x, 데이터셋)

모델 = lm(종속변수y~독립변수x, 데이터)

a = coef(모델 )[1]  

b = codf(모델 )[2]  

예상값pred = a *독립변수x+ b 

 

+

+

+

 

단순회귀분석 R실습

문제 : 주행속도에 따른 제동거리 관계

 

#실습코드

#1) 데이터셋 산점도 그려서, 선형성 있는지 확인하기.

head(cars) #데이터구조확인

plot(dist~speed, data=cars)

#선형성 없으면 회귀분석 이용할 필요없으며, 예측불가

 

#2) 회귀모델 구하기 #y = ax + b  #lm(Y~X, data)

model = lm(dist~speed, cars)

#결과값의 coefficeints가 중요

#(intercept)의 아래값이 b값, speed(X변수)아래 값이 a값

#결과 : dist = 3.932*speed - 17.579 알아냄

 

#3) 회귀선 그리기

abline(model) #산점도내 회귀선

 

#4) b값과 a값을 출력하기 

#coefficients 결과 중요

coef(model)[1]  #b값출력 (intercept)아래값

codf(model)[2]  #a값 출력 speed아래값

 

#5) 테스트위한 대입해보기

b = coef(model)[1]

a = coef(model)[2]

 

#예측값예시

speed = 25 #실제85

dist = a*speed + b

dist #결과 80.73112

 

spped = 100

dist = a*speed +b

dist #결과 375.6618

 

#6)예측값 !항상 실제값과 오차있음 인식하기

#실제값과 예측값 오차 얼마인지 확인하기

speed = cars[, 1] #speed주행속도 열 가져오기

pred = a *speed + b #예상 제동거리 값들 나옴

 

#오차 구하기위한 df 만들기

df= data.frame(pred,cars[, 2], pred-cars[,2])

colnames(df) = c("예상치","실제값","오차값")

 

#######################################################

+ Recent posts