HOWTO · R
R에서 물결표 기호(~) 사용하기
R 수식에서 물결표 기호(~)가 무엇을 의미하는지, lm()과 함께 사용하는 방법, help()로 문서를 찾는 방법을 알아봅니다.
이 페이지의 내용
R에서 물결표 연산자(~)는 수식을 만듭니다. y ~ x와 같은 모델 수식에서 왼쪽은 모델링할 반응을 명명하고, 오른쪽은 예측 변수를 지정합니다. “x를 사용해 y를 모델링한다"고 읽습니다. 수식을 만드는 것만으로는 모델이 적합되지 않으며, lm()과 같은 함수가 이를 해석합니다.
R에서 물결표 연산자 사용 방법
반응 하나와 예측 변수 둘을 지정하려면 response ~ predictor1 + predictor2라고 씁니다. 모델 수식에서 +는 예측 변수 값들을 서로 더하는 대신 모델 항을 추가합니다. 수식은 ~ x처럼 오른쪽만 가질 수도 있습니다. 그 형태가 적절한지는 그것을 받는 함수에 달려 있습니다.
선형 모델 적합하기
다음의 자체 완결형 예제는 R의 표준 함수 lm()을 사용합니다. 데이터 프레임을 만들고, 모델을 적합하고, 그 계수를 출력합니다.
measurements <- data.frame(
x = c(1, 2, 3, 4, 5),
y = c(3, 5, 6, 9, 11)
)
model <- lm(y ~ x, data = measurements)
print(coef(model))
(Intercept) x
0.8 2.0
여기서 y는 반응이고 x는 예측 변수입니다. 인수 data는 lm()에게 그 열들을 어디에서 찾을지 알려 줍니다. 기본적으로 이 모델은 절편을 포함합니다: coef(model)은 절편과 x의 계수를 반환합니다. 적합된 직선에서 절편은 x = 0에서의 적합된 반응을 나타내고, x의 계수는 x가 한 단위 증가할 때 적합된 반응의 변화를 나타냅니다. 더 완전한 통계 요약을 요청하려면 summary(model)을 사용하세요.
수식을 응용하려면 열 이름을 바꾸고 자신의 데이터 프레임을 제공하세요. 여러 예측 변수에는 y ~ x1 + x2와 같은 수식을 사용합니다. lm() 안에서 y ~ x1 * x2는 두 예측 변수와 그 상호작용을 포함하고, y ~ x - 1은 절편을 제거합니다. 이들은 구문 예시이며 실행된 예제는 아닙니다. 철자를 확인하고 참조되는 열이 제공된 데이터에 존재하는지 확인하세요.
수식을 동적으로 구성하기
변수 이름이 문자열로 저장되어 있을 때 as.formula()는 수식 텍스트를 객체로 변환할 수 있습니다. 반응 이름 "y"와 예측 변수 이름 "x1", "x2"로부터 수식을 구성하고 출력하려면 이 자체 완결형 예제를 실행하세요:
response <- "y"
predictors <- c("x1", "x2")
formula_text <- paste(response, "~", paste(predictors, collapse = " + "))
model_formula <- as.formula(formula_text)
print(model_formula)
y ~ x1 + x2
안쪽 paste()는 예측 변수 이름들을 +로 결합하고, 바깥쪽 호출은 반응을 ~ 앞에 둡니다. 결과 수식은 두 예측 변수를 사용해 y를 지정합니다. 구성만으로는 모델이 적합되거나 계수가 추정되지 않습니다. 적합하려면 이름 붙은 열을 포함하는 데이터 프레임과 함께 model_formula를 lm()에 전달하세요; 수식을 구성하는 데만은 열이 필요 없습니다.
연산자 조회하기
연산자를 따옴표로 감싸 help() 함수를 사용하세요: help("~"). 이는 R의 물결표 문서를 요청합니다. 그 표시는 사용하는 R 인터페이스와 도움말 설정에 따라 달라지며, RStudio의 특정 파일 브라우저 탭을 필요로 하지 않습니다. 모델 항 구문에 대해서는 help("formula")도 참조하세요.
결론
~를 사용해 수식을 구성하고 수식을 받는 함수에 전달하세요. 선형 모델에서는 반응을 왼쪽에, 예측 변수를 오른쪽에 둡니다. 연산자를 조회하려면 help("~")를, 모델 수식 관례에 대해서는 help("formula")를 사용하세요.