QQ登录

只需要一步,快速开始

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

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析0 Y: g$ C% v3 w0 _) w

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。; v2 |" R+ x6 l4 x
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    % @8 R& [4 s6 B5 w行描述性统计分析,各连续型变量之间的相关关系如下:, e2 {( q9 ]; I& D6 h6 T. |
    % j# ?) C. v6 J/ h3 D

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

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


    / V+ E+ ]5 V4 \  t+ z" v4 ~! B" j3 v2 j1 Q1 t! a
    # D+ V- Z0 r% |  {+ Q
    最终模型残差图:
    " o4 l7 s. D" g/ r9 a! G* ~0 k, z+ Q
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    / z+ T; H' ?/ Y6 q4 {, ^' w, ~属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比1 @' N% n3 m3 {0 R: f7 R
    属性变量的具体影响在此处分析略去。, f; r- h% t  N5 c
    连续型变量的影响主要为:
    # A8 r# T7 a1 D7 Z8 t, d 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    & t9 _' D& m, k* A2 y 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;* i! {" v, W+ e7 R9 G7 O
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ; t; `4 ?8 ^0 D0 J6 P/ H 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    4 S, d) ]1 B) L/ _- Y% } 容积率与环线之间存在着交互效应。
    ; q' y! @4 ~- k3 q1 s/ Z# ^% i& ]/ M, Brm(list=ls())                                                                                #清空当前工作空间
    - {+ ~9 }; d: V$ qsetwd("D:/回归分析")( I2 \6 [7 |* a0 B
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a% K" e& O7 W/ O* @3 S+ |
    View(a)
    2 P( h, B/ f* [4 E" X1 Rattach(a)
    2 F$ r/ u( Q  Y+ ]2 r* q% T3 a& jnames(a)
    / C' i# H1 y$ z0 _4 }- c
    " T/ i; m3 E6 O+ X. @  n$ K
    / ?" s' O. m4 c* C; G8 l# @
    ##描述性统计; f' [0 y9 |+ Z- K" ]' ?
    & @, j1 u# ^5 E: h" P4 p% U
    1 Y; d6 a' ~' \# V, x0 j) O
    #未做处理的响应变量分布情况
      O& w$ F2 X' U6 \, I- b$ ]  dpar(mfrow=c(1,1))
    ( N5 n! @% n* Rhist(price)
    4 B5 h% z' |; M; a6 ~" P* s/ Zsummary(price)        #查看响应变量的描述统计量
    * G$ R8 m, s" y6 r+ `#连续型变量描述性统计
    2 R5 U6 Q* K: swindows()
    5 C( A9 W9 W" I( o' @pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    " g) L  d% x1 A9 Q, upar(mfrow=c(2,2))        3 D8 `5 X/ e7 O4 J
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图2 F# p! d6 ?5 I& h  w1 H
    plot(lv,price)$ l; d% H5 q0 \# B7 E# Z
    plot(area,price)7 f+ [- F/ e8 Q% `% k
    plot(ratio,price)
    . I- B( m# [4 z* q- N4 u- Wsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ( X- m* v( ^. Y8 _cor(a[,c(6:10)])      #查看连续型变量的相关系数
    ) }+ g& w) }( }+ B. L#属性变量描述性统计
    . J( q! p% {$ l' q: wwindows()
    / V% @  t: u% a$ b# {par(mfrow=c(2,3))                       
    8 W: A3 S5 s3 d3 s3 Sboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    " f- R! b: h6 B! J. L' g! \boxplot(price~wuye)                                                                        % N0 G+ n$ T6 i! \$ z
    boxplot(price~fitment)        9 Q7 Y* x0 ~8 I) S, O* u( ^
    boxplot(price~ring)       
    $ ]- f! }0 h4 c# [1 u  C( x1 Qboxplot(price~contype)
    1 I- F7 W  q# \# H  W- A5 f' k8 Q5 p7 t! @* ]% i- k9 a
    6 w- Q1 n/ u+ B  I) f7 p
    0 r: j$ {" M& n: E
    * [- ]  D; ?7 n1 M$ W
    ##模型建立7 r! c7 V$ U7 C2 o7 w) s

    4 M8 ?$ s4 Z  x# k( }! ?

    & E$ c9 X0 M, p- r4 R+ y& j#在方差分析模型基础上加入连续型变量0 M1 K6 d; [/ G5 m* T
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    ' g& L- S* |& ]& b/ T" n3 p( l1 b' panova(lm1)                #方差分析
    * A1 M7 h3 W( Tsummary(lm1)              #模型参数估计等详细结果
    ) w' R8 R  H2 f2 n$ B* Y2 j3 O9 fwindows()
    + O$ }: v7 n2 [+ E. Spar(mfrow=c(2,2))
    / f. T6 Y% n9 \- `6 K1 J; j- bplot(lm1,which=c(1:4))    #回归诊断做残差图
    ( e8 c0 C( m& ^; F6 V" D! N$ Y. r, F3 ^0 Q
    $ l& X: ^/ t0 R% n

    ( ^( q8 W' @: }/ z3 I- z2 ~, Z
      h( \' H& X5 R  n. x; E( }
    ##变量处理
    7 E! {. O: q% z3 L8 |) F# N. C! `9 |" o4 |7 [( r+ x3 N

    1 U7 C( |# e2 j. B; p! l$ C###对不显著的变量采用分组的方式希望能达到显著的效果
    4 [( d( T8 t' o8 C+ t5 }0 }2 }##对容积率的处理  ~& p# M/ m9 |' E
    windows()
    : }5 k  `: b; K3 d5 |# an = 4
    / x" H' X3 M6 u- m9 K/ P* R& ]3 Nboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    / P9 _" i* K7 e# r. Ttable(ceiling(rong/n))                                                #容积率各分组下的样本数
    3 K; P9 L1 i2 y- Nronggrp=1*(rong>n)                #进行二分类6 j9 {/ E1 v0 B' j6 a6 v2 [
    #ronggrp=ceiling(rong/n)       
    ' T- k  t3 x  V8 m8 T$ ktable(ceiling(ronggrp))           #容积率二分类下的样本数3 j; _7 \! r" y: S% Y
    windows()
    ' [: S& N0 o$ s" Q* T/ _boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图; _  S) q0 U2 P2 s# k  r5 t
    windows()
    - l7 s0 F% v- i- ^5 D! j* Fpar(mfrow=c(1,2))) q& _1 }0 P) z5 ?4 w( f
    boxplot(rong~ring)                #容积率与环线箱型图) i# F: B( O' k( t4 [, c
    boxplot(price~ring)               #房价与环线箱型图 $ t/ E7 P; `) A( J  i
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    3 M1 ?5 s, F5 @" Z9 ]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)7 ?9 J2 R# S8 A  v. y  z
    anova(lm2)                #方差分析
    - _9 V9 M, b7 l- s' fsummary(lm2)              #模型参数估计等详细结果
    % e) _; E8 V! {7 o0 n; \1 Swindows()3 U1 g8 D& }: H
    par(mfrow=c(2,2))# z) v: K8 I" U* R4 s4 z
    plot(lm1,which=c(1:4))    #回归诊断) @9 F: ~* l% m( ?5 W7 o

    ; D7 q, [/ F' R6 f; o# \

    3 c  k! T5 H  H8 }##对小区面积的处理' g. D: ?( A' _  s9 e
    summary(area)! p" ~, }; h! }, n. y: R* n. I& `
    plot(area,price)7 N$ `% ]5 G/ a9 r  B3 O. I& q7 n/ i. E4 v
    windows()4 r/ \6 n  {8 J  `" x6 |: |
    n = 150000
    6 u9 l5 z7 u; t$ k$ w8 h2 [boxplot(price~ceiling(area/n))                                                        + x) ~+ k5 q/ g/ q9 }
    table(ceiling(area/n))                                                               
    ' H6 {/ x% T: X9 I; _areagrp=1*(area>n)7 g% E( c1 P( v& ]  d
    table(ceiling(areagrp))+ d' L+ p- w3 a- F: q+ a# G
    boxplot(price~ceiling(areagrp))
    9 q, e. |9 p8 a5 K6 p) p& h#加入小区面积分组的模型  J" S  {+ ^: @9 ~+ D
    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)0 w2 o' z# r% \0 E- @& ^% K
    anova(lm3)                #方差分析
    0 l* e/ n: @7 X, u" a* N, }! \summary(lm3)              #模型参数估计等详细结果! C8 i- w/ T2 P7 n( ?
    windows()
    4 Z! g; o' z) |% F1 K* `par(mfrow=c(2,2))8 [! ~! `, W; ~& K, A
    plot(lm3,which=c(1:4))    #回归诊断5 v* X# l0 Z1 M8 }+ j
    5 s) r2 }+ }+ i& T) d

    ) n( d' J" R7 M# v  x##变量选择
    0 v8 c5 Q  T- W0 ]" \. u# y9 Z, X# H0 l' V" f. z' Y

    + ~! `1 c0 Z4 N+ F* G##AIC准则下的变量选择
    " g1 m) Y3 h$ klm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    6 J7 x% b. r& dsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    3 ?: c# N- X8 n& T##BIC准则下的变量选择0 q4 B: m6 A% @/ @$ S& w7 ?
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic( \  {6 V1 L7 j
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
      v3 A0 ?) M  z$ l1 z6 _. a1 R  i% G
    " X! ~& X5 y( M. L/ Y/ @3 a
    #选用AIC准则下的模型进行回归诊断
    ; }; u% ~( ?! o$ _2 Z: Vwindows()* ]5 u1 O) d- L! O. h8 Y* C% ]
    par(mfrow=c(2,2))
    % u% I5 w8 u% t$ V) m: D$ q: }plot(lm4.aic,which=c(1:4))  / A! k6 y5 A  c% |0 L
    ) ~% D7 P1 Z2 d$ |8 Y
    9 p4 ]! V. E# A& W

    ' \  K8 U7 |4 g  F8 Y9 L% Q% Q  G$ X
    9 H/ g5 G8 q8 [9 ^, E- ?, l, q/ l
    ##数据变换' R  }2 Z( R% h3 W
    2 C; D+ z+ H( \1 J2 l- \- `

    3 H5 `1 Z2 w" U9 j5 \2 b$ J1 Q2 d3 ~#box-cox变换
    5 \0 b6 W* b0 d% Wlibrary(MASS)
    9 {; A* \4 k( G, Ab=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))# r7 i/ q  W$ }
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    : ~4 f1 \" g% w, Y  ?1 Xlambda = b$x[I] #精确的λ值! \. {% Q3 @/ w
    #λ接近于0,为模型简洁性,可以直接进行对数变换5 G1 Y; u+ |$ ^) _# S# `. u
    logprice <- log(price)
    9 b. o* e/ Q# j# y% A, A* lhist(logprice): N) |$ d( W* `) _, w2 c9 x9 H- P& r/ E
    / i$ a1 i1 h0 v/ f6 Z* G' V7 i

    7 Y/ ?0 z8 {1 p; E7 S1 A6 Q##最终模型与诊断8 l- S' M5 Z+ k% J2 c: R: f( j' d! N
    9 I1 C5 G- e9 W  G7 p8 f

    * [: Y; x% ?% ~' c6 Y0 u7 t3 ylm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    ! r$ T# J4 d# [/ d# z+ v5 dwindows()" C, t3 N3 L( U6 y
    par(mfrow=c(2,2))- N: u3 ^% h8 g: R
    plot(lm6,which=c(1:4))+ W( X8 f* [2 A( y
    anova(lm6)
    * D' `$ b7 [/ ^5 y/ _summary(lm6)- o/ _' q9 [9 C! }2 R# i

    : [9 X& }+ h# Q9 b+ A$ a  _5 R! B
    + X  o: ~2 h6 G3 }$ [6 U请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    - w$ x" d0 K+ s  [2 A' x/ b
    & d6 t6 g: K- M& C

    , U! e% w# m2 d1 r2 m- P* K9 z& G$ r- ^9 e- n

    & P! C9 n, F2 W+ ]1 w* m
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    615

    积分

    升级  3.75%

  • TA的每日心情
    无聊
    2024-4-28 12:14
  • 签到天数: 629 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有' }" b8 g1 O3 ]9 t5 v

    # r- c% t' _3 w  Z, @# @- l4 x" M. ^& U

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    615

    积分

    升级  3.75%

  • TA的每日心情
    无聊
    2024-4-28 12:14
  • 签到天数: 629 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ! y& Q1 ^8 g/ M" i* @8 q9 b3 t. W$ L/ H0 t) m0 W

    点评

    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 . @8 d! Z" k0 I* S+ ?- H! m
    太好了,又认真的看了一次,发现自已差太多了

    7 _$ \% i- X1 C/ o  Z我每天会发一些好资源的
    0 r( I; \7 r! [: R  S* P  g
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 % I3 i# \. f0 @- v5 _5 B* Z! M# ^
    一定会认真的看看,发现这是R的,有python的分析没有

    , w+ i9 S$ |' V9 T' Z& L- j有啊" S  J8 c! Y/ Q& ^, g: Z  ^5 v
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-4-29 15:33 , Processed in 0.645513 second(s), 78 queries .

    回顶部