목차
2006년부터 2010년까지 IOWA주 AMES카운티에 있는 주택 거래자료를 바탕으로 주택 가격이 어떻게 형성되는지를 파악하고 주택의 내부적인 특성을 4가지로 분류하여 부동산 외부적 특성 / 건물 및 실내 특성 / 추가 시설 및 외부 공간 / 거래 정보에 따라 주택 가격에 영향을 미치는 정도를 예측하고자 합니다.
문제 정의 : 주택 가격을 평가할 때 거시적인 외부변수가 주택가격에 영향을 많이 미칩니다. 예를 들어 미국의 물가상승률에 따른 주택가격의 상승으로 2020년 이후 주택 가격이 47.1% 가량 올랐습니다. 이에 어떤 주택의 가격이 물가의 상승 때문에 비싸게 되었는지 혹은 주택의 가치가 높아서 가격이 비싸게 되었는지 판단하기 어렵습니다. 이처럼 금융시장의 변동과 기타 거시적인 외부변인으로 정확한 가격 산출에 어려움이 많습니다. 이에 본 프로젝트에서 외부적인 요인을 제외한 주택이 가지는 내재적인 특성을 활용하여 가격을 예측하여 금융시장, 경제정책과 별도의 미시적인 관점에서 가격을 확인하고자 합니다.
National home price growth(after 1990s)
세부 목적 : 본 프로젝트는 작은 공간적 범위에 대해 주택의 입지, 상태 등 내재적인 특성을 활용한 모델링을 통해 주택가격을 평가합니다. 본 자료는 2006년에서 2010년의 자료이므로 다른 시기와 해당 시기의 주택가격을 비교할 때 Fred에서 제공하는 house index를 활용해 물가상승률을 적용하여 시기에 맞게 주택 가격을 비교하고자 합니다. 해당 결과값을 house index에 따라 값을 변환한 후 IOWA주의 AMES카운티의 현재 주택가격을 평가할 수 있을 것으로 기대합니다.
본 데이터셋의 평균 거래 일자는 2008년 4월 18일이므로 해당 달의 home price index를 확인해 보면 167.323이 나옵니다. 현 시점의 주택과 비교를 하게 된다면 2024년 7월 기준 325.784의 값이 나오기 때문에 본 모델의 예측값에 (167.323/325.784)의 값을 곱해 물가상승률을 감안해 주택가격이 고평가 되었는지 저평가 되었는지 확인하고자 합니다.
Fred - U.S. National Home Price Index
본 데이터셋은 81개의 칼럼과 1460개의 칼럼으로 이루어져 있고, salePrice를 목표변수로 삼아 주택의 가격을 예측하고자 합니다. 각 칼럼은 분류에 따라 다음과 같이 나뉘어 집니다. 부동산의 특징에 대해 내/외부적으로 구분하였고, 추가적인 시설유무와 거래 조건까지 총 4가지 종류로 구분하여 데이터를 분류했습니다. 칼럼은 수치형 칼럼과 범주형 칼럼으로 나뉘어 있고 수치형 칼럼은 38개, 범주형 칼럼은 서수형을 포함하여 총 43개가 있습니다.
| 1. 부동산의 외부적 특성 | 2. 건물 및 실내 특성-수치 | 2. 건물 및 실내 특성-범주형 | 3. 추가 시설 및 외부 공간 |
|---|---|---|---|
LotFrontage: 부동산과 연결된 도로 길이 (피트) |
OverallQual: 전반적인 자재 및 마감 품질 |
BldgType: 주거 유형 |
GarageYrBlt: 차고 건축 연도 |
LotArea: 대지 크기 (평방 피트) |
OverallCond: 전반적인 상태 평가 |
HouseStyle: 주거 스타일 |
GarageCars: 차고 크기 (차량 수용량) |
MSSubClass: 건물 유형 |
YearBuilt: 건축 연도 |
RoofStyle: 지붕 유형 |
GarageArea: 차고 면적 (평방 피트) |
MSZoning: 일반적인 구역 분류 |
YearRemodAdd: 리모델링 연도 |
RoofMatl: 지붕 재질 |
WoodDeckSF: 목재 데크 면적 (평방 피트) |
Street: 도로 접근 유형 |
MasVnrArea: 석조 베니어 면적 (평방 피트) |
Exterior1st: 외장 재료 |
OpenPorchSF: 오픈된 현관 면적 (평방 피트) |
LotShape: 대지의 일반적인 형태 |
BsmtFinSF1: 지하실 마감 면적 1 (평방 피트) |
Exterior2nd: 외장 재료 (두 번째 재료가 있을 경우) |
EnclosedPorch: 밀폐된 현관 면적 (평방 피트) |
LandContour: 대지의 평탄도 |
BsmtFinSF2: 지하실 마감 면적 2 (평방 피트) |
ExterQual: 외장 재질 품질 |
3SsnPorch: 3계절용 현관 면적 (평방 피트) |
Utilities: 사용 가능한 유틸리티 종류 |
BsmtUnfSF: 지하실 비마감 면적 (평방 피트) |
ExterCond: 외장 상태 |
ScreenPorch: 스크린 현관 면적 (평방 피트) |
LotConfig: 대지 구성 |
TotalBsmtSF: 총 지하실 면적 (평방 피트) |
Foundation: 기초 유형 |
PoolArea: 수영장 면적 (평방 피트) |
LandSlope: 대지의 경사도 |
1stFlrSF: 1층 면적 (평방 피트) |
BsmtQual: 지하실 품질 |
MiscVal: 기타 특성의 가치 (달러) |
Neighborhood: Ames 시 경계 내 물리적 위치 |
2ndFlrSF: 2층 면적 (평방 피트) |
BsmtCond: 지하실 상태 |
FireplaceQu: 벽난로 품질 |
Condition1: 주요 도로 또는 철도와의 인접성 |
LowQualFinSF: 저품질 마감 면적 (평방 피트) |
BsmtExposure: 지하실 노출 여부 |
GarageType: 차고 위치 |
Condition2: 주요 도로 또는 철도와의 인접성 (두 번째가 있을 경우) |
GrLivArea: 지상 생활 공간 면적 (평방 피트) |
||
BsmtFinType1: 지하실 마감 유형 1 |
GarageFinish: 차고 내부 마감 |
||
BsmtFullBath: 지하실 전체 욕실 개수 |
BsmtFinType2: 지하실 마감 유형 2 |
GarageQual: 차고 품질 |
|
| 4. 거래정보 | BsmtHalfBath: 지하실 반 욕실 개수 |
Heating: 난방 유형 |
GarageCond: 차고 상태 |
MoSold: 판매된 달 |
FullBath: 전체 욕실 개수 |
HeatingQC: 난방 품질 및 상태 |
PavedDrive: 포장된 진입로 여부 |
YrSold: 판매된 연도 |
HalfBath: 반 욕실 개수 |
CentralAir: 중앙 에어컨 설치 여부 |
|
SalePrice: 판매 가격 (목표 변수) |
BedroomAbvGr: 지상층 침실 수 |
Electrical: 전기 시스템 |
|
SaleType: 판매 유형 |
KitchenAbvGr: 지상층 주방 수 |
KitchenQual: 주방 품질 |
|
SaleCondition: 판매 조건 |
TotRmsAbvGrd: 지상층 방의 총 개수 |
Functional: 주택 기능성 평가 |
수치형 변수 확인
부동산의 외부적 특성으로 분류된 칼럼에는 총 13가지 칼럼이 있습니다. (목표 변수인 SalePrice를 포함하면 14가지) 먼저 수치형 변수와 범주형 변수를 아래와 같이 분류하였습니다.
# 수치형 변수(3종)
basic_cols_num = [
'LotFrontage', 'LotArea', 'SalePrice'
]
# 범주형 변수(11종)
basic_cols_cat = [
'MSSubClass', 'MSZoning', 'Street', 'Utilities', 'LotConfig', 'Neighborhood',
'Condition1', 'Condition2', 'LotShape', 'LandContour', 'LandSlope'
]
먼저 수치형 변수의 분포를 확인하기 위해 히스토그램과 박스플롯을 그려서 분포를 확인하였습니다.

LotFrontage(부동산과 연결된 도로 길이), LotArea(대지 크기) 두 피쳐 모두 일부 극단치가 나타나고 있어 이상치 처리가 필요하였습니다.