QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ! ]3 L7 X8 [; |6 \! ^! Y

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    . j3 D, h' a+ }6 m* R+ u7 P这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    : P  \. z$ R5 T1 U  ^行描述性统计分析,各连续型变量之间的相关关系如下:
    ) L! m( S/ B- s8 W7 o2 O. G* T, }: |
    7 C: Q7 W5 c9 K9 {$ O) }7 U

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

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


    # x9 J5 @  @' X  S, h1 b
    % u  h" p9 w: d0 H6 i
    ' n3 C$ B! z; E- }& W& E' ]6 ?最终模型残差图:! Z3 Y3 _; C/ i& |/ e/ S
    - D1 z, U& I# ?+ }
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    # x* T5 t! h9 l& t# l属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比8 g! `  D: _% i+ m2 W' ~
    属性变量的具体影响在此处分析略去。
    9 j. ?& d4 v, w连续型变量的影响主要为:
    - e- n9 K8 y( ~, V+ z- L 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;3 x8 B' P6 S4 A: Y# _, a) {- Y
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;7 D: R& X# i) t6 l- Y6 s4 L4 \
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:/ D5 k& w$ [, k; R* m9 L
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;8 {3 `4 ]3 o, w$ c; @
     容积率与环线之间存在着交互效应。( O* Y% }2 u4 i' g5 C0 m1 U
    rm(list=ls())                                                                                #清空当前工作空间
    " o  C2 X, p+ d2 x1 psetwd("D:/回归分析")  X% H8 L; a, `9 H
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a8 D9 d3 b* V7 o; a  ^# |
    View(a)( ^! m9 z. M# X3 Z4 f  G- ^
    attach(a)
    % g" }3 `1 C' G' p' N! o  o) Inames(a)8 e! O% w: p8 i# \  D% R
    1 A+ x8 H# z: Y$ J' ~/ d" d

    0 D- |3 Z! n0 p* X6 N* K, n! H' U##描述性统计
    ' A  i4 M; A9 J% m! M8 X2 C/ L% v* W3 I3 h9 j

    9 o/ z- G& r/ I) n; V#未做处理的响应变量分布情况
    : z; T4 W! U& T9 Tpar(mfrow=c(1,1))
    - J& S; o# e; U5 o% L. s7 Bhist(price)9 o( h, O. F8 a6 Z
    summary(price)        #查看响应变量的描述统计量
    $ r- E0 [% D7 H+ @+ G#连续型变量描述性统计
    6 y- X9 f7 g- R- R  _5 jwindows()
    , {; T) [- Z# `) z$ d" A; k& Dpairs(a[,c(6:10)])    #所有连续型变量间的散点图1 a  z2 L( l" ^
    par(mfrow=c(2,2))       
    " W* w/ x" \# F1 bplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    " j) N5 r- o4 G+ W! Uplot(lv,price)* K8 t9 Z1 j; z2 |" D8 c- X3 F
    plot(area,price)
      {+ i4 M. Z7 r1 z6 Splot(ratio,price)9 M8 t! K* D' F1 q1 ?$ @2 {
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量6 b" r8 X$ w+ U2 y; c
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    + b) e2 m9 W# Q/ l; Q+ Q#属性变量描述性统计8 O$ \2 C' r0 V$ h- X4 b4 u- B
    windows()
    % H6 S0 W  G8 \/ Tpar(mfrow=c(2,3))                        3 J6 z4 s$ L2 I; {, Z6 r: t$ n
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    . ]# _* S! M" T1 T5 Fboxplot(price~wuye)                                                                       
    5 f3 A) C5 c7 ^3 g1 Aboxplot(price~fitment)        2 N& M0 c9 C! H
    boxplot(price~ring)       
    # Y  j$ L* A/ T6 B/ nboxplot(price~contype)
    3 c5 L4 E1 ?4 V" \
    & M% [) A% r6 x$ ]- S

    # w" x/ J+ k0 T! b' h
    - w1 g6 w  ]0 ^( V' R
    * A9 j) [9 U4 P+ F1 s
    ##模型建立- g. P6 x2 W- h" q5 [9 c$ s

    $ l7 n: Q5 t( \8 X6 w! d0 ?
    0 d+ y/ Q7 A, h$ H8 k' Y( l
    #在方差分析模型基础上加入连续型变量
    ' j( D5 w0 e+ ~lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)+ O$ j9 h! Y7 M$ n. p
    anova(lm1)                #方差分析
    . `% L; ]* \% n6 e7 ]summary(lm1)              #模型参数估计等详细结果
    9 C; |# ?# u# g! T, B  X7 vwindows()" h' Q9 E1 o3 E) W- u$ g
    par(mfrow=c(2,2))* h1 _3 c8 E. k0 |! w8 _
    plot(lm1,which=c(1:4))    #回归诊断做残差图$ p* Q3 Y" @. y/ P3 Q6 ^7 w: B
    , X, ]: x* A, J4 }& _

    8 ~( }5 p8 X6 p4 ]' p% \$ k7 v8 O2 f) A" E+ `8 R

    7 z6 a8 Y- J2 r3 V3 X3 E##变量处理7 L; C; Y/ H7 ?- ]5 e

    & w0 J: V( q, E6 e

    / B+ Z. Y! {  Z( w# D###对不显著的变量采用分组的方式希望能达到显著的效果9 {; i2 k. U1 L% l! G* N- w' l
    ##对容积率的处理/ w5 B/ Q5 M; _& x% u( ?/ ~
    windows()
    7 ^; h( }3 z, O5 m% P* D& Mn = 4
    * J$ m- }) @/ N* ~boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        6 k1 M$ j* p7 d* ^7 \& A1 b
    table(ceiling(rong/n))                                                #容积率各分组下的样本数: N3 P& K# w/ v; m/ D1 O" P6 s
    ronggrp=1*(rong>n)                #进行二分类2 U, R' ~4 o7 J7 I4 \
    #ronggrp=ceiling(rong/n)       
    " P0 C* `& A' t! _9 A, Mtable(ceiling(ronggrp))           #容积率二分类下的样本数2 m$ J4 I7 _# l1 W5 D5 I9 k
    windows()$ d6 t6 ^+ X9 ^0 z" E
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图5 q6 @6 U( h- H# K3 k, G" S3 |7 A! L
    windows()
    / W( x+ _5 u+ ^, }' {par(mfrow=c(1,2))9 q7 A, P- K. l
    boxplot(rong~ring)                #容积率与环线箱型图
    + [- x$ i/ c- P, o2 q0 F1 s: W( fboxplot(price~ring)               #房价与环线箱型图
    & Y* K! N2 H/ S* Z" R0 N#加入容积率分组和容积率分组*所在环线交互因子的模型
    : y) y8 c3 Z: y; o, Nlm2=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). ]* p0 z0 |( g3 }  x, t3 H% ]% C/ s
    anova(lm2)                #方差分析% a# V9 V. X: l- T* J
    summary(lm2)              #模型参数估计等详细结果! x# _+ U! a8 P6 L+ {3 m
    windows(); x" k; V) p, s9 M' l' Y6 Y
    par(mfrow=c(2,2))
    ; j. r- ?1 v. J. u0 P3 gplot(lm1,which=c(1:4))    #回归诊断
    1 n- b7 F9 g& {  T. _4 h* ]
    5 Q& e$ x9 K5 }) L
    . y( }+ _) ]% v3 @
    ##对小区面积的处理
    - x7 M0 |% P% msummary(area). w! n( `% P9 K* I; F
    plot(area,price)
    0 o5 }( o8 r! e+ y" ]0 {windows()$ m' n3 i5 @- j# X1 r8 P
    n = 1500009 E0 Q" {% b/ Q+ Z- n7 c) H
    boxplot(price~ceiling(area/n))                                                        % o* j) f. e, r9 w
    table(ceiling(area/n))                                                               
    5 W4 O$ {% S# s$ xareagrp=1*(area>n)
    9 }7 F9 {3 i( g) n) Z( Z4 J3 ctable(ceiling(areagrp))
    6 L% c* V/ G- O8 z3 u! z- E! h/ d% @boxplot(price~ceiling(areagrp))* g0 x- [6 ~/ d% ]) M
    #加入小区面积分组的模型& n; }: ]" H9 }1 {
    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)$ U, N/ k+ j$ |+ b+ w
    anova(lm3)                #方差分析) o' U: ]; h+ \, h
    summary(lm3)              #模型参数估计等详细结果
    $ ^: T* E" Z, ~( \) v# dwindows()
    8 |1 d5 S8 r; e( Cpar(mfrow=c(2,2))$ L2 @, N7 z  v9 v; I
    plot(lm3,which=c(1:4))    #回归诊断; F; P- z* u8 `9 Y) M3 p4 o; y$ R

    * f& o! s) J. q9 e+ ?5 a- ^

    * t0 H7 h5 M* |5 b3 J+ [##变量选择6 q+ g; z4 j" K: U0 I3 |; K

    8 d1 T/ R6 k$ q4 V, A/ M
    ; E& V3 C7 Q4 N
    ##AIC准则下的变量选择
    " W$ j  w6 I; V5 N+ @lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    # m, {+ J* g5 o; T* Tsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节4 h$ w! L. W& p) ~- y) Q7 c
    ##BIC准则下的变量选择+ N/ k! p1 c; d3 C5 I/ Z1 P
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic- t  }* p0 N0 c* O" M/ f
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    / D6 j4 D; `1 ^. w+ y" m2 w, O1 s) E* e) a& z1 U
    * |4 I6 I1 y0 a! K6 S
    #选用AIC准则下的模型进行回归诊断
    9 @  D; e) v) O) lwindows()( x) d& a; Z4 r9 z' H1 y4 Q: d" W
    par(mfrow=c(2,2))# }  V! Q; N# Q  u1 o6 h
    plot(lm4.aic,which=c(1:4))  : L1 m  \3 h- Q- C7 U2 G6 M
    . `  K' ?( s9 w6 W) t- h
    ) g/ C4 ?8 ]2 S" ~

    5 k+ k( l/ Y$ p, y% U+ E+ Z
    " P- \' j; Z: Z
    ##数据变换
    / x. P8 f+ Y. M$ l+ f3 }/ N# c' Z: G7 q4 X% l  T/ P* F$ _

    ; u7 G; K0 {# r& _& I#box-cox变换$ e( R' {8 o3 J9 f! I+ O6 ^
    library(MASS): S5 f6 w  P$ u. T8 Y/ U! n
    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))  n9 j# y1 V" w- i
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    & ^/ y/ H; E. Q% V* J. l6 Tlambda = b$x[I] #精确的λ值- T. W. A8 m- x: ]2 h
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    + W+ i4 r9 I. xlogprice <- log(price)
    ( @! G" k1 M8 [- Jhist(logprice)
    : O4 s+ u7 d5 X5 S
    9 Y; |' u, o7 \
    1 k5 @' b" p& @: s% A$ T
    ##最终模型与诊断3 |- E; a5 K, }

    $ E5 b) `3 M6 r+ ~

    ! U! S, X' N4 m  \  }lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    - K0 B/ E" P- Ewindows()
    5 m) r7 H7 I- c3 T, apar(mfrow=c(2,2))
    , C  B+ t/ g! j% y! M/ ~6 uplot(lm6,which=c(1:4)); y8 g0 Q; e$ H6 }( u& z
    anova(lm6)
    $ N3 b( _# I+ y# {# ]0 osummary(lm6)
    3 }4 q/ M' F2 Y/ g* n  ?. H' `" K# M( Y" `6 H4 H$ G
    1 S/ U- m9 ?4 |# z
    请关注数学中国网微博和数学中国公众号,联系QQ 32437105602 V! M( e9 n% u) W  Y

    / y# Q$ i6 T  _1 L( L3 M% \
    ) v* L+ ?" K( v+ n/ H( q
    / s) y3 r2 ]! V* H+ s
    0 `. x, Z+ U3 E9 V. d4 S1 h
    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的分析没有- ^5 [- p' T- W& P) y( {
      b  K  F, K4 J- f9 K0 G3 d$ }

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    - H% E! Z6 ^' p, ^" z# j2 a4 s5 ~% [6 L' V2 b4 o! Q3 e$ s  F

    点评

    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
    9 P  w  p# m  k) q$ J( e太好了,又认真的看了一次,发现自已差太多了

    4 b3 d) _0 N! D, x3 l/ p/ z我每天会发一些好资源的2 p% p3 p) ?7 s  h0 u
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 . {+ `- ?( _; s
    一定会认真的看看,发现这是R的,有python的分析没有
    6 J. G* U* @7 `1 h
    有啊  M: h  W! q" b8 Y- [8 C4 ^
    回复

    使用道具 举报

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

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-31 17:31 , Processed in 0.250803 second(s), 79 queries .

    回顶部