QQ登录

只需要一步,快速开始

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

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析/ m9 a% ~& I- u# Y% E9 U7 s

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    * \; }6 k$ U5 Z: J; C这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    0 f  v1 m$ ?) t: r& n' `
    行描述性统计分析,各连续型变量之间的相关关系如下:
    # n' F8 V4 m, N
    7 N; Z6 u. l. Y0 k- f9 T- D, Z

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

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


    : ?8 d" l1 R0 g4 a  [$ H
    1 p8 N+ J% H# l
    2 f+ q: b4 y0 ?5 Q' {. h最终模型残差图:, B8 f3 T$ A4 \
    0 J- Y. A) x: ?4 [
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    ' C# x4 {9 t8 ]+ \6 V6 ?属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    3 M% T: M! y( h, x9 v6 }8 f$ i' ~3 N属性变量的具体影响在此处分析略去。
    : J' @) d' [# i, }4 A: c连续型变量的影响主要为:. J* V7 t! \# v# k
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;( T- I( L. ?- L9 T5 N: D4 N% m  @
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    & B2 N/ ^/ r9 S& R$ |, A( g同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ) b9 j' b: h! `; h5 J 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;; i( o: }" J9 N; {) Y' J
     容积率与环线之间存在着交互效应。9 n" Z0 _* ]6 {7 z
    rm(list=ls())                                                                                #清空当前工作空间
    % i0 d1 v9 J5 j( C4 J) Csetwd("D:/回归分析")7 a: t. `; e" j! @2 ^
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ( o: j1 L6 u& z' J( a2 z  j- v" FView(a)' k4 v( A5 O1 m. R, o
    attach(a)
    8 T1 F% C# y& L6 |5 unames(a)* y( J; `% L$ W# Z2 d1 A

    " R; h% W- J' E) t9 d/ A1 {

    / k- e7 N- O4 N5 x# b4 w/ E1 O##描述性统计' a9 m( X- c* F* _, F/ d2 V  t8 B
    1 h' e1 [8 C0 M/ X/ \3 \

    * {0 w* J- J' i#未做处理的响应变量分布情况
    - o2 O6 p7 B& e1 X4 Wpar(mfrow=c(1,1))8 \1 H% A5 R6 d+ p
    hist(price)
    2 |  R; J! [# j- _" D, p3 Y/ asummary(price)        #查看响应变量的描述统计量
    # V. p* E8 M+ i& u. C, O( W#连续型变量描述性统计
    ! V$ |# E- Z, v+ @, Ewindows()
    3 v/ V! V3 d& fpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    3 I1 G) F2 L5 Spar(mfrow=c(2,2))       
    + h# r) d8 a8 q  P5 h. T* lplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    8 b& m/ s+ F2 R" ?: U( Pplot(lv,price)
    0 d& [- F/ V) `. t! O+ c2 p' W) [plot(area,price)! r" a( u2 K  r& R' ^0 \6 N3 a
    plot(ratio,price)
    ; `" e# B! O+ zsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ; ^5 M! v; }- X" s- }8 ?. w5 Ecor(a[,c(6:10)])      #查看连续型变量的相关系数4 H. P  v/ I2 Y' @# N$ Y- k8 p7 w% b
    #属性变量描述性统计# E8 e- c; ~1 p1 d" N8 A
    windows()
    7 E7 q# X# Y! s* n5 rpar(mfrow=c(2,3))                       
    . D' t0 E( Y0 O* R. g# jboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    ) P' ^) k& |1 X3 Wboxplot(price~wuye)                                                                       
    * s* r# E& u2 s1 pboxplot(price~fitment)        & d0 K4 z) _7 o3 ?
    boxplot(price~ring)       
    7 y/ B* B) p4 a! bboxplot(price~contype)
    & S' s/ R+ o  k* S3 ]! N7 M7 v3 q7 X3 J5 k2 h9 y! j' ~: M: X
    " w  O. W: r5 h7 w/ {
    8 E( x/ ?8 B* c' v# W2 ~# z2 d
    $ B3 U& k) P+ D( K# W4 U
    ##模型建立2 ]# K# M1 k9 R! d7 E
    4 R0 r* O5 x" v' g

    ) i8 A, u* }" N: K; M( e% E#在方差分析模型基础上加入连续型变量
    ! D2 x, i% u. p* h6 I+ M3 N; a% ylm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    $ H4 W& m# d) W: Ganova(lm1)                #方差分析7 u1 x2 W2 L4 v3 [- ~! |) [7 D  z# c
    summary(lm1)              #模型参数估计等详细结果, b  K  r* `, g
    windows()3 J2 k) u8 a! g' L3 K9 ]
    par(mfrow=c(2,2))% A" i- H) k+ p/ [7 W& T1 o* I3 P; h
    plot(lm1,which=c(1:4))    #回归诊断做残差图7 g6 q- ~5 q: N3 S; E
    1 s) z. H/ _6 o) j- c1 Q

    : M# J/ [: E7 j/ O4 L9 F. i$ a: g( u$ O& W2 x2 P% E( i, g- _  F, R
    ' @; \9 X3 ^* V0 u% f7 d% _
    ##变量处理2 [, E9 s* j  G  c, ?' V6 O5 L

    5 b' x* n. Y9 l6 \  q

    6 G" O  e1 a+ t9 v4 M. z" ~/ l###对不显著的变量采用分组的方式希望能达到显著的效果1 n% |3 m2 r# L' Z
    ##对容积率的处理
    % ~3 u2 V$ L* U% y$ v" v& M2 j5 twindows()
    5 m  t9 A, q% o% H; B  m1 k1 _n = 4
    + k0 |6 b; T, ^# o2 f; H% E* j& R2 Vboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    0 s' c# ]! e! Gtable(ceiling(rong/n))                                                #容积率各分组下的样本数
    2 W) L& C, R9 |) ~ronggrp=1*(rong>n)                #进行二分类
    ; J# o& a, r" j" u#ronggrp=ceiling(rong/n)        * E9 ~+ b5 X9 e$ d7 P6 |  c( Z
    table(ceiling(ronggrp))           #容积率二分类下的样本数: V* _! N8 L. R) ?0 f! R1 d
    windows()
    + ^& u3 H8 I6 Kboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图, p  Z  \3 e* L! z4 Y1 D5 z9 O- e. n! m
    windows()  V) p' N: a. I3 H2 z7 \8 ?
    par(mfrow=c(1,2))
    5 c1 n5 l% X; ~) i' f% M% Kboxplot(rong~ring)                #容积率与环线箱型图
    # t. n# b* m2 ^2 H! K  dboxplot(price~ring)               #房价与环线箱型图 6 e  w. y/ e% p) L9 E+ W8 a4 h: z% P
    #加入容积率分组和容积率分组*所在环线交互因子的模型- t% b0 E3 h. \" _
    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)' P) N" J6 N% u! p' ^
    anova(lm2)                #方差分析4 q% ^! F/ _  \& r8 R# E8 R
    summary(lm2)              #模型参数估计等详细结果
    ! E3 Q8 d$ G4 Qwindows()
    & ?; t& R7 G2 J2 Hpar(mfrow=c(2,2))! A# Y* j! y; s% a* o% N
    plot(lm1,which=c(1:4))    #回归诊断
    / m8 _$ t0 r/ t+ q2 k
    9 Y; [+ l( W+ Y2 x

    ( }" L3 O3 @; P! X; d##对小区面积的处理
    ; o8 R+ y% `7 gsummary(area)
    : q4 W4 w3 B, c5 ]: m( `plot(area,price)
    $ O) k- u% D1 |" u; v" iwindows(), V6 T) J. E- p1 S+ ?) l' _
    n = 150000: L1 ^9 s# Y1 q3 `& c7 x/ c' p
    boxplot(price~ceiling(area/n))                                                       
    1 M, E+ G/ m; t# v; |table(ceiling(area/n))                                                                9 I: u: \, `+ Q7 Q
    areagrp=1*(area>n)
    * c* \# S4 P  h  a! stable(ceiling(areagrp))" `, U9 e4 L1 ?8 c# N/ x! {, D
    boxplot(price~ceiling(areagrp))
    4 I; u6 l+ \: O; `. [#加入小区面积分组的模型& `8 O0 w) v; O) G; x  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)7 L8 x0 L5 Y+ j! x
    anova(lm3)                #方差分析
    2 `* A" I8 Y; ]; @summary(lm3)              #模型参数估计等详细结果
    1 K7 G# X( t3 H) x4 \2 Kwindows()+ `1 o2 V3 k. K
    par(mfrow=c(2,2))
    " x% ~. \( x, y  X  V! Tplot(lm3,which=c(1:4))    #回归诊断
    1 g2 ]. [1 ?( ?3 \8 j8 z, a1 A- e0 @( q% j, y; O8 X7 w

    + k# v8 Y2 q3 ^7 q( m0 I3 f3 e/ ^##变量选择
    3 C1 c% S. Q( u  q
      O5 {3 ~1 Y6 i7 t2 t* Z( F# c; V

    % `3 _% S* _* r/ Y" L5 _##AIC准则下的变量选择
    1 H. M+ }& l  }: N5 Ylm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic, d: Y+ q6 T) E! |
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    * S: P3 E$ A+ j6 Q( k) d##BIC准则下的变量选择
    2 F* k  h% @8 g$ @6 ]* \6 klm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    " P  Z: r: c+ ^; Q' psummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    8 E4 q0 o% N+ x4 X/ K) O) Z* h( y2 K4 m; @

    8 t/ d( M1 U) u, E% Z#选用AIC准则下的模型进行回归诊断
    . ~7 u; y3 H  T4 Ewindows()* P' J: P- R: A! ~: ?7 L5 P0 i
    par(mfrow=c(2,2))* q4 U. W; ?% J5 A
    plot(lm4.aic,which=c(1:4))  $ ^% q# D' U$ ~4 o) _- ]; D
    ) w% k1 C. D1 D3 q
    * {& o. B5 w5 R7 P
    $ W. Q6 X. u( x9 n8 B
    ) k8 e: Z0 s- R. a
    ##数据变换$ S0 l2 S, Q0 X  V- P9 h
    / w3 H6 d- _0 p7 _- U5 X9 L/ H# @7 w* V

    , S% X0 m9 |2 {, O# G9 _( H  ^#box-cox变换# B& u1 |+ O2 A/ ~0 l# c
    library(MASS)
    - b! Q6 }3 x6 ?- db=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))
    7 x2 S) r: Q8 q9 WI=which(b$y==max(b$y))  #定位似然函数最大的位置- w, H5 r  o/ |* Q+ M* n% {& l8 e
    lambda = b$x[I] #精确的λ值
    ) \; L4 i; `9 i4 K$ p6 t#λ接近于0,为模型简洁性,可以直接进行对数变换
    + R. t6 u/ @/ Y, hlogprice <- log(price)3 ], W5 ~% e1 Y5 i1 j3 M
    hist(logprice)
    # c/ \* [( ^7 Q. T
    * F1 [5 v5 V) ^

    : M' h$ W' E5 A5 O! c& S##最终模型与诊断
    8 E1 c' `; w2 Q, m  {
    " u8 g) H3 B& k
    * E8 J2 B& x5 B/ U. n
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    " l: M5 R  P2 s6 U# Q$ C: Qwindows()2 H! e3 m5 L2 T, k
    par(mfrow=c(2,2))
    7 V9 v; l2 e. P2 Q7 bplot(lm6,which=c(1:4))
    , K. c6 [/ O  e( [anova(lm6)
    ) `& q+ p5 y( |  A/ G4 L' e3 xsummary(lm6). i6 k& n2 Q7 d8 i- R& e+ y; C' a9 W

    ( k( O" Z' n8 o+ P, |1 Z
    ! [; K  L5 p4 m: p. P请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    6 ^+ q9 N: j. l0 J" @

    + a9 D$ H/ ~+ |) b, ]9 W$ d4 U% R2 ]% Y/ a

    & j. ?, Q& A$ B, N* k6 @) @' F* P1 @* r8 z* ~3 m9 F4 x
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    ( B! C8 ^& J. C8 J% q0 R& q7 Q+ n% q# k6 X+ w

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了& P5 N  R4 W- m% ?" p
    7 V/ V1 r+ P  |! F  \; }7 g

    点评

    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 ) z( _* v% K& O* L9 c& E
    太好了,又认真的看了一次,发现自已差太多了

    , D' U/ Z& ?9 b' |我每天会发一些好资源的% J: _2 m3 {& t0 t% Z! _
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    & Y% z* Z! g$ l' a! k8 a+ x一定会认真的看看,发现这是R的,有python的分析没有
    1 S. j3 [) _4 b1 J3 N; A" @7 C' `
    有啊
    3 R+ a! }; r' ?8 V$ y* o
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-5-9 21:51 , Processed in 0.586819 second(s), 78 queries .

    回顶部