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

QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-27 14:50 |显示全部楼层
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ! O1 P' R2 R5 ~

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    : D% P1 J/ k7 c- k0 g% `  c9 r* w) W8 U这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

      D7 _0 _5 J2 w- ]5 s( q
    行描述性统计分析,各连续型变量之间的相关关系如下:
    # ^7 g) O( d0 E2 P1 p8 Z$ _9 U( |/ t
    / c8 n: t/ j$ o  T  K% F, i0 j' g3 ~  Z

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

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

    9 h. H2 d) K9 i6 T. u8 w) i4 `

    $ j4 C. R: |" P! q0 D* B4 T7 |! y, W% f: z
    最终模型残差图:
    + ^* g  g" r+ m3 C1 Q* F! f. t4 g+ b8 A& i
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:! }5 s' ?) o9 n1 }! Q
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比( ^* M7 c1 C' R- }5 E
    属性变量的具体影响在此处分析略去。4 g  l( o4 b# L7 w/ v0 u
    连续型变量的影响主要为:
    - i8 ?' D+ t  @ 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    & g7 r. e8 Z: H 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;3 n* A. a! T$ n
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    " e- i* \" R" ^( W. x9 U 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    8 |" X/ r: J# q& |5 h9 @6 X' ] 容积率与环线之间存在着交互效应。; w, U6 H$ M& M- v2 _7 _
    rm(list=ls())                                                                                #清空当前工作空间
    . _% b" ^% ?# P5 Zsetwd("D:/回归分析")
    " m; Q' ^8 n2 Q4 |, L, ma=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a& v$ I# F+ W5 @! d8 S# L
    View(a)
    3 p1 x" o8 S( x; K. Kattach(a)) v. @3 B* |& K- j  o, L7 ^4 M, j
    names(a)
    0 {) F, P& I' k8 N1 q2 `1 z" O; x$ H- B! D9 F) O

    2 d" @& E9 f/ P$ p5 }0 W  f: k##描述性统计
    3 i1 z+ A' G7 l. M3 Y# M0 g2 I: s; _+ j4 e: y" Z
    : j" }& x: j0 w' A
    #未做处理的响应变量分布情况0 f& U6 J. W5 G9 r4 I0 M
    par(mfrow=c(1,1))# F9 o! N, D+ t7 x; E$ u; o: \
    hist(price)- n, g! n- {8 X# E7 o, @
    summary(price)        #查看响应变量的描述统计量
    1 a5 }* N* i/ _: `+ C& P#连续型变量描述性统计  E" @- d2 W/ l  A" A
    windows()
    " K+ p( G% {/ h; f* Fpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    4 P# w2 [0 x, c$ Mpar(mfrow=c(2,2))       
      O9 D; R& K& g3 Z3 U/ Eplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    4 L* Y" p, N/ D) B' n1 Aplot(lv,price)
      M$ M8 ?9 _: z, h( lplot(area,price)# I0 m- ]$ m+ c
    plot(ratio,price)
    - m$ _5 A8 o' [) X, G" ksummary(a[,c(6:10)])  #查看连续型变量的描述统计量0 g: o. ]% Z3 y( f# {
    cor(a[,c(6:10)])      #查看连续型变量的相关系数6 G8 k8 l/ N' n/ A4 L9 c3 ?
    #属性变量描述性统计* P8 T2 j# N) ^6 V" D
    windows()
    ) I9 l) |& @% Y( \8 p! t$ ipar(mfrow=c(2,3))                       
    7 T. }) }6 z5 O& u6 F( Gboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    6 c) O0 k: y( }; mboxplot(price~wuye)                                                                        $ D* `8 c. k& R
    boxplot(price~fitment)       
      L4 I  P, v/ r8 A& w' Yboxplot(price~ring)        6 ]1 Q, ?3 \- a% }4 s) A) \
    boxplot(price~contype), `" _, H! [3 x+ Q
      Z( I  o) d& {0 W2 T5 ]# n

    - U. D* V0 a! C& g4 Z+ B) B; g- B! O, \" A

    ) ]0 {. N0 _4 H##模型建立7 x2 ?: [( l& d2 |& y- s6 @) U
    ; R( B3 Q' E4 H  t% A# ~1 D

    # V* D, M: H! t! X1 Q6 ?#在方差分析模型基础上加入连续型变量
    ) X, M. j6 m1 I) X: H. X; Xlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    + R5 f& ^: P, q5 d( k7 `- ?anova(lm1)                #方差分析2 f$ B8 B* o9 b, |- ]  L0 |- c
    summary(lm1)              #模型参数估计等详细结果( A! o$ W$ x- c
    windows()
    & w! S3 Z  d5 R2 {7 A7 y* s  }3 ~par(mfrow=c(2,2))* F4 W* J8 Z9 ?; N; N, |2 H- U* P
    plot(lm1,which=c(1:4))    #回归诊断做残差图% l+ Q4 R: X, B; Z) x, h7 z
    + d/ e5 a/ m" m8 v

    - e2 V% O0 P7 j3 Q1 p
    . G/ }5 ]  w3 v0 l% P9 {
    4 E9 Y" `% j7 c$ v8 X! g) i1 b& S
    ##变量处理5 w) h8 z0 _/ T6 }
    + T6 _3 F' f) A! U; B

    8 k- o) m- `& q& I) w* t# l###对不显著的变量采用分组的方式希望能达到显著的效果
    8 ^' T; `/ \. `##对容积率的处理
    9 |0 R8 t8 J$ Z  qwindows()
    2 y; Z* e" u0 z& Bn = 48 T# h+ h, q, H9 j- ~. F$ R
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    ( h1 Q* Z1 \8 m% G4 a9 J4 V4 Ctable(ceiling(rong/n))                                                #容积率各分组下的样本数9 g% ?: u* ?- r; ^
    ronggrp=1*(rong>n)                #进行二分类  L, x- J" L* }6 D2 ?
    #ronggrp=ceiling(rong/n)       
    , D+ W. E( A4 `! j4 @( q8 J2 otable(ceiling(ronggrp))           #容积率二分类下的样本数' Z4 `0 g5 t+ F
    windows()/ ^7 V  b6 J7 l$ g
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图1 ^# ]. N; {& l
    windows()' i! c( Q% T2 k0 D% @; A
    par(mfrow=c(1,2))
    # ~: x: d5 L9 bboxplot(rong~ring)                #容积率与环线箱型图
    + c9 U& U6 }: p; _4 a. Wboxplot(price~ring)               #房价与环线箱型图
    ) H8 c& u9 q& X, d- b6 _% `#加入容积率分组和容积率分组*所在环线交互因子的模型
    % Z$ H. u( j, i( O7 y% Y/ B5 olm2=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), \/ Q0 Z3 g! C6 b/ R" O/ Y
    anova(lm2)                #方差分析* p% \, c1 c. Z) x8 i) ]
    summary(lm2)              #模型参数估计等详细结果
    9 y/ H: {" p6 [8 H" X9 ?* a& _windows()' X6 G) ^5 Y# n8 k
    par(mfrow=c(2,2))1 G6 h+ R, J- r! f! \+ X( {6 o( S
    plot(lm1,which=c(1:4))    #回归诊断& Y6 y, E9 o" r# ^7 M- C- Y0 t

    , o/ n" l! Z4 m) y7 H* D* z

    . j" z# s" b0 w3 @##对小区面积的处理' B+ k+ _( M; U3 s0 R
    summary(area)& ~/ D# A7 [# }5 f! g  v( M
    plot(area,price)* p3 _# v! V0 z) ?! Z$ v
    windows(). F8 L, O4 \' I8 `% ?
    n = 150000  ]+ h& r3 A# D. `5 d/ C
    boxplot(price~ceiling(area/n))                                                        / Q9 N0 V2 T4 J. m
    table(ceiling(area/n))                                                                . x. n6 Q- ~) d" c' s! m7 A0 X* [
    areagrp=1*(area>n), d9 l! R, @& D6 P9 |# L' C8 V
    table(ceiling(areagrp))
    - P6 X4 z- ^; y+ j2 I  E/ q- iboxplot(price~ceiling(areagrp))+ W! Y+ I8 ]4 {  ]: J
    #加入小区面积分组的模型
    5 A9 d0 h4 P! C1 j0 _7 ]# Xlm3=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)' f4 E. O: u- y4 Z3 C# |+ y
    anova(lm3)                #方差分析
    % g' t& T  j9 z8 Zsummary(lm3)              #模型参数估计等详细结果6 c4 t  g( C6 n
    windows()
    & i; M: `8 ?- ~8 v: W: h) [par(mfrow=c(2,2))
    9 V" T: U8 \  gplot(lm3,which=c(1:4))    #回归诊断3 ^% @- B: v- U- r

    / T7 e/ Q+ Q3 ^- R

    6 n# m. X  x# f5 l##变量选择" B8 q' e4 A( |) i

    ) i1 N3 w7 c6 x% P

    / o3 U  ^7 }8 {3 k9 [( a- X7 C##AIC准则下的变量选择; u, k4 ?9 z9 f
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
      B* [8 b; P( P5 E( lsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节) A6 @* K  ]- N" k1 r) i0 ^
    ##BIC准则下的变量选择- u! E) |1 J, w* k* l$ ?2 C) n
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic- c6 W. e  Y3 w- z0 h! O9 F
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节' T0 B: n+ d2 {$ G
    4 e8 E  l$ G) |' }+ @) t7 l# U+ z
    8 J1 g0 F6 r2 h  ^' ?
    #选用AIC准则下的模型进行回归诊断) c, _4 \; {+ |/ Z3 N4 \6 f7 X
    windows()5 e7 K- x  m. \3 u: C, P8 G
    par(mfrow=c(2,2))8 C+ e- p% _6 Z- s
    plot(lm4.aic,which=c(1:4))  1 m$ y: A( i$ g. d, ?1 }0 n

    + T  E& u. H$ E+ v
    9 f# \+ |) ?0 j. x, m/ k
    1 H9 V, [5 A' T6 B7 {

    ! l3 H- @" T# T0 O##数据变换
    5 m$ Y8 [6 ^6 N' o9 K) b& p1 B4 m7 a7 t3 h4 @; ^( `3 ?
    . S3 H5 Y8 `3 _) f$ t" k
    #box-cox变换
    * y0 g* N1 w* c: a6 G# t2 klibrary(MASS)1 I5 ~/ _$ I0 R& U7 l+ |
    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)). |# e% \/ R5 m, d. g
    I=which(b$y==max(b$y))  #定位似然函数最大的位置$ q# T4 w$ l& K* f- i7 K
    lambda = b$x[I] #精确的λ值6 l4 O  @0 W; L1 [$ D4 ~- `
    #λ接近于0,为模型简洁性,可以直接进行对数变换, j" g) s, ^& I. A2 K5 n. Z
    logprice <- log(price)8 C* \6 z. P* Y  t$ v- H
    hist(logprice)0 C% K1 `) k0 p& e
    ( Y1 V# a- [8 t! R1 V5 u

    / n- h2 z3 z9 A##最终模型与诊断4 R: H, q/ E- I2 Y' F/ O' _4 _
      L6 L' C5 X" N& X2 X: `

    & }  J6 k( B  R+ h2 {4 b0 c, s  |lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio). F) j* W" Z& |; e) r( b( P
    windows()9 k* j; ^0 I: A3 e
    par(mfrow=c(2,2))  s+ h; z/ k4 S% B+ z$ ?
    plot(lm6,which=c(1:4))
    % Q' M* f  ?, F# o: v" h$ J6 kanova(lm6)  }/ |: x4 B, x5 v
    summary(lm6)* f. p/ r( v/ }# [) ^

    3 w' J6 J; r  w# n/ @- y* _! v( ?  o9 o% b4 Z
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560' ~- s2 B8 Y% w" P6 r0 b

    1 [; d1 f, a- g. Y9 m- s, L: E4 |( g! Z8 L

    * J0 F0 G1 k+ p: `9 j- S8 a0 f+ g9 \4 ]9 M+ Q
    zan

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-1-24 10:39
  • 签到天数: 691 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    ( [% h) D9 C+ F! r! S8 S9 U( D+ \; c+ `3 x' _7 R2 Q

    点评

    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-1-24 10:39
  • 签到天数: 691 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ) O0 j( t4 ?! y2 ^1 Y8 l1 d" j) C0 n5 n( Q9 D9 b

    点评

    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
    ) |1 y+ n( X3 C* n1 O$ i太好了,又认真的看了一次,发现自已差太多了
    7 j7 \/ S( N/ n! y3 x' q
    我每天会发一些好资源的3 R: s6 S) B( b3 H2 _- s
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 / s0 }6 K' \3 W! c; h
    一定会认真的看看,发现这是R的,有python的分析没有
      I6 ^$ G' ~+ k) K. R' }7 f% J* X1 e
    有啊- E9 a2 n) H4 l- Y: t7 D( Y: X
    回复

    使用道具 举报

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

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-3-23 22:44 , Processed in 0.816371 second(s), 83 queries .

    回顶部