단순선형회귀(Simple Linear Regression)

주울·2022년 12월 8일

데이터분석

목록 보기
5/7

회귀 분석: '기울기가 0이 아니다'를 주장하는 것.(베타가 0이 아니다를 주장)

  1. 종속변수: 연속형
    독립변수: 연속형
## 데이터 cars에 대해 종속변수 dist, 독립변수 speed 간의 단순선형회귀 분석을 하자.

res = lm(dist ~ speed, data=cars) #리니어 라인
plot(cars)
abline(res) # 직선 긋기
res
summary(res) # speed가 1증가 할때 dist가 3.9324 증가한다고 나옴. Y = -17.6 +3.9x
# r square는 모델의 설명력. speed가 dist를 65퍼센트 설명한다는 것.
  1. 종속변수: 연속형
    독립변수: 바이너리 범주형
## 데이터 PlantGrowth에서 변수 group 값이 ctrl인 그룹과 아닌 그룹 간의 단순선형회귀 분석을 해보자. 

data = PlantGrowth
View(data)
data$gr = ifelse(data$group =="ctrl",0,1) 
plot(weight ~ gr, data = data)
plot(weight ~ factor(gr), data=data) #전체적 분포를 더 쉽게 보여줌. ctrl이 아닌게 더 정규분포를 따를것같음.
res=lm(weight ~ gr, data=data) 
#해석: x가 바이너리 변수이면 -> 컨트롤그룹(0)이 ref가 됨. 
summary(res) #Y=5.03 + 0.06x 그러나 p value가 0.05보다 큼.. 설명력도 1프로..
res = lm(weight~factor(gr),data=data) #바이너리일 땐, factor 안해줘도 동일.
summary(res)
  1. 종속변수: 연속형
    독립변수: 범주형(>=3 groups)
## 데이터 PlantGrowth를 이용하여 group 변수(ctrl,trt1,trt2)의 단순선형회귀 분석을 해보자.

data$gr = ifelse(data$group=="ctrl", 0, ifelse(data$group=="trt1",1,2))
res = lm(weight ~ gr, data=data)
summary(res) #gr이 1증가할 때 0.24만큼 변한다는것-> 그룹의 의미가 아님!!

# factor로 보기
res = lm(weight ~ group, data=data)
summary(res) 
res = lm(weight ~ factor(gr), data=data) #추가)리니어 모델은 t-test와 아노바를 포괄함
summary(res)

# dummy variable화
group = gr d1 d2
ctrl  = 0  0  0
trt1  = 1  1  0
trt2  = 2  0  1

0개의 댓글