Categories: R

R에서 회귀 분석 (lm(), summary())

안녕하세요! 데이터 분석에 관심 있는 분들, 모두 환영해요! 🤗 오늘은 R을 이용해서 회귀 분석하는 방법을 같이 알아보려고 해요. R은 정말 강력한 통계 분석 도구인데, 특히 `lm()` 함수와 `summary()` 함수를 이용하면 회귀 분석을 아주 쉽게 할 수 있답니다. 데이터 분석 초보라도 걱정하지 마세요! 제가 최대한 쉽고 재밌게 설명해 드릴게요. 😉 회귀 분석의 기본 개념부터 `lm()` 함수 사용법, 그리고 `summary()` 함수로 결과를 해석하는 방법까지 차근차근 알아갈 거예요. R에서 회귀 분석을 실제로 어떻게 활용하는지 궁금하시죠? 실제 활용 사례도 준비했으니 끝까지 함께 해 봐요! 😄

 

 

회귀 분석의 기본 개념

자, 이제 드디어!! R을 이용한 회귀 분석의 세계로 풍덩~ 빠져볼 시간이에요! 😄 그 첫걸음으로, 회귀 분석이 도대체 뭐고, 어떤 원리로 돌아가는지 살펴보도록 할게요. 너무 어렵게 생각하지 마세요~ 차근차근 알아가면 정말 재밌는 분석 기법이랍니다! 😉

회귀 분석이란?

회귀 분석이란 간단히 말해서, 어떤 변수(들)가 다른 변수에 어떤 영향을 미치는지 알아보는 통계적 방법이에요. 🤔 “아니, 그게 무슨 말이야?”라고 생각하실 수도 있겠죠? 예를 들어 아이스크림 판매량🍦과 기온🌡️의 관계를 생각해 보세요. 날씨가 더워지면 아이스크림이 더 많이 팔릴 것 같다는 생각, 다들 한 번쯤 해보셨을 거예요. 이처럼 기온(원인)이 아이스크림 판매량(결과)에 영향을 준다고 가정하고, 그 관계를 수학적으로 모델링하는 것이 바로 회귀 분석이랍니다!

회귀 분석의 용어

좀 더 자세히 들어가 볼까요? 회귀 분석에서는 우리가 알고 싶은 변수를 ‘종속 변수‘라고 불러요. 아이스크림 판매량 예시에서는 ‘아이스크림 판매량’이 종속 변수가 되겠죠? 그리고 종속 변수에 영향을 주는 변수들을 ‘독립 변수‘ 또는 ‘설명 변수‘라고 부른답니다. 이 경우에는 ‘기온’이 독립 변수가 되는 거죠! 참 쉽죠? 😊

회귀 방정식

회귀 분석의 핵심은 바로 ‘회귀 방정식‘을 찾는 거예요. 회귀 방정식은 독립 변수와 종속 변수 사이의 관계를 수학적으로 나타낸 식이랍니다. 가장 간단한 형태인 단순 선형 회귀 분석에서는 회귀 방정식이 다음과 같은 형태를 띠어요:

Y = β₀ + β₁X + ε

뜨악?! 갑자기 수식이 나와서 당황하셨나요? 😨 걱정 마세요! 하나씩 뜯어보면 어렵지 않아요.

  • Y: 종속 변수 (예: 아이스크림 판매량)
  • X: 독립 변수 (예: 기온)
  • β₀: y절편 (X가 0일 때 Y의 값)
  • β₁: 기울기 (X가 1만큼 변할 때 Y가 변하는 정도. X와 Y의 관계의 강도를 나타낸다고 볼 수 있어요!)
  • ε: 오차항 (모델이 설명하지 못하는 부분. 모든 현상을 완벽하게 설명할 수는 없으니까요! 😅)

회귀 분석을 통한 예측

회귀 분석을 통해 β₀와 β₁ 값을 추정하면, 기온을 알았을 때 아이스크림 판매량을 예측할 수 있게 돼요! 예를 들어 β₀가 10이고 β₁이 2라면, 기온이 30도일 때 아이스크림 판매량은 10 + 2 * 30 = 70으로 예측되는 거죠. 신기하지 않나요? 🤩

다중 선형 회귀 분석

물론 실제로는 기온 외에도 아이스크림 가격, 광고 효과 등 다양한 요인들이 판매량에 영향을 미칠 수 있어요. 이런 경우에는 여러 개의 독립 변수를 사용하는 ‘다중 선형 회귀 분석‘을 사용해야 한답니다. 다중 선형 회귀 분석의 회귀 방정식은 다음과 같아요:

Y = β₀ + β₁X₁ + β₂X₂ + … + βₙXₙ + ε

복잡해 보이지만, 기본 원리는 단순 선형 회귀 분석과 같아요. 여러 개의 독립 변수를 사용해서 종속 변수를 더 정확하게 예측하려는 것이죠! 😉

회귀 분석의 활용

회귀 분석은 단순히 변수들 간의 관계를 파악하는 것을 넘어, 미래 값을 예측하고 데이터에 숨겨진 패턴을 발견하는 데에도 활용될 수 있어요. 정말 강력한 분석 도구죠? 💪 다음에는 R에서 `lm()` 함수를 사용하여 실제로 회귀 분석을 수행하는 방법을 알아보도록 할게요! 기대해 주세요~ 😊

 

lm() 함수 사용법

자, 이제 드디어 R에서 선형 회귀 분석을 할 때 가장 핵심적인 함수, lm() 함수를 어떻게 사용하는지 자세히 알아볼게요! 마치 레고 블록을 조립하듯이 차근차근 따라오시면 금방 익숙해지실 거예요.^^

lm() 함수의 기본 공식

lm() 함수는 y ~ x 형태의 공식을 사용하는데요, 이 공식, 처음 보면 좀 낯설죠? 걱정 마세요! y는 우리가 예측하고 싶어 하는 종속 변수, x는 예측에 사용할 독립 변수를 의미한답니다. 마치 “y는 x에 따라 변한다!”라고 말하는 것과 같아요. 참 쉽죠?!

lm() 함수 활용 예시

예를 들어, ‘아이스크림 판매량(y)’이 ‘기온(x)’에 따라 어떻게 변하는지 알고 싶다면, lm(아이스크림 판매량 ~ 기온)처럼 공식을 작성하면 된답니다. 기온이 높아질수록 아이스크림 판매량도 증가할 것 같다는 예상, 다들 하시죠? 이런 관계를 lm() 함수를 통해 분석할 수 있어요!

복잡한 모델 생성

좀 더 복잡한 모델을 만들고 싶으시다면? 걱정은 NO! NO! 여러 개의 독립 변수를 사용할 수도 있답니다. 예를 들어 아이스크림 판매량에 영향을 주는 요인이 기온뿐 아니라 ‘습도’와 ‘요일’도 있다고 가정해 보죠. 이럴 땐 lm(아이스크림 판매량 ~ 기온 + 습도 + 요일) 처럼 ‘+’ 기호를 사용해서 독립 변수들을 연결해 주면 된답니다. 마치 마법처럼 간단하죠? ^^

mtcars 데이터셋 활용 예시

자, 이제 실제 데이터를 사용해서 lm() 함수를 어떻게 활용하는지 좀 더 구체적으로 살펴볼게요. R에 기본적으로 내장되어 있는 mtcars 데이터셋을 사용해 보겠습니다. 이 데이터셋은 다양한 자동차 모델들의 연비(mpg), 마력(hp), 차체 무게(wt) 등의 정보를 담고 있어요. 우리는 ‘연비(mpg)’를 ‘마력(hp)’과 ‘차체 무게(wt)’를 사용하여 예측하는 모델을 만들어 볼 겁니다.

# mtcars 데이터셋 불러오기
data(mtcars)

# lm() 함수를 사용하여 선형 회귀 모델 생성
model <- lm(mpg ~ hp + wt, data = mtcars) 

# 생성된 모델 확인
print(model)

data = mtcars 부분은 어떤 데이터를 사용할지 명시해 주는 부분이에요. 잊지 말고 꼭! 적어주셔야 한답니다. print(model)은 생성된 모델의 기본적인 정보를 출력해주는 함수예요. 실행해 보시면 모델 공식과 계수 추정값 등을 확인할 수 있을 거예요. 신기하죠?!

summary() 함수

하지만, print(model)만으로는 충분한 정보를 얻을 수 없어요. 좀 더 자세한 분석 결과를 보고 싶다면 summary() 함수를 사용해야 한답니다. summary() 함수에 대해서는 다음 섹션에서 더 자세히 알아볼 테니 조금만 기다려주세요!

lm() 함수의 다양한 옵션

lm() 함수에는 다양한 옵션들이 있어요. 예를 들어, subset 옵션을 사용하면 특정 조건을 만족하는 데이터만 사용해서 모델을 만들 수 있답니다. weights 옵션을 사용하면 가중치를 적용한 회귀 분석도 가능해요! 정말 강력한 함수죠?!

lm() 함수 사용 시 주의사항

lm() 함수를 사용할 때 주의해야 할 점도 몇 가지 있어요. 먼저, 독립 변수와 종속 변수 사이에 선형 관계가 있다고 가정하고 분석을 진행하기 때문에, 만약 데이터에 비선형적인 관계가 있다면 lm() 함수를 사용하는 것은 적절하지 않을 수 있습니다. 또한, 이상치에 민감하게 반응하기 때문에, 데이터에 이상치가 있다면 분석 결과에 영향을 미칠 수 있어요. 따라서 분석 전에 데이터를 꼭! 확인하고 전처리하는 과정이 필요해요.

자, 이제 lm() 함수 사용법에 대해 어느 정도 감을 잡으셨나요? 처음엔 조금 어려워 보일 수 있지만, 몇 번 연습하다 보면 금방 익숙해지실 거예요! 다음 섹션에서는 summary() 함수를 사용하여 회귀 분석 결과를 어떻게 해석하는지 알아볼 테니, 기대해주세요! 화이팅!

 

summary() 함수로 결과 해석하기

휴~, 드디어 lm() 함수로 모델을 만들었으니 이제 결과를 해석하는 시간이에요! 결과 해석은 마치 보물지도를 읽는 것처럼 흥미진진하답니다. R에서는 summary() 함수가 이 보물지도를 해독하는 데 도움을 주는 핵심 키워드예요! 자, 그럼 summary() 함수가 펼쳐 보이는 마법의 세계로 함께 떠나볼까요~?

summary(model) 이라고 입력하면 짠! 하고 결과가 나타나는데요, 처음 보면 뭐가 뭔지 헷갈릴 수 있어요. 하지만 걱정 마세요! 제가 하나하나 차근차근 설명해 드릴게요. ^^

Residuals (잔차)

먼저, Residuals (잔차) 부분을 살펴보면 모델이 데이터를 얼마나 잘 설명하는지 대략적으로 알 수 있어요. 최소값, 1사분위수, 중앙값, 3사분위수, 최댓값을 보면 잔차의 분포를 파악할 수 있죠. 잔차가 이상적인 정규분포를 따른다면 중앙값은 0에 가깝고, 최소값과 최댓값은 서로 비슷한 절댓값을 가져야 해요. 만약 잔차 분포가 왜곡되어 있다면 모델의 가정에 문제가 있을 수 있다는 신호랍니다!

Coefficients (계수)

다음으로 Coefficients (계수) 부분은 정말 중요해요!! 여기에는 절편(Intercept)과 각 설명 변수의 계수, 표준 오차, t 값, p-값이 표시되는데요. 각 설명 변수의 계수는 해당 변수가 종속 변수에 미치는 영향력의 크기를 나타내요. 예를 들어, 계수가 양수이면 설명 변수가 증가할 때 종속 변수도 증가하는 경향이 있다는 것을 의미하고, 음수이면 반대로 감소하는 경향이 있다는 것을 의미해요. 표준 오차는 계수 추정치의 정확도를 나타내는 척도이고, t 값은 계수가 0과 유의미하게 다른지를 검정하는 데 사용되며, p-값은 t 검정의 결과를 나타내는 값이에요. 일반적으로 p-값이 0.05보다 작으면 해당 변수가 통계적으로 유의미한 영향을 미친다고 해석해요. p-값이 작을수록 해당 변수가 모델에 중요한 역할을 한다는 것을 의미하죠!

R-squared (결정 계수)

R-squared (결정 계수)는 모델이 데이터를 얼마나 잘 설명하는지를 나타내는 지표예요. 0과 1 사이의 값을 가지는데, 1에 가까울수록 모델이 데이터를 잘 설명한다는 것을 의미한답니다. 예를 들어 R-squared 값이 0.8이라면 모델이 종속 변수의 변동성 중 80%를 설명한다는 뜻이에요. 하지만 R-squared 값이 높다고 해서 항상 좋은 모델이라고 할 수는 없어요. 변수를 많이 추가하면 R-squared 값은 인위적으로 높아질 수 있기 때문이죠. 그래서 Adjusted R-squared 값도 함께 확인하는 것이 중요해요! Adjusted R-squared는 변수의 개수를 고려하여 R-squared 값을 조정한 값이에요.

F-statistic

F-statistic은 모델 전체의 유의성을 검정하는 데 사용돼요. p-값이 0.05보다 작으면 모델이 통계적으로 유의미하다는 것을 의미해요. 즉, 적어도 하나 이상의 설명 변수가 종속 변수에 유의미한 영향을 미친다는 뜻이죠!

summary() 함수 활용

자, 이제 summary() 함수가 제공하는 정보들을 하나씩 살펴보았어요. 처음에는 복잡해 보였지만, 각각의 의미를 알고 나니 생각보다 어렵지 않죠? 이 정보들을 종합적으로 분석하면 모델의 성능을 평가하고, 변수 선택에 대한 통찰력을 얻을 수 있답니다!

예를 들어, Coefficients 부분에서 특정 변수의 p-값이 0.05보다 크다면, 해당 변수는 종속 변수에 유의미한 영향을 미치지 않는다고 볼 수 있어요. 이 경우, 모델을 간소화하기 위해 해당 변수를 제거하는 것을 고려할 수 있겠죠? 또한, Residuals 부분에서 잔차의 분포가 이상적이지 않다면, 모델의 가정에 위배되는 부분이 있는지 확인하고, 필요에 따라 데이터 변환이나 다른 모델을 고려해 볼 수도 있답니다.

summary() 함수는 단순히 결과를 출력하는 함수가 아니라, 데이터 분석의 방향을 제시하는 나침반과 같은 역할을 해요. 이 나침반을 잘 활용하면 데이터 속에 숨겨진 의미를 발견하고, 더욱 정확하고 효과적인 분석을 수행할 수 있을 거예요! 이제 여러분도 summary() 함수를 통해 데이터 분석의 전문가가 될 수 있어요! 화이팅!!

 

R에서 회귀 분석 활용 사례

자, 이제 R에서 회귀 분석을 어떻게 활용할 수 있는지 실제 사례들을 통해 알아볼까요? 이론적인 내용은 그만! 실전으로 넘어가 봅시다! 다양한 분야에서 회귀 분석이 어떻게 놀라운 통찰력을 제공하는지, 함께 살펴보도록 해요!

1. 마케팅 분석: 광고 지출과 매출의 관계

어떤 회사에서 TV, 라디오, 신문 광고에 얼마나 투자해야 최대 매출을 올릴 수 있을지 고민하고 있다고 생각해 보세요. 복잡하죠?! 이럴 때 회귀 분석이 딱!입니다. 광고 지출액을 독립 변수로, 매출액을 종립 변수로 설정하여 다중 선형 회귀 분석을 수행하면, 각 매체별 광고 지출이 매출에 미치는 영향을 파악할 수 있어요. 예를 들어, 회귀 계수가 TV 광고는 0.8, 라디오 광고는 0.3, 신문 광고는 0.05로 나타났다고 가정해 봅시다. 이는 TV 광고 지출이 매출에 가장 큰 영향을 미치고, 신문 광고는 상대적으로 영향력이 적다는 것을 의미하는 거죠! R의 lm() 함수를 이용하여 이러한 분석을 간단하게 수행할 수 있답니다. 데이터만 있다면 말이죠! summary() 함수를 통해 R-squared 값, p-value 등을 확인하여 모델의 적합도와 통계적 유의성까지 검증할 수 있어요. 정말 유용하지 않나요?!

# 예시 데이터 생성 (실제 데이터는 달라질 수 있습니다)
advertising <- data.frame(
  TV = c(230.1, 44.5, 17.2, 151.5, 180.8),
  Radio = c(37.8, 39.3, 45.9, 41.3, 10.8),
  Newspaper = c(69.2, 45.1, 69.3, 58.5, 58.4),
  Sales = c(22.1, 10.4, 9.3, 18.5, 12.9)
)

# 회귀 모델 생성
model <- lm(Sales ~ TV + Radio + Newspaper, data = advertising)

# 결과 확인
summary(model)

2. 의학 연구: 혈압과 생활 습관의 연관성

의학 연구에서도 회귀 분석은 매우 중요한 역할을 합니다. 예를 들어, 혈압에 영향을 미치는 요인들을 분석하고 싶다고 해 봅시다. 나이, 체중, 흡연 여부, 운동량 등 다양한 변수들을 독립 변수로 설정하고, 혈압을 종속 변수로 설정하여 회귀 분석을 수행할 수 있어요. 이를 통해 어떤 생활 습관이 혈압에 가장 큰 영향을 미치는지 정량적으로 파악할 수 있겠죠? 만약 흡연 여부를 나타내는 변수의 회귀 계수가 5이고 p-value가 0.01이라면, 흡연이 혈압을 유의미하게 높이는 요인이라고 해석할 수 있는 겁니다! 이러한 정보는 고혈압 예방 및 치료에 중요한 근거 자료가 될 수 있어요. R의 강력한 통계 기능 덕분에 복잡한 의학 데이터도 효과적으로 분석할 수 있답니다!

3. 경제학 연구: 경제 성장률 예측

한 나라의 경제 성장률을 예측하는 것은 매우 중요한 과제입니다. 회귀 분석을 활용하면 과거 데이터를 기반으로 미래 경제 성장률을 예측할 수 있어요. 투자율, 소비율, 수출액, 환율 등 다양한 경제 지표들을 독립 변수로 설정하고, 경제 성장률을 종속 변수로 설정하여 회귀 모델을 구축하는 거죠. 예를 들어, 투자율의 회귀 계수가 0.6이고, 소비율의 회귀 계수가 0.4로 나타났다고 가정해 봅시다. 이는 투자와 소비가 경제 성장에 긍정적인 영향을 미치며, 투자가 소비보다 더 큰 영향력을 가진다는 것을 의미해요! 물론, 경제는 매우 복잡한 시스템이기 때문에 모든 요인을 완벽하게 반영하는 것은 어렵습니다. 하지만 회귀 분석은 미래 경제 상황을 예측하고 정책을 수립하는 데 중요한 도구로 활용될 수 있다는 점, 잊지 마세요!

4. 환경 과학: 대기 오염 예측

대기 오염은 현대 사회의 심각한 문제 중 하나입니다. R의 회귀 분석을 활용하면 대기 오염 수준을 예측하고, 오염 발생 원인을 파악하는 데 도움을 얻을 수 있어요. 기온, 풍속, 강수량, 교통량, 공장 가동률 등 다양한 환경 변수들을 독립 변수로 설정하고, 미세먼지 농도와 같은 대기 오염 지표를 종속 변수로 설정하여 회귀 분석을 수행할 수 있습니다. 만약 교통량의 회귀 계수가 0.01이고 p-value가 0.001이라면, 교통량 증가가 미세먼지 농도 증가에 유의미한 영향을 미친다는 것을 알 수 있겠죠?! 이러한 분석 결과는 대기 오염 예방 정책 수립에 중요한 기초 자료가 될 수 있답니다.

이 외에도 회귀 분석은 교육학, 사회학, 심리학 등 다양한 분야에서 활용되고 있어요. 데이터 분석의 핵심 도구라고 해도 과언이 아니죠! R과 함께라면 누구든지 데이터 속 숨겨진 이야기를 발견하고, 의미 있는 결론을 도출할 수 있을 거예요! 다양한 시도를 통해 R의 매력에 푹 빠져보세요! 데이터 분석의 세계가 당신을 기다리고 있습니다! 화이팅!

 

자, 이렇게 R을 이용한 회귀 분석의 기본부터 활용 사례까지 쭉 살펴봤어요! 어때요, 생각보다 어렵지 않았죠? 처음엔 lm() 함수니, summary() 함수니 하는 것들이 낯설게 느껴질 수 있지만, 몇 번 직접 데이터를 가지고 실습해보면 금방 익숙해질 거예요. 마치 새로운 친구 사귀는 것과 같다고 할까요? 회귀 분석은 데이터 분석에서 정말 강력한 도구랍니다. 데이터 속에 숨겨진 관계를 밝혀내고, 미래를 예측하는 데 활용할 수 있으니 여러분의 데이터 분석 여정에 든든한 동반자가 되어줄 거예요. 앞으로도 꾸준히 연습하고, 다양한 활용법을 탐구해서 데이터 분석 전문가로 거듭나 보자구요! 파이팅!

 

Itlearner

Share
Published by
Itlearner

Recent Posts

R에서 상관 분석 (cor(), cor.test())

안녕하세요! 데이터 분석에 관심 있는 분들, 모두 환영해요! 😊 오늘 우리 같이 재미난 통계 이야기…

3시간 ago

R에서 카이제곱 검정 (chisq.test())

안녕하세요! 오늘은 데이터 분석에서 빼놓을 수 없는 중요한 친구, 바로 카이제곱 검정(chisq.test())에 대해 함께 알아보려고…

7시간 ago

R에서 t-test, ANOVA 분석 수행 (t.test(), aov())

안녕하세요! 데이터 분석에 관심 있는 분들, 모두 환영해요! 오늘은 통계 분석에서 가장 기본적이면서도 중요한 분석…

18시간 ago

R에서 기초 통계량 계산 (mean(), median(), sd(), var(), summary())

안녕하세요! 데이터 분석의 기초 중의 기초, 바로 기초 통계량에 대해 함께 알아보는 시간을 가져보려고 해요.…

24시간 ago

R에서 대시보드 만들기 (shiny 패키지 활용)

안녕하세요! 요즘 데이터 시각화, 진짜 중요하잖아요? 그래서 오늘은 R의 Shiny 패키지를 활용해서 멋진 대시보드를 만드는…

1일 ago

R에서 상관관계 그래프 그리기 (corrplot())

안녕하세요! 데이터 분석하면 왠지 모르게 어렵고 복잡한 그래프들이 떠오르시죠? 하지만 걱정 마세요! 오늘은 R에서 상관관계…

1일 ago