杭州二手房描述统计分析

一、原始数据提取

       从链家网站上获取杭州九大城区的二手房在售信息,并存为csv文件。主要使用的工具包有:stringr,rvest,dplyr和xml2,ggplot2。辅助工具:SelectorGadget插件。部分代码如下:


       获取到的原始数据结构如下:去重后一共有24545条有效数据,部分列存在空缺值,已用NA填充。
在这里插入图片描述

二、数据分析

       主要包括数据的读取、各区域二手房的房源数量、房源单价、房源总价、面积等信息的分析。

rm(list=ls())
options(stringsAsFactors = F) 
install.packages("ggplot2")
library(ggplot2)
house_lianjia.new=read.csv(file = "C:/Users/Linda/Documents/house_lianjia.csv",sep = ",",header = TRUE,fill = TRUE,na.strings = "")   #将空值赋值为NA
str(house_lianjia.new) 
class(house_lianjia.new)
colnames(house_lianjia.new)=c("house_name","house_information","address","totalprice","unitprice","region","square","type")
#各区域房源数量柱状图
ggplot(house_lianjia.new,aes(region))+geom_bar(width=0.4)

> head(sort(house_lianjia.new$totalprice,T))
[1] 7000 5800 4500 3800 3780 3500

> head(sort(house_lianjia.new$totalprice,F))
[1] 33.7 35.0 39.0 42.0 42.0 43.0
> mean(house_lianjia.new$totalprice)
[1] 359.0199
> head(sort(house_lianjia.new$unitprice,T))
[1] 176282 145650 143596 141831 135965 130284
> head(sort(house_lianjia.new$unitprice,F))
[1]  8805  9002  9168  9876  9998 10106
> mean(house_lianjia.new$unitprice)
[1] 37381.88
#绘制各区域总价分布的箱线图
>p=ggplot(house_lianjia.new,aes(region,totalprice))
> p+geom_boxplot(outlier.colour ="red",outlier.shape = 1,fill="grey80")+ylim(0,4000)
Warning message:
  Removed 3 rows containing non-finite values (stat_boxplot)
#绘制各区域单价分布的箱线图
>u=ggplot(house_lianjia.new,aes(region,unitprice))
> u+geom_boxplot(outlier.colour ="red",outlier.shape = 1,fill="grey80")+ylim(5000,100000)
Warning message:
  Removed 35 rows containing non-finite values (stat_boxplot). 
#探究各个区域平均单价的分布情况
> avg_price <- aggregate(house_lianjia.new$unitprice, by = list(house_lianjia.new$region), mean)
> avg_price
Group.1        x
1   滨江区 41453.06
2   拱墅区 40541.72
3   江干区 37988.58
4 钱塘新区 26278.81
5   上城区 50359.54
6   西湖区 47262.94
7   下城区 41467.20
8   萧山区 29610.61
9   余杭区 25801.11
> avg_price2 <- aggregate(house_lianjia.new$unitprice, by = list(house_lianjia.new$region), fivenum)
> avg_price2 
Group.1      x.1      x.2      x.3      x.4      x.5
1   滨江区  13233.0  35088.0  40127.0  46829.0 102357.0
2   拱墅区  12581.0  34567.5  39231.5  45902.0 141831.0
3   江干区  12253.0  30107.5  36790.0  43841.0 126937.0
4 钱塘新区  10106.0  20924.0  26164.0  30021.0  56294.0
5   上城区  14988.0  42931.0  47170.0  54616.5 176282.0
6   西湖区  18394.0  37852.0  44532.5  54738.0 145650.0
7   下城区  16465.0  34869.5  41364.0  46846.5 143596.0
8   萧山区   9002.0  23825.0  28058.5  33407.5 114685.0
9   余杭区   8805.0  21059.0  24548.5  29456.5  77146.0

#个别土豪小区的存在会明显拉高平均单价,为了避免极端值对平均数的影响,这里用中位数来衡量平均单价
> x=avg_price2$x[,3]
> avg_price2$Group.1
[1] "滨江区"   "拱墅区"   "江干区"   "钱塘新区" "上城区"   "西湖区"   "下城区"   "萧山区"   "余杭区"  
> Group.1=avg_price2$Group.1
> data.frame(Group.1,x)
Group.1 x
1   滨江区    40127.0
2   拱墅区    39231.5
3   江干区    36790.0
4 钱塘新区    26164.0
5   上城区    47170.0
6   西湖区    44532.5
7   下城区    41364.0
8   萧山区    28058.5
9   余杭区    24548.5
>avg_p=data.frame(Group.1,x)
#绘制各区域平均单价的折线图
> ggplot(avg_p,aes(x = reorder(Group.1, -x),y = x,group = 1))+geom_line() +geom_point(size=2,colour ="red") + xlab('') + ylab('均价')+geom_text(aes(label=x),vjust="inward")

#各区域平均面积分布
avg_area <- aggregate(house_lianjia.new$square, by = list(house_lianjia.new$region), mean)
#绘图
s <- ggplot(data = avg_area, mapping = aes(x = reorder(Group.1, -x), y = x, group = 1)) + geom_area(fill = 'lightgreen') + geom_line(colour = 'steelblue', size = 2) + geom_point() + xlab('') + ylab('平均面积')

####统计户型数量最多的前10种户型
> sort(summary(as.factor(house_lianjia.new$type)),decreasing = T)[1:10]
3室2厅 2室1厅 2室2厅 1室1厅 3室1厅 4室2厅 5室2厅 1室0厅 4室1厅 5室3厅 
6996   4924   3289   3022   2361   2292    445    362    250    104
#二手房分布数量最多的前10个地方
> sort(table(house_lianjia.new$address),T)[1:10]

丁桥       临平     沿江南 滨江区政府       申花 萧山新城区       闲林       三墩       三塘   萧山市区 
765        750        731        710        706        639        569        552        548        537 
> house_available=house_lianjia.new[which(house_lianjia.new$totalprice<500),]
> house_proper=house_available[which(house_available$type=="3室2厅" |house_available$type=="3室1厅"|house_available$type=="2室1厅"|house_available$type=="2室2厅"|house_available$type=="1室1厅"|house_available$type=="4室1厅"),]
> nrow(house_proper)
[1] 18203
> ggplot(house_proper,aes(region))+geom_bar(width=0.4)
>ggplot(house_proper, aes(totalprice)) + 
  geom_histogram(aes(y=..density..),     
                 binwidth=30,
                 colour="black", fill="white") +
  geom_density(alpha=.2, fill="#FF6666")+geom_vline(aes(xintercept=mean(totalprice,na.rm=T)),colour="red",linetype="dashed",size=1)
> ggplot(house_proper, aes(unitprice)) + 
+   geom_histogram(aes(y=..density..),     
+                  binwidth=30,
+                  colour="black", fill="white") +
+   geom_density(alpha=.2, fill="#FF6666")+geom_vline(aes(xintercept=mean(unitprice,na.rm=T)),colour="red",linetype="dashed",size=1)

三、统计图形与结论

图1.各区域房源数量
图1.各区域房源数量

在这里插入图片描述
图2.各区域房源单价

在这里插入图片描述
图3.各区域房源总价

在这里插入图片描述

图4.各区域平均单价

在这里插入图片描述
图5.各区域房源平均面积

在这里插入图片描述
图6.总价500万以下的普适房源信息

在这里插入图片描述
图7.各区域适用房数量

在这里插入图片描述
图8.适用房总价密度图

在这里插入图片描述
图9.适用房单价密度图


由上述分析可知:
1、除了滨江、钱塘新区和上城这几个区外,其他区的房源数量大致相同,且可提供房源数量在2500万套以上。
2、从房源单价来看,上城区的平均单价最高,为4.7万/平米,西湖区次之。余杭区的平均单价最低,为2.5万/平米,钱塘新区次之。从箱子的长短来看,西湖区的单价离散程度最大,余杭区、萧山区和钱塘新区这几个区域的单价离散程度较小。(由于平均数受极端值影响,这里用中位数衡量均价)
3、从房源总价来看,滨江区的平均总价最高,余杭区和钱塘新区的平均总价最低。从箱子长短来看,余杭区的总价离散程度最低,滨江区和上城的总价离散程度最高。
4、从二手房的平均面积看,下城区平均面积最低,大概80平米左右,萧山区的平均面积最高,大概108平米左右。
5、单独分析总价在500万以下的经济适用房,上城区和滨江区的二手房数量最少,200万~300万的房源数量最多,单价3万~4万左右的房源数量最多。

说明:该数据取自链家网2019年6月27日的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值