QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ; Z7 e4 S8 }- P) X6 i1 E2 z

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。8 H1 u' I. ?2 ?0 s
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    . Q9 A5 Z$ g5 P2 l% d6 h行描述性统计分析,各连续型变量之间的相关关系如下:" L8 `4 A1 r3 C3 k
    $ H! N. i, B: g# B( [" X

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

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

    7 S, r/ B3 q! \7 G- [) q" K
    3 L8 g4 L! M+ f
    ' {$ r4 @1 p7 |! s, j" B
    最终模型残差图:
    : X) r8 o6 a" A  V/ L$ J% o" `0 ?& R4 I
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    : b) {7 R! e9 L  |2 A属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    4 j6 o3 S1 C) t属性变量的具体影响在此处分析略去。* N3 A6 A1 A- _% ]
    连续型变量的影响主要为:- y* U; i: K1 T( r5 F  v
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    0 p/ j/ V; L9 _. Y; Q 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    1 Y" Q/ d$ `6 N" j同时,原本为连续型变量的容积率经过离散化变为属性变量后:/ `- i, n& s9 \! @# i3 F
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    0 U; w1 b, M" P: l$ n$ F, @/ N 容积率与环线之间存在着交互效应。5 V; @1 S% N% L' |
    rm(list=ls())                                                                                #清空当前工作空间8 Z5 P: k9 A: v! J+ m
    setwd("D:/回归分析")
    ) R3 a3 c4 x( ?( b0 N9 Ua=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    / K. X# h# L7 y, c5 hView(a)
    5 R  I, J! Y# S! n* wattach(a)9 _6 D! P; }0 y- l
    names(a)
    # ]! F, `, u; o: g; I  y2 D& g% w* f" u4 m; P

    ! K" v9 ]7 M7 |9 H# \+ R" c" n##描述性统计
    $ E7 E1 _- H$ t. A& I2 ^' M4 X
    4 x  Z6 P2 S) I# N6 J; i
    #未做处理的响应变量分布情况* Y# d* e6 I' v9 c" W% Z  y8 V6 n
    par(mfrow=c(1,1))
    1 [6 }: |! A+ X1 J: v9 w7 }hist(price)
    ( i$ L4 m) D* Nsummary(price)        #查看响应变量的描述统计量) Z& G" R) h  V& @. p8 l! b; k9 c9 c( p
    #连续型变量描述性统计
    % i; N/ q) V: ?$ g* n8 V% x" Kwindows()
    ( ]* U, v1 H" I: O+ \' X/ spairs(a[,c(6:10)])    #所有连续型变量间的散点图
    * O, C9 |& E* G5 h, Y2 P6 v8 Ypar(mfrow=c(2,2))        ! S. P$ J. `5 F- m5 O5 Y% [
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    , r6 X8 t% P: g6 cplot(lv,price)
    " ^) D5 J1 h! o: j& [. \# J0 @plot(area,price)
    : `3 V7 }+ s1 @$ _plot(ratio,price)
    . d/ A3 d; n* U4 N" Y! T$ asummary(a[,c(6:10)])  #查看连续型变量的描述统计量: {' }( m  H. d. L
    cor(a[,c(6:10)])      #查看连续型变量的相关系数6 m5 P1 G7 D( x6 t$ l
    #属性变量描述性统计" ]" _3 ~; A  p8 f5 ~& k) t9 w0 X6 j
    windows(). P$ m1 V8 S5 a9 n8 D
    par(mfrow=c(2,3))                       
    - E& @) K( S0 Z" T% k# yboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    3 ~5 w7 f" q+ \$ Sboxplot(price~wuye)                                                                       
    , ^$ t* N: x2 ], }5 Xboxplot(price~fitment)        ; i8 c, a' `* y- p
    boxplot(price~ring)          ?( J. P# F  k3 F8 ^
    boxplot(price~contype)' ?6 n( e5 e5 K8 F6 n# S3 W

    ( Y7 h! f; I8 i
    + j( `. o: w/ T( W6 k
    8 F4 f3 i( |% z& z4 q

    , T+ B) E. v$ w6 B4 K##模型建立- j/ `; x8 F% y, I  h" r, q
    ' P" o& F7 H4 c% ~& G& w. b

    $ g" d. P/ I  n% q7 `#在方差分析模型基础上加入连续型变量- l* k$ T7 ?- h. K% d$ o
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    ! q* L/ h& K9 [$ g- Lanova(lm1)                #方差分析# T3 `% G5 T+ m  C  }9 _2 c
    summary(lm1)              #模型参数估计等详细结果
    7 Q* r$ n  M$ Z# Ywindows()3 p- ~+ }5 q" w2 ^- ^- D  c& H; i
    par(mfrow=c(2,2))
    9 f- ^* ]5 |2 t, K' @plot(lm1,which=c(1:4))    #回归诊断做残差图
    2 ?9 Z& E1 X; @4 q& J5 e8 [: t$ b/ D1 k" o' a  |( `
    1 l! H0 ^* l- ]3 t  P; q/ A2 S
    : t/ e9 p/ ?. P4 ~
    7 s  x; b9 i1 f4 x2 W# V+ }+ M% h& E0 v
    ##变量处理
    % R6 p. \4 q, U
    ' K7 W. _' ?) K: w# Q- x
    8 p% `5 l& ~7 q! t% L( X$ c$ }
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    % u$ ]2 c. S* Q: u##对容积率的处理8 K2 C' s2 h8 \# {2 `  z
    windows()
    4 t7 l) {8 s7 ]n = 4
    * Y8 I8 _% ~: Y* C, Z+ D5 Y& e6 Iboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    # U5 E# U$ V- Htable(ceiling(rong/n))                                                #容积率各分组下的样本数& M! |9 D* ~8 i
    ronggrp=1*(rong>n)                #进行二分类
    7 h& W( j& V  s$ O  f& G, ~7 S#ronggrp=ceiling(rong/n)        ) {* l# Y7 T( E
    table(ceiling(ronggrp))           #容积率二分类下的样本数: @: A: m1 Y- N. A
    windows()
    3 ^! _- D/ o% N3 U; f  R* u6 Wboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图" y3 R  R* }4 r9 n. B' |. j- q
    windows()
    1 F. f% C$ S4 g% ^( Ipar(mfrow=c(1,2))4 n  |3 B! }. S8 c
    boxplot(rong~ring)                #容积率与环线箱型图
    - d1 ]; j3 E5 \, D2 h) J2 ~4 S  E, \boxplot(price~ring)               #房价与环线箱型图
      Z. ]" G% A. z* v#加入容积率分组和容积率分组*所在环线交互因子的模型7 ^3 |0 V) D; Y7 F# W+ R
    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)
    4 D5 @5 W+ {* B# P0 ]* K; [anova(lm2)                #方差分析
    # W* O- I; T0 s/ q+ t! M# l; `4 W* u) ksummary(lm2)              #模型参数估计等详细结果/ W( S- R2 u6 C2 |* a  P7 C4 D7 [
    windows()6 K; w/ ~# X1 \' L% w: {
    par(mfrow=c(2,2))
    4 t, J# D" F% x; Splot(lm1,which=c(1:4))    #回归诊断
    8 b! T# u% p+ e/ i" i# F/ }6 W
    . e, M& b( w2 k& C; h  s4 O# B

      H& i4 d- d& A: H( G2 X##对小区面积的处理; i* ]4 v! q1 G, l
    summary(area)
    * b# |: A7 ]; X0 z+ \2 qplot(area,price)
    1 r0 {5 p( s; g! I0 C$ vwindows()' a& O) t# B: p. P. D
    n = 1500004 N: Z; W5 R: Z; U& j: x: [
    boxplot(price~ceiling(area/n))                                                       
    4 B- R8 s$ y1 ]- o$ Q, Q: |table(ceiling(area/n))                                                                2 Q4 W+ ?3 u2 J- v, r$ U: T' K0 v
    areagrp=1*(area>n)/ G! Y! n, u) z2 F, I
    table(ceiling(areagrp))
    ! Z" a: i! I" t( n3 a& Vboxplot(price~ceiling(areagrp))
    8 `1 \) C0 f8 h#加入小区面积分组的模型
    4 ^2 B  }9 P6 Q0 v, 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)
    ; p' l& ?$ @/ }+ u0 [anova(lm3)                #方差分析
    1 s1 R: L) v* Z0 w1 \! _3 Ysummary(lm3)              #模型参数估计等详细结果, P# g- e( X, |1 ]/ i5 C% P1 q
    windows()
    8 N# G3 k$ P7 T$ E( Upar(mfrow=c(2,2))
    9 l  E  Z& Z$ n% W! A& J+ [plot(lm3,which=c(1:4))    #回归诊断1 J1 q/ b, {, V; F8 ?
    / \5 y! ?& w$ o" M- [: W5 m5 m+ V
    * p' C; f8 F" Y) r$ M  a1 |
    ##变量选择
    & x+ M2 M" h) A) }  s, X( z, x* _$ G5 C8 s( j  O, u

    6 a/ x& q, |1 V, a& l, C# f##AIC准则下的变量选择
    0 k2 \8 G2 [& R: o+ Mlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    # D$ Q' |& ~  a% `; r3 `9 Zsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    # R7 Y3 W6 `" ?) p( _, L! p4 I% M! [##BIC准则下的变量选择
    - f% ~' E, N, t' Olm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    3 v) T) u+ a8 K' zsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    2 F. g9 P5 I% ^, v  z0 m% m+ A7 x% k, Q' j  m8 q

    9 b" L% g. f6 O; r#选用AIC准则下的模型进行回归诊断: R# F  \% M) D8 w. h, }) a
    windows()
    * Z3 ?" A4 q8 K! ?( P$ dpar(mfrow=c(2,2))) v2 i2 W$ o0 b2 I3 ~& o; o+ i
    plot(lm4.aic,which=c(1:4))  + q" G$ |( `8 W  ?6 \. E, S% B0 H
    0 V: B8 i* i, ?
    0 L% j9 l" e! U4 O2 K) B9 e0 i- J/ }$ ?- u

    . a; h. |' E9 X" ^

    4 |. ^: u9 l$ N6 y##数据变换+ x7 s; C* U/ p1 k$ A
      C# Z% r+ S5 v" }+ e" j9 C8 l% v

    , G, f' D9 w! V. E5 p$ t#box-cox变换: `) f) p  @" i+ g7 ~
    library(MASS)% S1 A3 D2 }+ j4 B
    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))
    " z- @5 T0 o/ OI=which(b$y==max(b$y))  #定位似然函数最大的位置1 s. D& d* O* M! F* U! [) y
    lambda = b$x[I] #精确的λ值
    $ P6 Y$ w4 F) T#λ接近于0,为模型简洁性,可以直接进行对数变换5 W3 t; C& X/ F
    logprice <- log(price)
    : U% k6 V0 b* b- C: |, rhist(logprice)" B& x0 T8 [# M1 y) T1 c
    ; M3 L4 M% E- M% s  W$ p
    & i; L+ y/ y% S' c( F  [
    ##最终模型与诊断0 h& q4 S9 D: g" W4 O! V
    ' P. C6 h3 I: P( I# H8 m, N2 P
    $ L# J! m' k. s: r
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    * I  E- h8 e4 m( awindows()
    + Q% z8 |" x1 Tpar(mfrow=c(2,2))% [  Q6 |' `) W) v0 y8 I
    plot(lm6,which=c(1:4))
    0 M% w9 l2 W9 g0 N- j6 }anova(lm6). S9 _5 e: k8 C! q) N  B4 }: O& U
    summary(lm6)- B" q3 `; M2 w# m  v) u+ l

    8 |3 l/ [! p2 ~# M: k% a8 x3 |" d& ^! F* s' s$ P. q
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560+ A. a! ]) S; L1 u7 E$ \8 v7 ^! Q
    ! N- l( R; z" V% R' k4 L: W

    / w) t5 L0 a/ j. L5 P7 ^7 `4 [7 w" J. b# g

    ; j- e3 p& I4 W- e9 j" L; \3 I
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

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

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    . G+ l% O- H6 d7 t$ E0 A, w" L+ E# {" J# M, o' }

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    $ s( e, g, `' r+ W2 b  H# o+ h" u, E

    点评

    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
      L+ R# T7 \* O# b% T$ g太好了,又认真的看了一次,发现自已差太多了

    3 a/ V( V5 J3 Y) ?+ ^- Y我每天会发一些好资源的
    / t0 R/ r+ ]; f) o% C0 K3 \- t
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 , h0 V3 I6 n% b# ]5 w
    一定会认真的看看,发现这是R的,有python的分析没有
    0 g4 N; W+ x9 H
    有啊- Z. X4 P; W! P
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-13 02:07 , Processed in 0.581317 second(s), 78 queries .

    回顶部