QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5615|回复: 5
打印 上一主题 下一主题

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    3 y3 ?* d- ?. l" X! E3 _

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    9 u3 o9 j" ], O& H6 u这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    3 s, {2 G' M' N9 R. j" `% d( S0 n# Z, z
    行描述性统计分析,各连续型变量之间的相关关系如下:
    % J8 l: ?( ]& e2 n: N9 u1 s0 D( V' Q  @+ S

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

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


    + u7 o9 s7 w* r) N% l) v  j6 Y) x, z" a+ B+ b1 e% I
    9 q. i. d; p- \* ~5 o, S, L( o
    最终模型残差图:/ k. S3 w9 T. U4 V2 T) i

    # C$ B' G  U) d" }* o% i, b6 u
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:" `2 I- Z  m9 L5 w2 f
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比6 K2 @, K7 l% q* l" B
    属性变量的具体影响在此处分析略去。
    4 @  A! S. ~: p5 E' H连续型变量的影响主要为:0 F5 F) Q: L/ t2 c: t
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;( j+ W6 w" g' v/ M: z
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    6 x- s- T6 X" \' R, V: ]同时,原本为连续型变量的容积率经过离散化变为属性变量后:+ Q: T: d8 f; a2 r3 Q4 o
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;1 A8 q+ F. s& Y  u, O, g( G
     容积率与环线之间存在着交互效应。
    + m) M1 P, ]/ rrm(list=ls())                                                                                #清空当前工作空间
    + T* X* ]7 b$ x9 g2 B3 W+ g3 Wsetwd("D:/回归分析")5 j# i+ `) a- n9 d0 t
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a6 `2 C; C# Q; [) d5 ^+ u
    View(a)
    9 l, e/ [# y4 e  ~* ~. oattach(a)
    ( v: |, N4 q- ]names(a)4 u/ t0 f1 X  |) y3 ?" K

    3 d9 T% [( ~6 I; d
    " t" K2 k- j! P1 [- e2 b. B" u1 l, z
    ##描述性统计
    9 A5 z6 g& L, V' V( P7 O2 s/ d! d- i* I+ D. i( Q* R
    & v" N+ D; x# W3 [7 c
    #未做处理的响应变量分布情况$ i1 Y; u: r' @: q& Q
    par(mfrow=c(1,1))8 o- A. M9 x+ }6 l
    hist(price)
    . B. |, L' z; D* H! _  ysummary(price)        #查看响应变量的描述统计量& H2 L: s$ U0 i" ~( l( j+ Q
    #连续型变量描述性统计
    3 B4 z! w( v; N1 b* _  hwindows()$ x4 Y) |. ^+ ]- |6 Q& S, Q% R: t
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图3 f6 Q+ F; J# \& U
    par(mfrow=c(2,2))        % y4 `! T! |8 T0 j) b# x
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    0 M- J$ L$ v" ^) E  E6 Jplot(lv,price)3 P' U+ ^" |  t& L
    plot(area,price)
    ' p1 G* B  I% J* d. pplot(ratio,price)- F, H: \/ m4 A
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    % b7 Y. e  Z0 N4 w4 p+ C; [cor(a[,c(6:10)])      #查看连续型变量的相关系数
    7 j, y/ }, O+ v. b, `. G6 q#属性变量描述性统计0 C$ d* v  Z  l9 p
    windows()9 M' K/ B1 P" l; n/ y, e8 G' s
    par(mfrow=c(2,3))                       
    5 [% U* m6 n( d, ]boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    8 Z0 @% K  |  `  j) aboxplot(price~wuye)                                                                        2 f) y2 @( `$ D- [
    boxplot(price~fitment)       
    5 z% {; o3 N) Y9 l' [: uboxplot(price~ring)        $ R  K& a4 n- [
    boxplot(price~contype); O9 p, f5 v. B& M

    ( p" m( @- V& I3 T5 C9 b

    1 z8 z3 U  O4 d
    / {+ X4 [9 P) |" A& k

    0 [' j5 E- i2 n) i* J9 y##模型建立9 Z/ }' X( [" V2 V  D( l
    7 l9 A0 N8 m$ r
    6 T# G! [, K. m% }( g
    #在方差分析模型基础上加入连续型变量
    7 {: e- D( |8 j( e8 ?/ X/ |7 [lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)+ ]1 G, N9 m) Y1 U$ i! d( U$ X
    anova(lm1)                #方差分析
    + I2 B; V1 Y7 T) X4 \3 [4 |summary(lm1)              #模型参数估计等详细结果: e% {4 c4 L0 Z3 x4 z! x) o1 H/ N
    windows()
    1 D% ~" R: P7 H8 k; p/ xpar(mfrow=c(2,2))* d8 E* u, H5 M/ c
    plot(lm1,which=c(1:4))    #回归诊断做残差图) J$ u  H* W. G

    $ g% z4 W' t3 S' J

    1 b" F3 h+ n9 D" I& C, C+ J( X0 c" w* a% W" A4 n
    " m/ a, n$ |$ g0 V
    ##变量处理
    ) ~: E4 X. c& f1 ^. P; W, J- t/ x: H5 S
    + u, n+ q0 J# t1 k
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    " \; V9 U9 s7 g6 s/ |1 t6 o##对容积率的处理
    , u' W2 c3 r1 jwindows()
    ) l! r$ C9 H" Z9 ?n = 4
    - G! L" T  D# f' N, ?boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    " Z0 s; B3 z, Ttable(ceiling(rong/n))                                                #容积率各分组下的样本数* _/ L8 {; \" @. G! c  ?6 ?$ Q
    ronggrp=1*(rong>n)                #进行二分类
    3 k# V. D3 Z5 A2 q4 {0 |. F( a#ronggrp=ceiling(rong/n)        $ H; b+ U+ y" O# j- c$ @9 t
    table(ceiling(ronggrp))           #容积率二分类下的样本数4 `0 r1 G6 F* R( p, L  o
    windows()
    ( ^  b1 c- t5 G9 }boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图& H8 Q/ t+ L  _( a# F6 M" V9 X8 }
    windows()! C8 r' j+ n4 {% P( ~7 K7 R. H# p, z
    par(mfrow=c(1,2))
      w% ?! p* ]4 i% X  T' h( vboxplot(rong~ring)                #容积率与环线箱型图
      D  {& b$ n" K9 T. s  B. Q' bboxplot(price~ring)               #房价与环线箱型图
    : f2 M( O$ _; b) J* b#加入容积率分组和容积率分组*所在环线交互因子的模型
    7 B' f$ }8 w3 [0 d$ H; u9 Ulm2=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)9 N2 P  \1 X5 o# V& X7 u
    anova(lm2)                #方差分析6 r! U$ x( y+ \6 g; Q4 E: }) `
    summary(lm2)              #模型参数估计等详细结果2 V0 C1 |9 V' f( x5 ~. i
    windows()
    6 h' g0 J% Z3 X% H* S$ q! npar(mfrow=c(2,2))! F1 `/ b. ]* Y1 w7 l2 @* O
    plot(lm1,which=c(1:4))    #回归诊断
    % A1 f& N+ u! d$ n' n1 j9 ^/ P5 H3 |
    ; x1 ]$ e9 y% W$ R6 n% j% u
    ##对小区面积的处理* U- X8 Z" s1 \+ C4 }
    summary(area)
    & |# K0 |% K+ W/ m- U- Vplot(area,price)
    % c  {8 P- f5 ]. }9 uwindows()
    1 b& w: y: E& N0 \( }n = 1500001 l1 c+ T( n1 [5 }
    boxplot(price~ceiling(area/n))                                                       
    % h9 |# G* O6 c+ W* p" ?table(ceiling(area/n))                                                                8 Y. J' s  K2 N7 ?) K  L0 [
    areagrp=1*(area>n)
    & s: e/ w- d8 A0 Xtable(ceiling(areagrp))
    + H( x2 I/ W/ n# J$ S# x; r; tboxplot(price~ceiling(areagrp))
    0 x: }9 G, Z; B( ]#加入小区面积分组的模型
    4 D' m: L, m+ f# y; S3 nlm3=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); l, F+ _1 x  ]
    anova(lm3)                #方差分析
    . c7 O$ G3 l6 Asummary(lm3)              #模型参数估计等详细结果
    + Y& y6 U5 p) \9 d" a) i4 xwindows()* |8 x8 b( c& A4 W! k* n
    par(mfrow=c(2,2))
    0 [* G0 u+ c5 ~- I& i- Pplot(lm3,which=c(1:4))    #回归诊断* D% `4 Z* N' X  C7 Z

    - r" e( y6 _- ]* s5 w
    $ Y- ], L, S# }9 ~$ R! g' b
    ##变量选择7 T& r- p4 ~: Q- B9 l% U) j
    ; r. r4 l  y+ S$ A- _) @
    ; f/ Q9 X4 o: u" u# }
    ##AIC准则下的变量选择$ Y: k3 U4 B% p3 W
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    5 y7 l) W% Y5 N! T- P* w" r; Nsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节) I# ~: C+ |2 [2 R5 \( q3 y
    ##BIC准则下的变量选择& E/ J1 e9 E$ ]7 b8 m/ D
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    : j$ ^* r& x6 osummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    5 ]& [* k- o2 s; @' e& X  U
    ( F8 K/ o& T) i6 j/ \% @7 x
    2 R7 J  x  _  v- p  D7 z
    #选用AIC准则下的模型进行回归诊断' i' ?+ D1 r2 a% V* y
    windows()/ U) f. q2 d" c* ?7 N; x
    par(mfrow=c(2,2))
    * H2 U" N% S; L! g; C( ^1 G  Jplot(lm4.aic,which=c(1:4))  
    ; n9 ?& b& u7 S0 |' `4 Q  i
    ) @6 {2 c' h! U( Z& }

    " z2 O. q" Q. F, F8 i5 P. F4 l
    / W& U7 n7 A9 g
    6 |8 l! i- d2 T4 ]5 o2 @; A
    ##数据变换5 d& Z  t( A5 ^) o1 q7 g6 J+ Y

    6 Z/ o+ @9 l6 k) M4 g" t

    & o; r0 V2 T8 A$ w& B/ E/ i" R( R#box-cox变换
    1 r1 Q( d1 `+ T! @- y: Elibrary(MASS)+ l' I. ^5 M& g% u
    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))- u4 r$ s) ]. {4 Q0 F& C' Q3 O# r  M
    I=which(b$y==max(b$y))  #定位似然函数最大的位置# g# r- ?2 y3 b6 w. H  D
    lambda = b$x[I] #精确的λ值9 i, s- p1 l/ I: c8 w/ J- v
    #λ接近于0,为模型简洁性,可以直接进行对数变换8 X% G: @6 W" M3 Y" e
    logprice <- log(price)
    ! V, h4 o. g- c) i, H8 Whist(logprice)" ]& V" w' b. B. u! n% q2 P( E

    & t4 Z! h) T5 T0 r- u

    ! [2 `6 _) l  v##最终模型与诊断5 y9 S  Q7 i. Z% o8 |

    ! v4 P" A4 u3 j; G) }% i9 D8 Q
      N3 a5 }4 D. }$ ~0 e8 C( i: I
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    , U; ^5 q$ R# O- }% u) D  @windows()
    1 N; ?) N! a& m3 T0 dpar(mfrow=c(2,2))4 g1 R% b4 r# _8 R/ }: x
    plot(lm6,which=c(1:4))/ E. U! |7 R( c, ]( T
    anova(lm6)
    % c5 e3 ?! A( F; [* b/ dsummary(lm6)
    ( V( ]# }+ U, C, S$ O' T4 T$ b% Z* q" P: y! g4 P. c3 H
    & n- j/ J. B7 R
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560; m- j1 `+ X  M) S$ \- n

    ' Y$ t0 y6 g( q6 E/ v+ y( y7 S3 M

    & Q. h# g. i) T2 I, J8 w. Z5 c- F6 Z( E
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    " U" e7 c& A6 F' Z8 @) v2 m
    + A; M2 n! J7 v6 e( g6 D1 N4 s

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    4 Q: p' K  v( a' r* n+ t% f; t) ]7 \6 W, L1 f

    点评

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

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    0 w/ A! y: M3 }& E1 z7 ]- k太好了,又认真的看了一次,发现自已差太多了
    ! o2 T4 G% ?6 q6 S
    我每天会发一些好资源的
    ' m4 v" i6 a& E( a! t7 G3 K! N. E
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32   E; [" z0 z: r, w- E! S
    一定会认真的看看,发现这是R的,有python的分析没有
    $ Y* v) b1 {6 q( Y
    有啊7 u; x, g( t( P+ s% }
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-4 04:57 , Processed in 1.391069 second(s), 78 queries .

    回顶部