부록 D16: 회귀모델
이 장에서 배울 것
이번 장에서는 회귀모델(regression model)을 배웁니다. 회귀모델은 한 값이 다른 값과 어떤 관계를 가지는지 숫자로 표현하는 방법입니다. 생물정보학에서는 유전자 발현량과 질병 정도의 관계, 변이 개수와 암 위험, 나이와 특정 지표의 관계 등을 분석할 때 사용합니다.
핵심 용어를 먼저 정리하겠습니다.
- 선형회귀(linear regression): 결과값을 직선 형태로 예측하는 회귀모델입니다.
- 회귀계수(regression coefficient): 입력값이 1 증가할 때 결과값이 얼마나 바뀌는지 나타내는 숫자입니다.
- 절편(intercept): 입력값이 0일 때의 예측값입니다.
- 잔차(residual): 실제값과 예측값의 차이입니다.
- 로지스틱 회귀(logistic regression): 결과가 예/아니오처럼 두 종류일 때 확률을 예측하는 회귀모델입니다.
- 일반화 선형모델(generalized linear model, GLM): 선형회귀를 여러 종류의 데이터에 맞게 확장한 모델입니다. 앞으로는 영어 약어인 GLM이라고도 부르겠습니다.
- 교란변수(confounder): 원인과 결과 모두에 영향을 주어 관계를 헷갈리게 만드는 변수입니다.
- 공변량(covariate): 분석에서 함께 고려하는 추가 변수입니다.
가장 쉬운 비유: 키로 몸무게를 대략 예측하기
키가 크면 몸무게도 대체로 커지는 경향이 있을 수 있습니다. 물론 키만으로 몸무게를 완벽하게 맞출 수는 없습니다. 그래도 대략적인 관계는 직선으로 표현할 수 있습니다.
예측 몸무게 = 절편 + 회귀계수 × 키
이처럼 회귀모델은 완벽한 예언이 아니라, 데이터 안의 평균적인 관계를 숫자로 표현하는 도구입니다.
선형회귀의 기본식
가장 단순한 선형회귀는 다음처럼 씁니다.
예측값 = 절편 + 회귀계수 × 입력값
예를 들어 다음 모델이 있다고 합시다.
예측 발현량 = 2 + 3 × 약물농도
약물농도가 4라면 예측 발현량은 다음과 같습니다.
2 + 3 × 4 = 14
여기서 절편은 2이고, 회귀계수는 3입니다. 회귀계수 3은 약물농도가 1 증가할 때 예측 발현량이 3 증가한다는 뜻입니다.
잔차
잔차는 실제값과 예측값의 차이입니다.
잔차 = 실제값 - 예측값
예측값이 14인데 실제값이 16이라면 잔차는 다음과 같습니다.
16 - 14 = 2
잔차가 작을수록 모델이 그 데이터점을 잘 맞춘 것입니다. 하지만 모든 잔차가 0이 되는 모델이 항상 좋은 것은 아닙니다. 너무 세부적인 흔들림까지 외우면 과적합이 될 수 있습니다.
여러 입력값을 쓰는 회귀
현실에서는 입력값이 하나만 있는 경우가 드뭅니다. 예를 들어 유전자 발현량을 질병 여부와 비교할 때 나이, 성별, 실험 배치 같은 변수도 영향을 줄 수 있습니다. 이런 추가 변수를 공변량이라고 부릅니다.
예측값 = 절편 + 계수1×유전자발현 + 계수2×나이 + 계수3×배치
이런 방식으로 여러 변수를 함께 고려하면 특정 변수의 효과를 더 조심스럽게 볼 수 있습니다.
로지스틱 회귀
선형회귀는 결과가 연속적인 숫자일 때 자연스럽습니다. 하지만 결과가 “암/정상”, “반응/무반응”, “질병 있음/없음”처럼 두 가지라면 확률을 예측하는 모델이 필요합니다. 이때 로지스틱 회귀를 사용합니다.
로지스틱 회귀는 결과를 0과 1 사이의 확률로 만듭니다.
예측 확률 = 0과 1 사이의 값
예측 확률이 0.8이라면 해당 조건에서 사건이 일어날 가능성을 높게 본다는 뜻입니다. 입문 단계에서는 복잡한 수식보다 “이진 결과의 확률을 예측하는 회귀”라고 이해하면 됩니다.
교란변수
교란변수는 관계를 헷갈리게 만드는 변수입니다. 예를 들어 어떤 유전자 발현량이 질병과 관련 있어 보였는데, 사실 그 차이가 나이 차이 때문에 생겼을 수 있습니다. 나이가 유전자 발현량에도 영향을 주고 질병 위험에도 영향을 준다면 나이는 교란변수일 수 있습니다.
회귀모델에서 공변량을 넣는 이유 중 하나는 이런 교란을 줄이기 위해서입니다.
계산 감각
이 장에서 필요한 계산은 다음과 같습니다.
예측값 = 절편 + 회귀계수 × 입력값
잔차 = 실제값 - 예측값
회귀계수 해석: 입력값 1 증가당 예측값 변화량
예를 들어 예측값 = 5 + 2x에서 x=3이면 예측값은 11입니다. 실제값이 14라면 잔차는 3입니다. 회귀계수 2는 x가 1 증가할 때 예측값이 2 증가한다는 뜻입니다.
생물정보학에서 왜 중요한가
회귀모델은 단순 비교보다 훨씬 넓게 쓰입니다. 유전자 발현량과 임상 지표의 관계, 변이와 질병 위험의 관계, 약물농도와 반응의 관계를 숫자로 설명할 수 있습니다. 또한 공변량을 넣어 나이, 성별, 배치 효과 같은 요인을 함께 고려할 수 있습니다.
보강: 회귀계수는 단위와 함께 읽어야 한다
회귀계수는 “입력값이 1 증가할 때 결과값이 얼마나 바뀌는가”입니다. 그래서 반드시 입력값의 단위를 함께 봐야 합니다. 예를 들어 다음 모델이 있다고 합시다.
예측 염증 점수 = 3 + 0.4 × 유전자 X 발현량
유전자 X 발현량이 1 증가하면 예측 염증 점수는 0.4 증가합니다. 발현량이 5에서 8로 증가하면 3만큼 증가한 것이므로 예측 염증 점수는 다음만큼 증가합니다.
0.4 × (8 - 5) = 1.2
초보자가 자주 하는 실수는 회귀계수 0.4를 “상관계수 0.4”처럼 읽는 것입니다. 회귀계수는 모델식 안에서 입력 단위에 따른 변화량이고, 상관계수는 두 변수가 함께 움직이는 정도를 -1에서 1 사이로 나타내는 값입니다.
공변량 보정 전후를 비교하는 이유
유전자 X가 질병 점수와 관련 있어 보인다고 합시다. 그런데 환자군은 평균 나이가 높고 대조군은 평균 나이가 낮다면, 나이가 결과를 헷갈리게 만들 수 있습니다. 이때 다음 두 모델을 비교할 수 있습니다.
모델 1: 질병 점수 = 절편 + 계수1×유전자 X
모델 2: 질병 점수 = 절편 + 계수1×유전자 X + 계수2×나이
모델 2에서 유전자 X의 계수가 크게 줄어든다면, 처음 보였던 관계의 일부가 나이 차이 때문일 수 있습니다. 이것이 공변량 보정의 핵심 감각입니다.
로지스틱 회귀 해석의 주의점
로지스틱 회귀는 암/정상처럼 결과가 두 종류일 때 자주 씁니다. 입문 단계에서는 결과를 “확률 예측”으로 이해하면 충분합니다. 예를 들어 어떤 샘플의 예측 확률이 0.82라면 모델은 그 샘플이 양성일 가능성을 높게 본 것입니다.
하지만 예측 확률이 높다고 원인이 증명되는 것은 아닙니다. 모델이 유전자 발현 패턴으로 암 샘플을 잘 구분하더라도, 그 유전자가 암을 일으켰다는 뜻은 아닙니다. 회귀는 관계를 정량화하는 강력한 도구지만, 인과결론은 실험설계와 별도 검증이 필요합니다.
잔차 패턴을 보는 이유
잔차가 무작위로 흩어지지 않고 특정 방향으로 남는다면 모델이 중요한 구조를 놓친 것일 수 있습니다. 예를 들어 낮은 발현량에서는 예측이 잘 맞는데 높은 발현량에서는 계속 과소예측한다면, 직선 하나로는 관계를 충분히 설명하지 못하는 상황일 수 있습니다.
보강 학습: 회귀와 logistic regression
왜 필요한가: 변수들이 결과를 얼마나 설명하는지 숫자로 표현하고, 조건·batch 같은 요인을 함께 다루기 위해 필요합니다.
공식 읽기: y=β0+β1x+ε, logit(p)=log(p/(1-p)). β0는 절편, β1은 기울기, ε는 오차입니다. p/(1-p)는 odds입니다.
숫자 예시: y=2+3x에서 x=4이면 y=14입니다. p=0.8이면 odds는 0.8/0.2=4입니다.
생물정보학에서 쓰이는 장면: 발현량 회귀, design matrix 기반 차등분석, 질병/정상 분류의 로지스틱 회귀에서 쓰입니다.
흔한 오해와 주의점: 로지스틱 회귀 계수는 확률 증가량 그 자체가 아니라 log-odds 단위입니다.
핵심 정리
회귀모델은 변수 사이의 관계를 숫자로 표현하는 도구입니다. 선형회귀는 연속형 결과를 직선으로 예측하고, 로지스틱 회귀는 예/아니오 같은 이진 결과의 확률을 예측합니다. 회귀계수는 입력값이 1 증가할 때 예측값이 어떻게 바뀌는지 나타냅니다. 잔차는 실제값과 예측값의 차이입니다. 생물정보학에서는 회귀모델을 통해 관계를 설명하고, 공변량을 이용해 교란을 줄이려고 합니다.
문제 풀이
회귀모델
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
선형회귀의 기본식으로 적절한 것은?
-
2. [계산] 객관식
모델
예측값 = 2 + 3x에서 x=4이면 예측값은? -
3. [계산] 객관식
모델
예측값 = 5 + 2x에서 x=3이면 예측값은? -
4. [계산] 객관식
모델
예측값 = 1 + 4x에서 x=2이면 예측값은? -
5. [계산] 객관식
예측값 14, 실제값 16이면 잔차=실제값-예측값은?
-
6. [계산] 객관식
예측값 20, 실제값 17이면 잔차는?
-
7. [계산] 객관식
예측값 8, 실제값 12이면 잔차는?
-
8. [보통] 객관식
회귀계수 3의 해석으로 적절한 것은?
-
9. [보통] 객관식
회귀계수 -2의 해석으로 적절한 것은?
-
10. [쉬움] 객관식
절편 5의 의미로 적절한 것은?
-
11. [보통] 객관식
로지스틱 회귀가 어울리는 상황은?
-
12. [쉬움] 객관식
예측 확률 0.8의 의미로 가장 적절한 것은?
-
13. [계산] 객관식
모델
예측값 = 10 - 2x에서 x=3이면 예측값은? -
14. [계산] 객관식
모델
예측값 = 7 + x에서 x=5이면 예측값은? -
15. [계산] 객관식
예측값 30, 실제값 25이면 잔차는?
-
16. [계산] 객관식
예측값 6, 실제값 10이면 잔차는?
-
17. [보통] 객관식
교란변수의 설명으로 적절한 것은?
-
18. [쉬움] 객관식
공변량의 설명으로 적절한 것은?
-
19. [계산] 객관식
모델
예측값 = 3 + 5x에서 회귀계수는? -
20. [계산] 객관식
모델
예측값 = 3 + 5x에서 절편은? -
21. [보통] 객관식
GLM의 설명으로 가장 적절한 것은?
-
22. [쉬움] 객관식
잔차가 작다는 말의 의미로 적절한 것은?
-
23. [쉬움] 객관식
회귀모델을 쓰는 주된 이유는?
-
24. [보통] 객관식
선형회귀 결과를 인과관계로 바로 해석하면 안 되는 이유는?
-
25. [계산] 객관식
회귀식이 예측값 = 4 + 3x이고 x=5일 때 예측값은?
-
26. [계산] 객관식
예측값이 18, 실제값이 22일 때 잔차는?
-
27. [계산] 객관식
모델이 질병점수 = 2 + 0.5×발현량 + 0.1×나이라고 한다. 발현량 8, 나이 50이면 예측 질병점수는?
-
28. [해석] 객관식
회귀계수 0.4의 가장 적절한 해석은?
-
29. [계산] 객관식
회귀식 예측값 = 10 - 2x에서 x=3이면 예측값은?
-
30. [사례 판단] 객관식
유전자 발현량과 질병의 관계를 볼 때 나이가 둘 다에 영향을 준다면 나이는 무엇에 가까운가?
-
31. [계산] 객관식
예측값들이 5, 7이고 실제값들이 6, 4라면 잔차 두 개는?
-
32. [용어 구분] 객관식
로지스틱 회귀가 특히 자연스러운 상황은?
-
33. [쉬움] 객관식
y=β0+β1x+ε에서 β1은? -
34. [쉬움] 객관식
y=2+3x, x=4이면 y는? -
35. [보통] 객관식
design matrix의 행과 열은 보통?
-
36. [보통] 객관식
logit(p)=log(p/(1-p))에서p/(1-p)는? -
37. [쉬움] 객관식
로지스틱 회귀에 적절한 결과 변수는?
-
주관식 38. [보통] 주관식 · Gemini 채점
회귀계수의 의미를 설명하라.
-
주관식 39. [보통] 주관식 · Gemini 채점
잔차가 무엇인지 설명하라.
-
주관식 40. [보통] 주관식 · Gemini 채점
선형회귀와 로지스틱 회귀의 차이를 설명하라.
-
주관식 41. [보통] 주관식 · Gemini 채점
교란변수를 회귀모델에서 고려해야 하는 이유를 설명하라.
-
주관식 42. [심화] 주관식 · Gemini 채점
회귀모델에서 공변량을 넣기 전후로 유전자 발현량 계수가 크게 달라졌다면 어떤 가능성을 의심할 수 있는지 설명하라.
-
주관식 43. [보통] 주관식 · Gemini 채점
발현량=5+2×나이에서 나이 30일 때 예측값과 기울기 의미를 설명하라. -
주관식 44. [보통] 주관식 · Gemini 채점
차등발현 분석에서 조건 변수와 batch 변수를 design matrix에 함께 넣는 이유를 설명하라.
-
주관식 45. [보통] 주관식 · Gemini 채점
로지스틱 회귀에서 p=0.8일 때 odds를 계산하라.