[ 5.1 단순선형회귀 ]
상관분석 vs 단순 선형 회귀분석
상관분석 : 두 양적 자료의 선형관계 (또는 연관) 유무를 통계적 관점으로 다룰 수 있지만 두 자료의 선형 관계식 제시는 X
상관관계 : 두 변수 사이의 전체적인 관련 강도를 측정하는 것이라면, 회귀는 관계 자체를 정량화하는 방법이라는 점에서 차이가 있음
단순 선형 회귀분석 : 두 자료의 선형식과 설명식과 설명할 수 없는 오차항(확률변수)으로 만들어진 모형
ex) 키가 170일 때, 몸무게값 파악 가능
- 회귀모델
한 변수와 또 다른 변수의 크기에 어떤 관계를 정량화 하는 법
- 단순선형회귀 모델
- 선형관계(즉, 직선)을 이용해서 변수 X로 부터 변수 Y를 예측
- 한 변수와 또 다른 변수의 크기에 어떤 관계를 정량화 하는 방법
- Y = b0+b1 X
- b0 = 절편(상수)
- b1 = 기울기
- X = 독립변수 또는 예측 변수, 피처벡터
- Y = 응답변수 또는 종속변수, 목표벡터
- R 함수 lm()로 선형회귀 모델 생성 예
plot(lung$Exposure,lung$PEFR,xlab="Exposure",ylab="PEFR")
// x축 데이터, y축 데이터, x축 이름, y축 이름
model <- lm(PEFR ~ Exposure,data=lung) // formular=종속변수(PEFR)~독립변수(Exposure)
절편 (b0) = 424.583
기울기 (b1) = -4.185
회귀모델 : PEFR = 424.583 + -4.185 * Exposure
- 회귀분석, 회귀선, 잔차연결선
head(cars)
attach(cars)
plot(dist~speed, data = cars) // plot 생성
m3 <- lm(dist~speed,cars)
abline(m3,col="red") // 직선 m3 생성
yhat <- predict(m3)
predict() 함수는 새로운 데이터를 input 시켜 새로운 데이터에 대한 예측된 값도 구할 수 있음
cbind (dist,yhat) // dist열과 yhat열 합침
join <- function(i)
lines(c(speed[i],speed[i]), c(dist[i],yhat[i]),col="green")
// x는 speed[i]부터 spped[i]까지 y는 dist[i]부터 yhat[i]까지
sapply(1:50,join)//1부터 50까지 join 함수를 벡터 형태로 리턴
- 잔차
실제 값과 예측 값의 차이를 오차 또는 잔차라고 함
보통 모든 데이터가 정확히 한 직선 안에 들어오지 않음
오차항(ei)을 포함한 회귀식
예측 값 회귀식
오차항(ei)
잔차 = 실제값-예측값
- 잔차 예시
model <- lm(PEFR~Exposure,data=lung)
plot(lung$Exposure,lung$PEFR,xlab="Exposure",ylab="PEFR",pch=20,col="red")
abline(model,col="blue")
yhat <- predict(model) // 예측값
head(yhat)
// 오른쪽에 실제 값을 붙여주기
cbind( Exposure, yhat )
join <- function(1)
lines(c(Exposure[i],Exposure[i],c(PEFR[i],yhat[i])),col="green")
// x는 Exposure[i]부터 Exposure[i]까지 y는 PEFR[i]부터 yhat[i]까지
sapply(1:122,join)
model <- lm(PEFR~Exposure,data=lung) // foumula = 종속변수 ~ 독립변수
model
fiited <- predict(model) // 예측값
resid <- residuals(model) // 잔차
예측
선형회귀 모델 생성 lm() 함수를 통해 모델을 만들고 나면
새로운 데이터에 대한 예측 값은 predict() 함수로 구할 수 있음
predict()
일반 함수로 여러 가지 방식으로 모델을 만들었을 때 해당 모델로부터 새로운 데이터에 대한 예측값을 구하는데 사용할 수 있음
residuals()
예측값과 실제값의 차이를 구할 수 있음
- 최소제곱회귀
제곱의 합이 최소가 되도록 값을 정하는 방법
잔체제곱합을 최소화하는 방법으로 회귀모델을 피팅하는 것
회귀선의 잔차들을 제곱한 값들의 합인 잔차제곱합을 최소화하는 선
잔차제곱합 (RSS)
[ 5.2 다중선형회귀 ]
- 예측변수가 여러 개인 선형 회귀
다중 선형회귀 모델
더이상 직선의 형태는 아니지만,
각 계수와 그 변수들 사이의 관계는 여전히 선형이므로, 선형모형
- b0 = 절편(상수)
- b1 = 기울기
- X = 독립변수 또는 예측 변수, 피처벡터
- Y = 응답변수 또는 종속변수, 목표벡터
- e = 오차
- 킹카운티 주택 정보 예제
head(house[, c("AdjSalePrice", "SqFtTotLiving", "SqFtLot", "Bathrooms",
"Bedrooms", "BldgGrade")])
# 다중선형회귀모델
house_lm <- lm(AdjSalePrice ~ SqFtTotLiving + SqFtLot + Bathrooms +
Bedrooms + BldgGrade,
data=house, na.action=na.omit) # na.action=na.omit 결측값 삭제
house_lm
- 모형 평가
- 데이터 과학 관점에서 가장 중요한 성능 지표는 바로 제곱근 평균제곱오차(RMSE)
'Database & Bigdata > 공공 빅데이터 청년 인턴십' 카테고리의 다른 글
[ DAY 7 ] 웹 크롤링/스크래핑 (0) | 2020.09.01 |
---|---|
[DAY 6] Python기초 (0) | 2020.08.31 |
[DAY 5] R로 배우는 통계 이해 - 통계적 실험과 유의성 검정 (0) | 2020.08.28 |
[DAY 4] R로 배우는 통계 이해 - 탐색적 데이터 분석, 데이터 표본 분포 (0) | 2020.08.27 |
[DAY 3-4] R로 배우는 통계 이해 - R 프로그래밍이해 / 통계기초 (0) | 2020.08.27 |
댓글