QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析; P" p: D; G8 d8 `. a) `

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    - M! C* x- b3 P1 s1 h这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ' l& p7 N5 r" b- {* \7 Z
    行描述性统计分析,各连续型变量之间的相关关系如下:8 Z( D6 x  E3 z. j0 r+ M: B0 E5 y
    / a6 V* D6 {8 H% k4 X; B

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

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

    # E7 q! C1 f, b8 \" R

    ( L; V: B; o4 v1 T" L$ m" ~0 c
    2 t6 r1 K; T( `2 x8 Q; Q最终模型残差图:3 P2 V  U' }' M; G1 x
    1 T* x; M% Q8 h  S: ^8 M
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:- k9 U- U2 R! v9 U! C2 C" J
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    * x- C/ r3 W" F* \# z2 y属性变量的具体影响在此处分析略去。2 N% u( J8 F; y# z7 \' H8 B
    连续型变量的影响主要为:
    " B! |; ?7 c# w% H 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;" D" t  x  G7 O8 ~
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    % r4 t3 ~2 X/ _$ H$ K+ C同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ' c. M% x4 f8 } 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    2 o3 u* ]5 j/ k0 |; ] 容积率与环线之间存在着交互效应。, B/ [) `! `; ~2 w1 p( K) Z8 {9 X; ]
    rm(list=ls())                                                                                #清空当前工作空间
    / f! T  r# d2 Y" Rsetwd("D:/回归分析")3 E/ k% s" A$ r
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ( }" z& f$ b/ F5 ~' |1 }* z6 b; uView(a)* ?% ]0 ~& f8 v7 V( |
    attach(a)& s# J  p# d- e  Y- j" P! Z
    names(a)0 {0 S9 T$ \6 _# L1 @+ k- w% r

    ) L+ l" y6 N3 H

    0 _; a: C( J8 X) [7 u##描述性统计* b7 {/ F# U! m1 ^
    " J  k0 P  D  V9 _
    8 D: O* B  a. y
    #未做处理的响应变量分布情况% o4 _$ S# d& Y% l: r
    par(mfrow=c(1,1))
    % {0 x4 C2 u7 k/ g" Rhist(price)
    5 f  N! I0 H& M  T8 k, b$ ~summary(price)        #查看响应变量的描述统计量# k9 ^  Z3 U8 S
    #连续型变量描述性统计
    8 O9 t9 V- W( i* A  Wwindows()' O9 {! S. }" v+ i" S
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    : }) z# }6 W% _* l& R8 ?par(mfrow=c(2,2))       
    . t7 b- v1 W; Qplot(rong,price)      #每个连续型因变量与响应变量间的散点图& D0 R" b; U% {/ A
    plot(lv,price)5 }; f: k/ y' w: b
    plot(area,price)" H$ s+ l1 X, H6 r1 _
    plot(ratio,price): K$ ]1 m; G5 p* r
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量" y7 p! L+ f% m: B# ~
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    8 l  d6 m) \0 e( k# W$ r# q, A2 O#属性变量描述性统计
    1 L9 |7 P& e$ L, F8 _windows()
    ' _) @; r: a% Ppar(mfrow=c(2,3))                       
    : c, S) H% Y1 [  _# ]5 `boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    6 G, L' x% s7 S. _8 Tboxplot(price~wuye)                                                                       
    $ Y: F, J+ P6 ~4 p, Wboxplot(price~fitment)        & ?3 k/ P8 b# _
    boxplot(price~ring)        5 j( O2 e% p$ n% t) H  F; W- l! f- g
    boxplot(price~contype)
    9 }* X( P; b; H3 H0 l4 V1 G& T# f: M/ i( d0 s

    . q' O: Z; b1 a# ^; z1 j9 H
    % h2 _: x# D) Q3 @

    2 q" ~+ z+ q7 d7 r1 b##模型建立
    " R4 @9 N, {6 J+ u; H3 u9 N
    : |3 `" ^- e) ?! ^4 x

    ; j/ Q) V5 ]) y0 |#在方差分析模型基础上加入连续型变量+ j4 E+ Y5 z8 ]
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    ; f+ j6 H- ~  W9 H/ b) |anova(lm1)                #方差分析
    : _  ^4 g9 ]% nsummary(lm1)              #模型参数估计等详细结果% |* a1 O' ~- ?+ P. \# z% |$ L$ g7 E
    windows()
    ) N" i6 s  f1 s% A4 P) h* ]par(mfrow=c(2,2))( m) ], F" r) Y; o* [# G
    plot(lm1,which=c(1:4))    #回归诊断做残差图. f. N# q& Z1 Q: l

      n8 x6 a5 d! I% Q
    - n* b3 q/ U! q& ^
    , V' C8 m3 U( x. `1 D- r: P/ ~
    # C* V. I2 l8 F5 X; z  ?
    ##变量处理; M" U3 F% |: Y+ P/ W

    & J0 s4 @8 ?, s4 a! M

    + o, S% ^  b1 Q/ [###对不显著的变量采用分组的方式希望能达到显著的效果
      X4 n9 N. Z' @% s5 t0 x* Y: O##对容积率的处理
    6 f" B0 H, e5 j3 t. }windows()
    + i. _+ D$ w3 M& Y& P) ]n = 4
    ' g& P9 }, p6 Q, F/ X& S2 Yboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    ! h! r3 q% o; o% J5 rtable(ceiling(rong/n))                                                #容积率各分组下的样本数% @1 @# u+ ]& b* T" G' L
    ronggrp=1*(rong>n)                #进行二分类+ l- @/ N0 s1 b& x9 @) T* }
    #ronggrp=ceiling(rong/n)       
    8 t: T# B3 Y* [6 i1 J. ~2 d! htable(ceiling(ronggrp))           #容积率二分类下的样本数" Q3 V. b# ~% d7 i: I2 `
    windows()
    1 I& F- R( n' p: d" Gboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    ; ?3 {' Y' w( O5 X5 t# Swindows(): L$ Y$ U/ f2 Z9 e7 k. z
    par(mfrow=c(1,2))
    & ?$ U$ o' R+ ?' b4 M2 \5 Nboxplot(rong~ring)                #容积率与环线箱型图
    9 I6 O* t8 a1 _8 Lboxplot(price~ring)               #房价与环线箱型图
    1 N+ M7 @$ _1 k) M$ B/ h5 e" Y#加入容积率分组和容积率分组*所在环线交互因子的模型" `8 i2 o! S# |2 r) _$ z& e- l5 q/ v
    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)
    3 Z8 |2 j5 \0 H" u, W: p) X' z  canova(lm2)                #方差分析' {- `! x; K, \
    summary(lm2)              #模型参数估计等详细结果, j( u5 Z9 l8 e: e$ F  A2 z. y
    windows()
    0 K, G* n# S+ H9 O$ Mpar(mfrow=c(2,2))6 O8 d3 o! n6 O9 r: ]- }
    plot(lm1,which=c(1:4))    #回归诊断
    7 n0 C1 @) Y! y7 s% c# W' X6 ~) X1 }% u1 f+ J
    8 X1 v! l; P) A2 ?' W) `$ m
    ##对小区面积的处理* M  P; v/ H8 K. x4 g
    summary(area)
    - u2 I! L: j- \3 S! I* Q! `plot(area,price)- j0 G; }5 ]. [' o5 @% J4 z% h' m* S
    windows()  {3 M$ }% j3 i5 a7 k9 f
    n = 150000
    6 N% U7 B: i$ h" q& e- v3 N) Mboxplot(price~ceiling(area/n))                                                       
    ; _7 N' G( U6 E- H0 F/ W( x: utable(ceiling(area/n))                                                                / \7 ]3 l0 A( j1 e9 G( e
    areagrp=1*(area>n)
    * }" Y8 K# w3 \3 atable(ceiling(areagrp))
    8 E! A2 \- e7 yboxplot(price~ceiling(areagrp))8 `! c( M. T( b- @
    #加入小区面积分组的模型
    " l; @* J1 V5 Llm3=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)
    . F6 u0 M& ~; u8 {% u; ~: A) Eanova(lm3)                #方差分析# N' y6 Z  M1 b, @6 m( U& I( y, q& Z
    summary(lm3)              #模型参数估计等详细结果
    4 @: M9 T  D: e8 r, Ewindows()2 S, k5 V4 B% z
    par(mfrow=c(2,2))
    4 t) \; y/ j  `. n& D0 r) \plot(lm3,which=c(1:4))    #回归诊断
    8 ~* K/ i2 U8 t/ ]% [2 G3 x, x! o. v8 L. g6 ~1 d8 i0 w+ e. t

    0 V5 ?" V7 L+ F##变量选择0 r. b& K4 c& }$ V$ N0 N

    5 i0 |. M/ p/ p. p5 }$ H- s& T. ^

    8 c$ O! T" [8 ?5 |- s##AIC准则下的变量选择! E4 l9 U& z2 V) Q4 C% |
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic# m' I+ D, I! Y1 D( f4 S5 x
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节: H; N/ ^) P5 K4 k) E7 m. n
    ##BIC准则下的变量选择
    / G' m% V  u9 M+ z& q1 f% l" ^lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic, ]7 Z! z" M% s9 \4 T% p- f
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节5 O* ^. @; j' I% t* L- ^8 m

    ! ?1 {- R/ \/ \8 R  r8 y- J/ r- H
    . q& Q9 u- D& U7 w; @0 C
    #选用AIC准则下的模型进行回归诊断1 S3 w' V1 y2 D; I  T
    windows()  F/ F' }: T1 X4 o1 A4 K5 M
    par(mfrow=c(2,2))  U, p4 v- x8 Y6 n( a
    plot(lm4.aic,which=c(1:4))  / P! n7 s# F9 Q  `# m9 `# P: I- m

    9 ^, v! k6 ?6 u3 X0 C- \* [3 W5 u
    4 ?/ L9 j, J& L3 x' \3 J) P

    1 d. y6 x/ H1 {  c7 b( y% o* w. L. z. v

    * ]4 }  b. S1 O  R$ X##数据变换
    / J, @. x# v0 V% @
    ( ~1 {* ?7 H! Y% `1 ]

    - ]6 p: U$ C* _5 x8 n#box-cox变换
    , b1 ]& P6 ^, ]. O" g( i) jlibrary(MASS)
    & ]5 o- K* r  K( s- G4 Eb=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))
    . v, V" |) q3 [  RI=which(b$y==max(b$y))  #定位似然函数最大的位置
    & R. W* ~/ G6 @6 h, C1 r$ glambda = b$x[I] #精确的λ值
    $ @+ H) p1 c" E& |# y; I% `#λ接近于0,为模型简洁性,可以直接进行对数变换
      q8 l+ {8 l* x9 _/ Y6 Z8 ^! Rlogprice <- log(price)
    + T* |; q- H) y' b1 D8 xhist(logprice)
    / ?1 g/ w: J# G- x# e
    5 W! o: j! h1 H4 S' m% t: |1 I1 X; |

    - i, O5 Y9 A+ v, i3 L6 s. A0 N- M##最终模型与诊断$ e# K' b: J( O  x4 @
    ! d: `" C6 B1 _, s( d9 ?0 Y4 ?

    ( P& N! s5 K" ]' }. S. q9 Llm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    5 f( F3 V( E+ Nwindows()8 f8 R, i4 w" i9 H: i+ |% j5 F
    par(mfrow=c(2,2))) N1 l% \  a4 e/ J+ |- D
    plot(lm6,which=c(1:4))" P+ E9 W$ n" }+ t1 S
    anova(lm6)
    8 j( o8 j  Q* U7 C6 U0 X& isummary(lm6)7 w/ B& E( A% D$ o& K7 Y

    5 v3 g: U: j! |2 ?% a" A3 |
    ( Y1 ^* s/ q2 g5 A6 }8 I) X请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    7 r" p4 Z7 k4 p# F

    . k. ]; n2 ?+ y) b5 y2 t" }8 Z0 [/ S( r% C: U+ N. q0 T; I
    0 P$ ?( {8 @5 \+ o
    2 c- B. y4 v. ~/ _
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    : x1 @& f7 g, r# u* u一定会认真的看看,发现这是R的,有python的分析没有
    ) b$ }' c# u, D4 ]  @$ Y1 ^
    有啊# W6 g6 ~5 W0 j( E$ @- c
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18 ) J# C! t0 y- Q4 W/ K! {" X$ S
    太好了,又认真的看了一次,发现自已差太多了
    - ~) s: n. g' l4 _4 ?1 }
    我每天会发一些好资源的- j6 Q! y: ~9 b
    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    / K$ H3 I: S* Q( b  |" J
    8 [. F6 |4 V& H3 f# ^

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    : x# j1 M. x8 G2 v' l: D
      A$ D& s) J* g5 ~

    点评

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

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 10:16 , Processed in 0.511298 second(s), 80 queries .

    回顶部