gender <- c("F","F","F","M","M","M")
wei <- c( 65,66,69,67,68,72)
hei <- c(171,172,176,173,177,178)
age <- c(23,24,38,43,40,42)
health <- data.frame(gender,wei,hei,age)
lm(wei~hei+gender) # 독립변수 gender는 문자형으로 "F"와 "M" 되어 있습니다.
회귀분석 결과를 보면 모형에 없던 genderM 이라는 변수가 생긴 것을 볼 수 있습니다.
이는 여자("F")을 기준으로 남자("M")인 경우 얼마나 증가하는가를 나타냅니다.
이제 "F","M" 으로 되어 있는 것을 0 과 1로 변형하여 회귀분석을 합니다.
여자인 경우에는 0, 남자인 경우에는 1...
sex <- ifelse(gender=="F",0,1)
lm(wei~hei+sex)
위의 결과와 동일하게 나오는 것을 볼 수 있습니다.
SAS에는 더미변수가 문자로 되어 있으면 에러가 발생합니다.
회귀분석을 하는 경우, 독립변수에 정성적인 변수가 들어가는 경우, 더미변수로 처리하게 됩니다.
독립변수를 문자형으로 하는 경우와 팩터(factor)로 타입(Type)을 변경하여 회귀분석을 하면
결과가 같게 나오는 것을 확인하게 됩니다.
s <- read.csv("d:/r_stat/survey_mul.csv");s
names(s)
s1 <- s
s1$edu_n <- ifelse(s1$edu ==1,"high",
ifelse(s1$edu ==2,'college',
ifelse(s1$edu ==3,'univ',
ifelse(s1$edu==4,'grad',NA))))
table(s1$edu)
table(s1$edu_n)
# 원래 데이터로 회귀분석... 독립변수 edu가 숫자형으로 간주하고 회귀분석
lm(wage~edu,data=s1); # 원래 데이터
# 독립변수 edu를 facor와 character로 바꾸어 회귀분석을 하면 똑 같은 결과
s1$edu_f <- as.factor(s1$edu) # 팩터로 변환 후
s1$edu_c <- as.character(s1$edu) # 문자형으로 변환 후
lm(wage~edu_f,data=s1);
lm(wage~edu_c,data=s1);
# 주의할 점
변수값을 -> college grad high middle 로 변환하면
알파벳순으로 : college를 기준으로...
변수명 edu_n이 앞에 붙고... 알파벳순 grad(대학원졸), high(고졸), univ(대졸)
middle(중졸) 기준으로 되어야 함...
lm(wage~edu_n,data=s1);
```
# 더미변수 만들기 edu1, edu2, edu3
s1
table(s1$edu)
s1$edu1 <- ifelse(s1$edu==1, 1,0)
s1$edu2 <- ifelse(s1$edu==2, 1,0)
s1$edu3 <- ifelse(s1$edu==3, 1,0)
s1$edu4 <- ifelse(s1$edu==4, 1,0)
s1
lm(wage~edu1+edu2+edu3+edu4,data=s1)
'SAS강좌와 통계컨설팅 - 통계편 > 23. 회귀분석' 카테고리의 다른 글
(S)제21강(13)_회귀분석에서 더미변수 다루기(SAS) (0) | 2021.12.21 |
---|---|
(P)제21강(16)_파이썬으로 하는 다중회귀분석 실습 - statsmodels (0) | 2021.12.21 |
(S)제21강(01)_회귀분석이란? (0) | 2021.12.21 |
(P)제21강(16)회귀분석 실습(python) - sklearn-LinearRegression (0) | 2021.12.21 |
(R)제21강(16) R로 하는 회귀분석 실습 - mtcars 데이터 (0) | 2021.12.21 |