QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ( \; f) f4 u; ^) U* l! M# j1 X! k

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ; e& v& d! G- K: ^& e这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    8 B8 p; |: w5 c7 s' `8 f+ g0 T( e行描述性统计分析,各连续型变量之间的相关关系如下:5 A# d9 u7 O4 T/ p9 x& {+ d3 E2 H

    ; h5 ?! G9 E+ w- E' `1 p

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

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


    & y' `+ A& r7 V
    . O; j4 d( u6 d
    0 R* ?# E8 ~  o: v. g9 q最终模型残差图:: Q, k4 e+ K, b! b1 b4 Y
      c/ T6 E! m9 F- n  |! U& I
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    , j# s  [( R1 {8 `( g属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比. V3 ]3 E5 ^, [8 r- g! U+ V
    属性变量的具体影响在此处分析略去。
    ( G2 c. B# n& t7 L9 U1 M连续型变量的影响主要为:! u+ E  A" ?6 U2 ]5 K4 v- D. E4 j6 X, {
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;/ L+ X6 g( H+ s. h
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    & a; z: m- ~  D; Q3 G2 O5 K* B; m同时,原本为连续型变量的容积率经过离散化变为属性变量后:2 j! f2 i7 W0 b. F
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;; D9 h5 u+ ^# v; m# @! U' `
     容积率与环线之间存在着交互效应。0 Z0 e3 }3 J" r2 ]% H' e. t
    rm(list=ls())                                                                                #清空当前工作空间
    $ \8 T1 v+ z( ~, g* a& osetwd("D:/回归分析")
    6 {  i5 y5 {3 I0 Ca=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a) t* i/ n7 v2 A3 H: A
    View(a)
    7 r# h& G/ ~$ y/ S$ c1 Y1 X! _  zattach(a)$ h8 h; [6 |6 v3 [) l5 o7 Y8 ?" _
    names(a)4 f& o* y2 l$ k" \5 a2 [3 N

    * }7 Z# R% f, ~% B/ q* R' {  U
    8 @9 ]# g6 j$ G* ~# z
    ##描述性统计
    ' B6 {4 R3 h& _) ]
    : W7 Z" Z) s& \1 ]$ R: b0 K

    7 R3 I. H; {. N#未做处理的响应变量分布情况
    3 ~1 ~) ?8 @) E+ w4 G3 r7 Gpar(mfrow=c(1,1))
    ; B* k: B( c2 R  Bhist(price)
    ( j6 e" j3 m' U+ ]9 v1 Osummary(price)        #查看响应变量的描述统计量! L7 Z, e& l: e% s4 B6 X
    #连续型变量描述性统计
    ; t9 b3 i, m( `: ^* |4 Rwindows()  J5 r  N& l- s$ T" p) V2 |1 x
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图" a. V2 e$ o7 Q3 M6 q8 {
    par(mfrow=c(2,2))        & U5 v- F8 {5 M! j# X
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图/ A! |/ M3 t- A. d, `
    plot(lv,price)2 h# M+ m, d1 Z; ?/ x
    plot(area,price)  G7 C' P7 d2 r  [8 X
    plot(ratio,price)
    & q9 A4 r1 x( ~: G, D# T# `summary(a[,c(6:10)])  #查看连续型变量的描述统计量  N0 K+ T; b1 ^$ ~5 o- z
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    + W' E; T( t* Q7 y" v#属性变量描述性统计
    & g+ `4 T$ f$ r) b! g/ [windows()
    7 p8 [4 F& g* u$ m2 [) b8 [par(mfrow=c(2,3))                        2 j. Y! k/ x, H  ^+ G
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图3 h" r+ |2 P5 d5 h) U* {) m# J
    boxplot(price~wuye)                                                                        3 {+ e4 s: y( I- o, d! n
    boxplot(price~fitment)       
    " }0 b' B0 b4 _  g/ v9 Wboxplot(price~ring)        * u. _5 R) c/ e8 u" H) ^
    boxplot(price~contype)
    / m, [! m: K/ _- Y% L3 l3 d7 C  a% E8 D

    ' m/ `% d0 T1 C( m; [. Y' C" U
    0 O7 i) p% Q  l
      ^9 f; Y9 y, q% Z
    ##模型建立
    1 F7 u% z, y/ Q
    ; R/ w/ m, ~* |' U8 K0 B7 F: [
    8 G2 D1 R- _7 v
    #在方差分析模型基础上加入连续型变量
    : p- ^& Q7 B+ b! plm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)* `6 P$ ~! c, q+ k2 z8 l: K/ R6 M
    anova(lm1)                #方差分析+ s: z% b. i8 Z9 C6 Z2 G' `9 k
    summary(lm1)              #模型参数估计等详细结果6 Z) j7 n) W: T: u1 ]& B
    windows()
    % D2 q" A7 F# A) a% ipar(mfrow=c(2,2))0 A- I/ n% j% }/ V
    plot(lm1,which=c(1:4))    #回归诊断做残差图0 u( n& u3 S3 o0 x
    - ^& V, E7 ~' o- U' f$ H5 j

    " L- ~; h/ Y" ~! N, j& C0 l! o" }- ~$ |7 F

    4 X6 v1 L$ M' l6 T##变量处理4 `  ]. D6 t: V7 K; @4 @3 g
    4 [4 e8 t) Y! M5 [! @  K/ C
    + v% ]# [' K" Z" ?: n# M
    ###对不显著的变量采用分组的方式希望能达到显著的效果% g  E) E8 u9 d
    ##对容积率的处理7 k8 z  C: x2 h+ H) R! L* B: h% P
    windows()6 L$ n6 Q; s' i  n
    n = 4
    1 `5 p% L, o( X+ o# U/ z+ o+ Q6 wboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    2 Q/ j2 n3 M7 q* w0 X! gtable(ceiling(rong/n))                                                #容积率各分组下的样本数$ f* G# n. z7 n
    ronggrp=1*(rong>n)                #进行二分类: D& X; \5 Y3 i! ]0 j
    #ronggrp=ceiling(rong/n)       
    ! ?0 m8 h+ d9 n, xtable(ceiling(ronggrp))           #容积率二分类下的样本数
    - r9 y/ u) `7 f4 k! e7 Nwindows()  ?# L" z" ]! E" W0 _( f
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图/ d4 \' v4 U6 w1 T
    windows()
    ' a/ l# f0 ^* Y) Zpar(mfrow=c(1,2))
    / x2 A) {4 U  w( h( b, g0 {boxplot(rong~ring)                #容积率与环线箱型图
    5 O7 N% k: b+ q0 A  X6 b4 U* Aboxplot(price~ring)               #房价与环线箱型图 ' B* B/ U# q% u0 i/ m
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    ; v- Q5 @2 v8 y6 rlm2=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)
    ! b, @* |4 Z* Vanova(lm2)                #方差分析/ E6 k- k) x/ y. Y; J8 u2 A
    summary(lm2)              #模型参数估计等详细结果
    + ~5 o; _. I6 S, kwindows()
    3 D6 _1 [! X" ?$ v1 `par(mfrow=c(2,2))8 L4 \) n. c9 F: q# m
    plot(lm1,which=c(1:4))    #回归诊断
    & x7 P: ?5 E# ~. W2 x: a5 G2 }8 `

    & F8 _- h. }/ C9 b& ^##对小区面积的处理
    ! f1 h" Q3 V# r2 ?0 W! F( Csummary(area)8 T0 N- ^; M8 x# u( i1 b
    plot(area,price)
      N% T5 I3 w: V& A: n) @) ]+ owindows()
    9 X: O4 d- ~' b/ kn = 150000
    # _: X1 U( k! l% v4 c! Q6 U" X, v, j/ iboxplot(price~ceiling(area/n))                                                       
    ! L" T/ c  r  C5 i" y8 Ntable(ceiling(area/n))                                                                # {6 s3 g) K" M" V% }( z( d1 m
    areagrp=1*(area>n)! H! Q& A% u, p) k3 l- }
    table(ceiling(areagrp))
    " t4 _5 ~! v, c$ j' wboxplot(price~ceiling(areagrp))
    / S( v) H6 S' W3 Z# L2 F( U' e% @, F#加入小区面积分组的模型$ b: A% k: k/ B- Q
    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)$ R3 i% |% W' j
    anova(lm3)                #方差分析5 O' O! w2 E" j! g0 y: V2 Z) B7 U# t
    summary(lm3)              #模型参数估计等详细结果
    / K: [: p' p& Z9 m) Z/ \windows()1 a+ \# o! b6 `, r. Y' s0 p3 t7 M% V
    par(mfrow=c(2,2))
    0 ]+ v3 \/ P: n8 Z" {" cplot(lm3,which=c(1:4))    #回归诊断# u. ?: V4 j+ A1 t% M

    3 _; M' l# V7 X

    7 ~2 j  `" i# w- j1 j##变量选择
    ( I( c; E' P+ s# p; s3 v
    # h2 ?8 @  g5 @5 @1 D/ }# Z# D/ @1 ~7 f
    7 N$ O8 y" f# D% k
    ##AIC准则下的变量选择
    9 [5 S! ?0 S# d. S4 @5 ilm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic( f" ^2 `5 r, `2 k- G
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节) e: z) I  |% T" H
    ##BIC准则下的变量选择
    2 E; n2 D# {1 G6 X7 P+ b& Elm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic2 C% g5 h# A6 x, S% s, Y3 E/ [+ w
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    1 i$ o/ o. f! ?' t0 z, R/ s. S' o

    ; g' m& `' [& s" w7 B( D7 P#选用AIC准则下的模型进行回归诊断
    - Z! J9 x! x! r- h$ \6 P" Cwindows()/ ]& t4 I( F3 H# J
    par(mfrow=c(2,2))
    ' g+ J  C# `6 R: g' D5 Zplot(lm4.aic,which=c(1:4))  
    2 s5 T! m  Q! W; f9 E4 ?& P5 Y( S- y& A/ A5 ?# m$ K4 F
    : s/ n; i4 Z4 U  I3 z* Z1 m. I

    + r" P. Q# X( M+ E
    0 B! Y5 `4 `1 h" U" q. o/ s+ U
    ##数据变换5 [( H% G0 o5 M4 `
    ) K# l4 D8 N# `  z( c5 E

    ( r9 |7 X3 w# m  x, _( G#box-cox变换9 a" H, c. x* f: r3 |8 Y8 ?4 o+ _
    library(MASS)' `& P# i1 \$ F- I2 D5 a
    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))
    1 F4 r' H5 n# I% F/ ~I=which(b$y==max(b$y))  #定位似然函数最大的位置
    7 J3 {7 e" x2 Ylambda = b$x[I] #精确的λ值0 {+ A8 L8 \0 m
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    5 Q- n  F* `; K! E2 Z3 Ologprice <- log(price)% l  Z$ N/ ~+ e1 {5 [0 Z
    hist(logprice)
    9 ~9 u6 B1 m9 h) E0 e9 \
    ) u, c: f4 R4 @% G7 J( w8 Z

    : C- Z! }4 F9 V9 K. P4 @8 j9 a1 E##最终模型与诊断
    ' q6 E- K) x& c
    0 q& }3 z5 A2 I7 W

    2 C9 H. R( T5 x* H! ~+ H  O1 Elm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    " D& k9 k. f& r% p6 F# E: Kwindows()
    5 G7 ^( J4 \- y! D( z6 o. t) cpar(mfrow=c(2,2))
    ' Y8 j: \" n7 ?0 b4 Q) E1 y# @plot(lm6,which=c(1:4))
    + G8 D1 Z# r7 Z+ |$ |6 w& Ianova(lm6)
    + |" d4 g  U" r- Zsummary(lm6)2 p; ]" q6 X, v  j3 R, }* ^

    $ L, t$ [9 z% `: q& f
    / f/ D7 q+ C1 d9 C( ^  G  S请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
      ~- D' y! m+ Y' L, h
    ; k: D) ?8 {, b) ^/ X, g7 k( z6 b2 ?( A

      L/ E$ u2 @! V) h8 Q+ i6 |! S; ^7 t: R8 S

    3 }' M* O1 q' o+ v" P
    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的分析没有
    % L' y- f9 ]+ Q
    * K& O3 q8 u8 e3 U# o6 ?! }6 K

    点评

    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国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    5 }. {' G0 B! n  M( t5 @! Z; W

    点评

    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
    3 k1 O5 p& Q( N% ]9 o太好了,又认真的看了一次,发现自已差太多了

    $ f2 r+ N" J* h: d- _我每天会发一些好资源的4 g8 Z9 r# f: O! j4 B% |
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 1 V, S8 }# y, Q+ A
    一定会认真的看看,发现这是R的,有python的分析没有
      R6 K' g6 L) C& a( R
    有啊
    ' R; s: }4 I& a9 ]2 l9 \
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-14 20:27 , Processed in 0.736920 second(s), 79 queries .

    回顶部