请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3491|回复: 5

【R语言】回归分析案例:北京市商品房价格影响因素分析

[复制链接]
字体大小: 正常 放大

1158

主题

15

听众

1万

积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-27 14:50 |显示全部楼层
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    2 l2 x' r) A1 o# B! {3 `% k; t7 A& M4 f

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    & o; c  d4 Z( ?6 x: z# |6 n5 I9 z这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

    首先对房价进行对数变换,解决异方差问题:

    9 i* V" V4 p) ^, B' i2 z" O4 ~
    行描述性统计分析,各连续型变量之间的相关关系如下:
    - K! x4 ^# x4 J9 @9 U8 L% y* A6 ]' K

    名义变量的EDA一般做箱型图。

    模型按照全模型-变量处理(分箱等)-变量选择-回归诊断等步骤建立。

    & \" Y, m8 p* J

    # }$ u; e2 O6 r3 i
    " y& u5 l0 j1 u3 k$ x最终模型残差图:
    1 d2 _/ V. v2 f- @7 I
    3 c) p1 W  r* u8 L; ]( K
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    # s! R- i( ~* ~属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    5 c9 V$ s- F+ j6 ~3 _+ t6 \属性变量的具体影响在此处分析略去。
    , ]+ S3 e& `0 S6 m8 K: Z6 A+ Q连续型变量的影响主要为:2 u9 X& {; C2 j4 ?2 T) E
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;" A7 y- J; ^9 a9 W+ t
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;" ?" s, z+ `  t* X
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:) A7 f% Q; o, l8 \
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;( d. ^6 n) m+ V* g; C
     容积率与环线之间存在着交互效应。
    % ]$ k& X( W# v9 W1 xrm(list=ls())                                                                                #清空当前工作空间  s& u2 Y. h) r; r
    setwd("D:/回归分析")
    9 J, K! C6 u% u" Q- u* ]a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a7 f% x3 L) f% j+ W) V# O/ o
    View(a)
    " Z0 M8 x  [/ v' d9 t, f0 Nattach(a)
      D" ~8 R6 _, n$ i. U+ @% f; fnames(a)
    7 @1 d3 d. \  `$ C: ^0 v/ I% g: O/ }0 h; W+ }: ^- @) f
    . G2 G0 S$ u# `% K1 h3 Z" V; J" |
    ##描述性统计
    4 R0 F8 d1 a& ]9 n  G! v2 P% T, K2 K1 t( U6 H/ i8 d2 K

    1 k4 B. J8 l1 }8 R4 O0 a#未做处理的响应变量分布情况$ r4 r& i6 f- O0 S$ ?
    par(mfrow=c(1,1))
      A9 b3 u# n: Y5 G1 O/ Phist(price)
    7 T" \- W9 b5 @0 jsummary(price)        #查看响应变量的描述统计量; V( G9 i7 V6 v8 M
    #连续型变量描述性统计" W! \2 \9 P: G2 }
    windows()
    $ w$ g+ ~; ]3 J. o( Hpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    ! J( e! B: m; C7 F+ ^par(mfrow=c(2,2))        * ]. R  s. h  S: w& k  P6 X2 b$ D
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图: u5 g- e$ c$ e5 c  L1 e+ X
    plot(lv,price)) d4 i- v. p  F+ Y) a
    plot(area,price)4 E0 N9 f: c  W3 F$ T) W  z8 D3 H
    plot(ratio,price)
    4 Y7 u/ U- S6 o- qsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    3 s9 g) r! W4 Ocor(a[,c(6:10)])      #查看连续型变量的相关系数" S4 k* p+ a# x" V& P
    #属性变量描述性统计4 c9 l% L+ l3 `+ C
    windows()7 R# Q( b7 _5 w( F
    par(mfrow=c(2,3))                        6 u5 b/ E" v5 y+ j5 `9 s
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图, r& J) E: n5 c$ i
    boxplot(price~wuye)                                                                       
    , W+ |" _5 I7 K* @* q% Nboxplot(price~fitment)       
    1 i/ _( Z- f0 F0 |5 s7 zboxplot(price~ring)        1 f! X( `( H6 |4 v2 j( y
    boxplot(price~contype)" w4 ^3 D! ?. @; d$ s2 r$ C) e7 |# J1 x
    2 {  v1 z7 w6 M4 e- z# G. R! v
    % D, {: ]! _; i: A' C( _( q
    : e! ^7 R* h1 ^7 R9 M+ s. G% j8 q

    $ l# |% o; O5 @3 A8 t1 i) }##模型建立7 m9 f& z9 q, z
    : `# A8 R+ ~) [; `8 `, ]* M! S8 f. M" n

    / l& O* o) f( q7 e& P- N1 R#在方差分析模型基础上加入连续型变量0 x- x4 e1 x) F" s; z
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)8 a7 Y: Y. a- _3 v7 _
    anova(lm1)                #方差分析
    0 ~( d) h  l, J; c9 R# e  asummary(lm1)              #模型参数估计等详细结果
    * J' k1 Z4 s1 n- s$ uwindows()9 m& A  d# Z# |3 H, t, X
    par(mfrow=c(2,2))0 \: t+ d. l& M
    plot(lm1,which=c(1:4))    #回归诊断做残差图7 h6 G6 `' P* Z* w  E; h& _

      [7 ]7 }" n4 H( P
    5 A- L& \2 j# x; V  x8 k
    ' M3 U6 ]5 k9 m
      A! S2 s, f. ~0 K3 O, x& J
    ##变量处理: p2 k+ v, L  u! @" n0 o
    . O9 n3 u1 Q7 y2 L
    & |$ }. r4 c1 u8 T( P
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    . T6 [4 C1 `7 [% _##对容积率的处理
    ! E$ u. @% V" A$ S# x1 {7 S" bwindows()
    ( \2 W: @5 m  Y2 ]8 W+ xn = 45 x, v  Z/ w4 }5 j! z9 N4 V3 Y
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        3 X' P+ ?. H5 _! a1 O6 ^
    table(ceiling(rong/n))                                                #容积率各分组下的样本数: }3 X- ?: h$ J: y: T- E
    ronggrp=1*(rong>n)                #进行二分类5 v* B- @" V+ C; s9 D3 ~
    #ronggrp=ceiling(rong/n)       
    6 S# p1 Z0 w" _5 itable(ceiling(ronggrp))           #容积率二分类下的样本数5 ?  I! ?! _* R/ ^  D' }6 N# Z
    windows()( ?* j7 B& m$ p8 Q# p
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图- v( _' i8 n. O1 ^: m
    windows()* [( h( w, s6 x( [& a1 ?
    par(mfrow=c(1,2))
    / w" N2 i; [4 e7 C! _( sboxplot(rong~ring)                #容积率与环线箱型图
    ( n5 X: F# g$ n% p4 Mboxplot(price~ring)               #房价与环线箱型图 / W5 q, t0 ^; l+ q. c2 a4 K% |. `7 _
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    # J. Z, i% ]6 ?5 j. ^$ y, M) u1 l# _lm2=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+as.factor(ring)*as.factor(ronggrp)+lv+area+ratio)$ E4 t: B3 w" G: M# a
    anova(lm2)                #方差分析
    2 |* [0 }* o" K- w' E* [5 m% Z5 Ysummary(lm2)              #模型参数估计等详细结果
    3 \- ]' Q% p3 `9 Ewindows()5 C8 c6 E/ a# T  v" D
    par(mfrow=c(2,2))
    , I7 o$ f+ l7 }! P* o/ r5 kplot(lm1,which=c(1:4))    #回归诊断9 r  D3 h! @8 p
    " I( i  o' ?; ]* F: J$ h/ n2 E

    $ |+ R& q+ P/ H; b! b0 O/ C2 [##对小区面积的处理
    5 a) \8 q1 H: Q7 }" G4 ksummary(area)
    7 D7 R' B7 Z, Z* mplot(area,price)0 `  D: C7 C4 m+ S# N: ^
    windows()
    % o- o5 n: {3 \4 t6 v& G9 O; \n = 150000# s( Z* F- {# ?" a8 O
    boxplot(price~ceiling(area/n))                                                       
    : G! q$ W+ M( mtable(ceiling(area/n))                                                               
    2 f1 a" D$ G3 j) q" p! Iareagrp=1*(area>n)* t( v9 C9 ]( X: D" S4 x0 ]
    table(ceiling(areagrp))
    0 S; k# w8 t# @: W: p  D' u0 V' \boxplot(price~ceiling(areagrp))# D0 ]& V$ j5 Q0 q  k1 M0 i
    #加入小区面积分组的模型& g  e# m- f6 i
    lm3=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+as.factor(ring)*as.factor(ronggrp)+lv+as.factor(areagrp)+ratio)3 \; r$ [: U% P( G1 |5 F
    anova(lm3)                #方差分析
    , P& B9 t" o- O3 R# G- ^summary(lm3)              #模型参数估计等详细结果
    # F! @: v& }% X) \6 @; e* Uwindows()& A, a* y) b6 V) h/ B
    par(mfrow=c(2,2))9 P* @2 b0 H2 c" g
    plot(lm3,which=c(1:4))    #回归诊断3 C- I: O3 g- }5 s' j

    % Y9 O5 ^: t, r' U" ?- F3 I7 n

    / u0 L& Q+ R  R$ v0 h8 t##变量选择
    + U6 y% m- k0 ]; r1 F/ v
    - k8 E8 @# m; o4 \! k4 u/ X; p- s# ?

    7 l# {# R- p5 p4 Q: K# r0 Q##AIC准则下的变量选择7 x: C' Y" ]8 C/ n. B! u1 M6 r
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    3 e- S8 U& V8 w2 Z* S! Asummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节' s2 g! g6 L& A+ ^* h1 K+ Y. A
    ##BIC准则下的变量选择
    . {- l' b' ~5 h1 ]lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    $ U) I5 L  a& Y6 g% J) F8 nsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ! u# f/ |8 @1 X
    8 ^5 o: R8 c# `6 z

    ) O* [) N# }2 r& i! }5 r7 }#选用AIC准则下的模型进行回归诊断- l7 ^2 B2 o, `& ^' R- S! \
    windows()3 a- o) T: W& f) C! I; e
    par(mfrow=c(2,2))
    ! F6 M/ z; [+ d4 Qplot(lm4.aic,which=c(1:4))  - ?8 M; Z: n9 H6 l3 y+ I

    - T- I) a) g  G

    / ~9 y- e, _) ]8 z& `5 K/ k% N: u9 m/ v: X$ W

    0 {! I' I6 Y* Q; J8 Z##数据变换
    2 l0 B. L1 v) f; E$ k+ D3 v, p% ?  N# z# j
    ! p0 {& W" t5 q# x- X1 }
    #box-cox变换- ~# V) r& e4 ~  r7 D! a
    library(MASS). ~) a  H2 Y! e) B
    b=boxcox(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio, data=a,lambda=seq(-3, 3, by=0.1))3 e5 G) l6 ~  P7 D' w- m! J9 e
    I=which(b$y==max(b$y))  #定位似然函数最大的位置8 [  h1 X- @7 q  X1 p3 o
    lambda = b$x[I] #精确的λ值" ?5 P5 P+ ^' |1 }9 i
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    9 t' F' D  h8 J. e; \logprice <- log(price)( Q$ E2 H* Y" t; Y$ P$ F
    hist(logprice)8 t3 V! j" U2 y; r
    ; o7 u7 N% L9 `/ }

    0 {% j0 r% n/ L/ u+ i5 b  {##最终模型与诊断
    2 ^7 @- D& H; O8 V0 q. \
    : a- M% D2 l( o

    7 X! k7 G: v* k0 Olm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)# ^/ y& I; u- D3 @1 s, f
    windows()
    : f0 [; g' d5 E/ Q8 q6 a# npar(mfrow=c(2,2))! i- G: s# ^4 d7 t! I( T9 H
    plot(lm6,which=c(1:4))
    , ]- O* s8 D0 {  Ranova(lm6)! H! l/ x0 T- _' x  F( i3 u) j  I
    summary(lm6)$ s+ g; |0 ^6 n. U# l

    * z& R! Y3 y6 c- I7 {
    3 g# x9 w8 e9 J' e; q+ k' |! I# K请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    3 D# p- N; ^7 |+ M* C# j7 p
    + Q" b9 T( [# ]

    4 H& I  T/ N* W
    8 o9 M9 M. i' B3 t$ E' [3 x# q0 i. v$ F" S- _1 a3 Q
    zan

    9

    主题

    14

    听众

    610

    积分

    升级  2.5%

  • TA的每日心情
    无聊
    2024-3-26 09:19
  • 签到天数: 623 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有" y! [1 A' R* a4 p

    9 _+ e) Q" v& P

    点评

    1047521767  有啊  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    无聊
    2022-2-19 17:40
  • 签到天数: 30 天

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    610

    积分

    升级  2.5%

  • TA的每日心情
    无聊
    2024-3-26 09:19
  • 签到天数: 623 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    " g! Z1 Z6 k. {/ r' R3 h5 O: y" R- b& v4 y

    点评

    1047521767  我每天会发一些好资源的  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    3 B! A: F% ~5 \  N太好了,又认真的看了一次,发现自已差太多了
    + Z* D/ C$ b( V0 C2 E2 k9 j( w
    我每天会发一些好资源的' y; X3 s: K  r5 d5 @
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

  • TA的每日心情
    开心
    2023-7-31 10:17
  • 签到天数: 198 天

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32   l+ o7 R) {% G' H
    一定会认真的看看,发现这是R的,有python的分析没有

    . w" A4 L  e, J5 d; P- v- C有啊7 \( z- n8 y8 f" j9 h0 m9 W+ V
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-3-29 14:17 , Processed in 0.571080 second(s), 79 queries .

    回顶部