【python数据分析】练习4:线性回归—二手房价预测

本文通过Python进行二手房房价预测,采用线性回归模型,分析影响房价的各个因素,包括区域、地铁、学区等。通过对数据预处理、描述性统计和建模,得出结论:学区和地铁对房价影响显著,而卧室数量影响不明显。最终预测一套70平方米的中层房源在东城区的价格约为546万元。
摘要由CSDN通过智能技术生成
数据集及源码https://github.com/JCATHoney/python-data-analysis

一、问题描述

在对房价的影响因素进行模型研究之前,首先对各变量进行描述性分析,以初步判断房价的影响因素,进而建立房价预测模型

总体步骤如下:
(一) 因变量分析:单位面积房价分析

(二) 自变量分析:
2.1 自变量自身分布分析
2.2 自变量对因变量影响分析

(三)建立房价预测模型
3.1 线性回归模型
3.2 对因变量取对数的线性模型
3.3 考虑交互项的对数线性

(四)预测: 假设有一家三口,父母为了能让孩子在东城区上学,想买一套邻近地铁的两居室,面积是70平方米,中层楼层,那么房价大约是多少呢?

二、数据集

研究二手房价的影响因素,建立房价预测模型,数据存放在“sndHsPr.csv”中。

变量说明如下:

变量 含义
dist 所在区
roomnum 室的数量
halls 厅的数量
AREA 房屋面积
floor 楼层
subway 是否临近地铁
school 是否学区房
price 平米单价

三、描述性统计

3.1数据预处理
  1. 主要关注金额,日期等字段的处理
  2. 把握整体样本量,后续合理采样
  3. 将城区变量转换为中文
import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
import matplotlib
import seaborn as sns
import statsmodels.api as sm
from numpy import corrcoef,array
#from IPython.display import HTML, display
from statsmodels.formula.api import ols
import os
os.chdir(r"C:\Users\Away\Desktop\笔记\数据分析")
# In[1]:
import pandas as pd
mdata = pd.read_csv(r'sndHsPr.csv')
mdata.head()
#%%
#1、描述性统计数据预处理阶段
describe=mdata.describe()#价格基本情况
# count     16210.000000
# mean      61151.810919
# std       22293.358147
# min       18348.000000
# 25%       42812.250000
# 50%       57473.000000
# 75%       76099.750000
# max      149871.000000
print(mdata.shape[0])#数据量:16210  这里为什么要统计数据量呢?因为做检验时数据量不能过大,一般不超过5000,否则p值会失效
#%%
## 1、描述性统计
#数据简单处理,重点关注价格日期等字段
#查看各个字段基本情况
data0 = mdata
describe=data0.describe(include="all").T
#print(data0.dtypes)
#价格转换为万元
data0.price = data0.price/10000
#type_dict = {'借':'out','贷':'income'}
#card_t3['type1'] = card_t3.t_type.map(type_dict)
#将区域名转换为中文
dist_dict = {
   
        'chaoyang' : "朝阳",
        'dongcheng' : "东城",
        'fengtai' :  "丰台",
        'haidian' : "海淀",
        'shijingshan' : "石景山",
        'xicheng': "西城"
        }

data0['dist']=data0.dist.map(dist_dict)

中文和负号的显示:

matplotlib.rcParams['axes.unicode_minus']=False#解决保存图像时负号'-'显示为方块的问题
plt.rcParams['font.sans-serif'] = ['SimHei']#指定默认字体 ,解决不能显示中文字体的问题#
3.2 变量描述性分析
  1. 因变量 price
#因变量图形(主要看看形态)
data0.price.plot(kind='hist',bins=20,color='lightblue')#右偏严重
plt.xlabel("单位面积房价(万元/平方米)")
plt.ylabel("频数")
print(data0.price.agg(['mean','median','std']))  #查看price的均值、中位数和标准差等更多信息
print(data0.price.quantile([0.25,0.5,0.75]))
pd.concat([(data0[data0.price==min(data0.price)]),(data0[data0.price
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值