상관과 회귀분석 복습
- 실제 차량이 아닌 수업용 합성 중고차 매물 420대
- 가격과 주행거리의 상관관계를 확인하고 단순회귀모형으로 가격을 예측
- 연식, 사고 횟수, 차종을 함께 투입하여 통계적으로 통제
- 차종을 더미코딩하고 기준 범주에 따른 회귀계수를 해석
- 관찰자료의 상관관계만으로 인과관계를 확정할 수 없는 이유를 검토
| 컬럼 | 설명 |
|---|---|
vehicle_id |
차량 ID |
model |
차종(Avante, K3, Sonata) |
year |
연식(2016~2025년) |
mileage_km |
주행거리(km) |
accident_count |
사고 횟수(0~3회) |
price |
중고차 가격(만원) |
import pandas as pd
df = pd.read_excel("assets/used_cars.xlsx")
df.head()
퀴즈
mileage_km와 price의 피어슨 상관계수 r을 소수점 넷째 자리까지 입력하세요.
퀴즈를 풀려면 대화형 기능을 불러와야 합니다.
mileage_km와 price의 피어슨 상관계수 r을 소수점 넷째 자리까지 입력하세요.
import pingouin as pg
pg.corr(df['mileage_km'], df['price'])
r 열 확인.
상관분석 결과가 r=-0.7624, 95% 신뢰구간 [-0.80, -0.72], p<0.001일 때 가장 적절한 해석은?
부호·절댓값과 신뢰구간의 0 포함 여부 확인. 통계적 관계와 인과관계 구분.
중고차 데이터의 상관관계와 인과관계에 대한 설명으로 맞는 것을 모두 고르세요.
상관은 함께 변하는 정도. 인과 해석에는 제3의 변수와 자료 생성 과정 검토.
year가 두 변수의 관계에 함께 영향을 줄 수 있다p-value가 0.001보다 작으면 누락된 제3의 변수는 없다고 결론 내릴 수 있다상관계수의 절댓값이 0.7보다 크면 주행거리를 인위적으로 바꿀 때 가격도 반드시 같은 관계식대로 변한다무작위 배정이나 타당한 인과 가정이 포함된 연구 설계는 인과 추론을 강화할 수 있다year가 두 변수의 관계에 함께 영향을 줄 수 있다, 무작위 배정이나 타당한 인과 가정이 포함된 연구 설계는 인과 추론을 강화할 수 있다mileage_km와 price의 관계에서 가장 중요한 교란 가능성이 있는 변수는?
교란변수는 독립변수와 종속변수 모두와 관련.
accident_count: 사고 횟수는 가격과 관련되지만 주행거리와의 관계가 연식보다 약하기 때문에year: 오래된 차량일수록 주행거리가 길고 가격이 낮아지는 경향이 있기 때문에model: 차종별 가격 차이는 있지만 주행거리와의 관계가 연식보다 약하기 때문에year: 오래된 차량일수록 주행거리가 길고 가격이 낮아지는 경향이 있기 때문에price ~ mileage_km 단순회귀모형에서 변수의 역할을 올바르게 연결한 것은?
~ 왼쪽은 종속변수, 오른쪽은 독립변수.
mileage_km는 종속변수이고 price는 독립변수이다model은 종속변수이고 mileage_km는 범주형 독립변수이다price는 연속형 종속변수이고 mileage_km는 연속형 독립변수이다price와 mileage_km는 모두 범주형 변수이다price는 연속형 종속변수이고 mileage_km는 연속형 독립변수이다price ~ mileage_km 단순회귀모형에서 mileage_km의 계수를 소수점 넷째 자리까지 입력하세요.
from statsmodels.formula.api import ols
simple_model = ols('price ~ mileage_km', data=df).fit()
simple_model.summary()
mileage_km 행의 coef 확인.
단순회귀의 mileage_km 계수가 -0.0107일 때 단위를 고려한 해석으로 가장 적절한 것은?
단위는 만원/km. 1,000km 변화는 계수에 1,000을 곱함.
단순회귀모형으로 주행거리 80,000km 차량의 가격을 예측하세요. 결과를 소수점 둘째 자리까지 만원 단위로 입력하세요.
simple_model.predict(pd.DataFrame({'mileage_km': [80000]}))
단순회귀모형의 R 제곱을 소수점 넷째 자리까지 입력하세요.
simple_model.rsquared
단순회귀모형의 R²=0.5813에 대한 설명으로 가장 적절한 것은?
R 제곱은 가격 변산성 중 모형이 설명하는 비율.
R²가 피어슨 상관계수의 제곱과 같다모든 차량의 예측 가격이 실제 가격과 58.13만원 이내로 일치한다는 뜻이다주행거리와 가격의 상관계수가 0.5813이라는 뜻이다R²가 피어슨 상관계수의 제곱과 같다price ~ mileage_km + year + accident_count + model 다중회귀모형에서 mileage_km의 계수를 소수점 넷째 자리까지 입력하세요.
multiple_model = ols(
'price ~ mileage_km + year + accident_count + model',
data=df,
).fit()
multiple_model.summary()
mileage_km 행의 coef 확인.
mileage_km 계수가 단순회귀의 -0.0107에서 다중회귀의 -0.0019로 달라진 결과를 가장 적절하게 설명한 것은?
다중회귀계수는 다른 독립변수가 같은 조건의 관계.
다중회귀의 통계적 통제에 대한 설명으로 맞는 것을 모두 고르세요.
통계적 통제는 모형 안의 조건 비교이며 실험적 통제와는 다름.
model은 그대로 두고 연속형 변수인 mileage_km, year, accident_count를 표준화하여 price를 예측하게 했을 때 가격과 가장 강하게 관련된 연속형 독립변수는?
standardized_model = ols(
'price ~ scale(mileage_km) + scale(year) '
'+ scale(accident_count) + model',
data=df,
).fit()
standardized_model.summary()
표준화된 세 연속형 변수의 coef 절댓값 비교. model은 표준화 제외.
mileage_kmyearaccident_count세 변수는 표준화했으므로 영향력이 모두 같다yearmodel의 범주가 Avante, K3, Sonata 세 개일 때 기본 더미코딩 결과로 맞는 것은?
범주가 k개이면 기준 하나를 제외한 k-1개 사용.
Sonata가 기준 범주가 된다더미변수 1개가 만들어지고 K3가 기준 범주가 된다더미변수 2개가 만들어지고 Avante가 기준 범주가 된다더미변수 2개가 만들어지며 기준 범주는 필요하지 않다Avante가 기준 범주가 된다다중회귀모형에서 model[T.K3]=76.76일 때 가장 적절한 해석은?
더미 계수는 다른 조건이 같을 때 해당 범주와 기준범주의 예측값 차이.
Sonata를 기준 범주로 바꾼 모형에서 K3의 더미계수를 소수점 둘째 자리까지 입력하세요.
sonata_reference_model = ols(
'price ~ mileage_km + year + accident_count '
'+ C(model, Treatment("Sonata"))',
data=df,
).fit()
sonata_reference_model.summary()
K3 - Sonata의 coef 확인.
다중회귀모형으로 model='K3', year=2021, mileage_km=80000, accident_count=1인 차량의 가격을 예측하세요. 소수점 둘째 자리까지 만원 단위로 입력하세요.
new_car = pd.DataFrame({
'mileage_km': [80000],
'year': [2021],
'accident_count': [1],
'model': ['K3'],
})
multiple_model.predict(new_car)