QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5963|回复: 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 Z: m; P' y% N6 A% y4 U+ q

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    6 L  Y! S& v( t( m! u这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ; H5 P" W: e2 V行描述性统计分析,各连续型变量之间的相关关系如下:
    9 b) o; v$ A$ i
    4 p- m- O) ^& w' N, j

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

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

    $ N/ p' e; z- P. B4 e  _# v

    : D5 R( P8 k! M; `3 {1 Y: o5 a4 B4 z1 t7 \
    最终模型残差图:
    / ^5 D' d( L4 ^! f/ N6 w* s2 t$ w% [% X0 W* i/ @
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    . W9 w& h" I6 u$ O属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    7 h+ e7 o$ R, u1 _3 a4 g7 i* m. i( V属性变量的具体影响在此处分析略去。2 f4 k' M9 e3 V* s
    连续型变量的影响主要为:# k! l) h  L- |. E
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    4 J4 D2 W8 j# s% ^! B 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
      n0 c/ K( k+ s4 L" e同时,原本为连续型变量的容积率经过离散化变为属性变量后:3 d8 [* p" Y& ?) s' }6 v
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ! j6 g3 F+ L9 d2 g, N 容积率与环线之间存在着交互效应。" y/ r1 s  d- y0 ]5 W" ~: ?. I5 ~% S
    rm(list=ls())                                                                                #清空当前工作空间
      Y$ R7 O- K& e' j6 h; u  u  T( [) asetwd("D:/回归分析")6 p- h: J- X; Z
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a7 _& U3 p& @0 B2 x
    View(a)
    + r' H6 E) Z) F$ }' Zattach(a)# R* j3 l/ u0 @
    names(a)
    - Y4 G; [0 O! C% C
    ) k$ I5 b8 Q7 c/ t+ G6 _0 U$ ?' J
    9 X5 f6 o! {% ^
    ##描述性统计; ?6 v' p  e/ Z* x! Q

    9 i' y/ b. J( D( L3 j9 }

    % J7 m/ L: C+ P" D# T4 F* }#未做处理的响应变量分布情况$ J: H* H7 K! g% j& v& G
    par(mfrow=c(1,1))
    : f. \% ~. K1 ~: chist(price)$ `* h0 U, x) K* @3 y! \+ K
    summary(price)        #查看响应变量的描述统计量! h3 P" M: n& s  W4 ?) o
    #连续型变量描述性统计
    ! s" b9 N7 p+ vwindows()
    ; H: R: r) [5 N' S; ~3 b% Ppairs(a[,c(6:10)])    #所有连续型变量间的散点图/ M4 L& p6 U* Z* C
    par(mfrow=c(2,2))        1 M. g6 y6 ]5 g, f$ r
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    / ]! `% ?, [" E4 `: u( oplot(lv,price)! k! q2 a: _. _) K2 `  i
    plot(area,price)) H; G5 s' v+ V. P+ W* u7 c: k
    plot(ratio,price)
    9 s0 o2 R' [2 ~: N8 dsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ( R% y! ]- Y$ K" V2 C/ q+ gcor(a[,c(6:10)])      #查看连续型变量的相关系数5 i+ g" A# y* b; Y2 {& F
    #属性变量描述性统计+ r! m6 R5 W# u0 O- H( g# h5 s# D
    windows()
    5 a. Z, S" {) G! npar(mfrow=c(2,3))                       
    3 c( [( H2 ?6 \$ g0 xboxplot(price~dis)          #每个属性变量关于响应变量的箱型图: g! J9 ?  V7 j2 D/ [$ Z
    boxplot(price~wuye)                                                                       
    ; M! A; H+ ?& ?; `3 @: Cboxplot(price~fitment)       
    9 \" h0 x. ]( _* H, j3 @boxplot(price~ring)        & S2 H- y' M! _2 j! T8 h; E
    boxplot(price~contype)4 t; m5 i/ @; U6 y

    , V- @5 E2 b( u
    & u4 y7 V  s( s: a2 v$ t0 {7 t

    # E) x& w5 t7 u% }1 T1 j

    ( c8 \0 d- S' `  Q% T##模型建立
    ; C+ n" y6 \/ h' p6 D9 A. ~) w' ^" F8 X& H9 E' s- O! B* h
    ! c/ J; F+ k  r) ?5 X4 j
    #在方差分析模型基础上加入连续型变量
    5 Q1 D6 l0 U) B4 Ylm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)7 ~# n1 T+ K& Z0 m+ ~' i
    anova(lm1)                #方差分析3 E) ]+ ]! d! q8 E9 V) S' c' }( H
    summary(lm1)              #模型参数估计等详细结果3 F0 ^. q. n2 w0 |: K% h
    windows()* o$ Y% w! w: K# J: w  {. w
    par(mfrow=c(2,2))
    / r" C2 g9 u/ m( r' T: k0 k, Kplot(lm1,which=c(1:4))    #回归诊断做残差图
    3 D7 N" A- o, A4 E+ z1 t8 b
    ! @+ b) A# z, n, T: ?# N3 s
    7 g0 w6 X) t6 @$ x! U7 ~5 e" r

    % Q+ e, E( Z+ b" O# k

    4 e7 n% e' d4 R# V6 o- P3 L##变量处理: B0 T/ ]% a1 y; z9 ]+ ?: B/ a, _9 o
    $ Y3 F% M, l, \6 R: z$ |3 a# M
    ( T* h7 }( t9 M% R$ s
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    ( z) E" o; x7 T, {##对容积率的处理
    $ |) P) S+ \$ x( iwindows()+ ^4 W- L* H5 ~% a4 X& T) D
    n = 4) ~3 `+ C2 S: M( _
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    4 m: x# p# v: Mtable(ceiling(rong/n))                                                #容积率各分组下的样本数1 X/ O1 b5 w* a* P: O$ B
    ronggrp=1*(rong>n)                #进行二分类* @8 k: m$ G4 ^7 l
    #ronggrp=ceiling(rong/n)        2 U0 Y& H7 x2 i* D
    table(ceiling(ronggrp))           #容积率二分类下的样本数: ]6 K/ y' f1 z
    windows()0 T" `$ M" b0 A8 ~7 t
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图, E" o) p" K; M8 w
    windows()
    7 ]  ]2 N+ F9 T# ?par(mfrow=c(1,2))$ j5 y' i, v2 g# P
    boxplot(rong~ring)                #容积率与环线箱型图
    8 o/ O6 s! }. j- n. k/ @- x1 M4 bboxplot(price~ring)               #房价与环线箱型图
    & z  }1 e: Z6 v9 g# ^8 w# i#加入容积率分组和容积率分组*所在环线交互因子的模型$ ~) [& N% H8 |4 P
    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)
    # G! ~! O& K& ?4 t+ ranova(lm2)                #方差分析, t2 x! f" K4 ^- L) q! c
    summary(lm2)              #模型参数估计等详细结果
    . L0 ~- W6 L7 {, jwindows()
    ' x& v; L: q1 v1 f, Upar(mfrow=c(2,2))
    7 }$ H5 j* Q0 T5 m' {! Rplot(lm1,which=c(1:4))    #回归诊断! I& ~6 U1 R  V; h) J+ u5 T

    : Z! R4 _2 F: H5 X9 B

    . G  f+ z. w) b/ n* R1 l7 @, @1 [##对小区面积的处理
    5 Z. O% S! L: i, s! m+ [summary(area)0 _/ Q6 r0 ?4 ^! d9 q. W! w
    plot(area,price)
    # f- e9 b/ a$ g6 V' owindows()
    6 p9 N5 O2 u6 P+ _8 b( ]$ `n = 150000
    2 l4 }9 l! x0 I7 ?8 N0 Iboxplot(price~ceiling(area/n))                                                        ; U* V* F( Q  o( ^0 c* T
    table(ceiling(area/n))                                                               
    : p  l; o+ o+ [/ dareagrp=1*(area>n)
    6 d6 B" Z3 x1 S" d  O5 c* }7 r: btable(ceiling(areagrp)): }5 E4 n4 e. W& G% D7 u
    boxplot(price~ceiling(areagrp))
    2 r& `" H7 a% r. R; X' C! V#加入小区面积分组的模型
    . s" p$ E& N! n2 U, Z# Ylm3=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)
    ; m5 l! G- u( e& q$ lanova(lm3)                #方差分析- y  W2 A. F0 K/ e7 {1 F0 ~' ]
    summary(lm3)              #模型参数估计等详细结果" D/ [- K2 B. [4 v/ K
    windows()
    4 i8 P1 \, G( ]$ Apar(mfrow=c(2,2))2 |- r7 _2 a8 t/ q2 N. c& o
    plot(lm3,which=c(1:4))    #回归诊断
    + i0 y0 \$ K9 ^7 D6 I8 e( w. Z4 [+ n5 O: D
    3 @9 a! d: z7 K3 l9 S3 Z( E, G$ ]" O
    ##变量选择
    0 O; x! i8 H" o) u5 `) _& H! T1 G  o+ i5 ]: e5 T8 U
    ) c7 i8 k% X% [! i3 I- A% p
    ##AIC准则下的变量选择
    ; C2 W+ Q0 f) u! Z' r: R& klm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic6 ]4 h2 t- z5 \5 C; P$ w/ S
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节. r+ a! Z1 a- t# _! f% s
    ##BIC准则下的变量选择
    5 @7 q, m0 n0 ?; v* p  @) h- p+ [lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic; @6 ~; b4 K3 d8 x( s$ D6 @# a- X
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节, Q1 z( r! ]6 j  P, A# @; p
    " B& f9 A8 N, d) @( M' R

    . m8 ^3 x2 N% n2 j" h8 ?1 X/ S' w#选用AIC准则下的模型进行回归诊断4 F0 C; q+ t5 R: s, G- y
    windows()! q( V) }% I- d) a
    par(mfrow=c(2,2))" ?9 B: k1 Y6 {
    plot(lm4.aic,which=c(1:4))  
    & i9 j$ O, e( K3 C$ r& q, b
    ( X! c2 n" Z$ t
    5 T) m* ?" t5 r# z8 v
    ' C. ~9 Q# g  Y; D% q5 x% q
    - R- Q+ e* h0 v( ~
    ##数据变换% x& Z! S7 g& M* A$ F
    % j9 @# p$ K: d1 e) ~" [$ K$ I0 i

    1 @% s" N6 @3 [# s; t% V#box-cox变换9 T; A2 o9 ]  q$ {. L1 {
    library(MASS)
    6 c9 h2 D: g! k! Q  `! J4 d/ ]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))
      i5 ^" S. c) i/ _) lI=which(b$y==max(b$y))  #定位似然函数最大的位置
    1 f2 e. ]# u, m$ {1 |. ^& }6 l1 Elambda = b$x[I] #精确的λ值) F0 N8 g. a6 B& H, V
    #λ接近于0,为模型简洁性,可以直接进行对数变换$ x) R4 b  P; U8 ], m' ?
    logprice <- log(price)
    ( z3 t3 n" Q: u$ U9 g3 o5 v, zhist(logprice)
    : S( Y4 }2 w! N' o2 Q% O! ]% i& l% q6 W( q) A1 L$ u& w$ p' a

    & \- F7 q. [0 `* B; V##最终模型与诊断
    $ S0 Q6 W& x! j6 E7 K+ e7 g1 Q2 j+ F4 x9 w& D) _8 k7 o, N7 V* o
    - b( h, _0 N8 D2 w- y
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)" \- B2 r, |/ \& Z" ?1 C
    windows()) P9 K5 G: _7 {  e, o2 h  v* B
    par(mfrow=c(2,2))7 o8 S% i+ _$ X9 c0 A3 d' K
    plot(lm6,which=c(1:4))
    ( E7 l- ^! e7 \  W0 A7 lanova(lm6)6 B$ d: d) ~0 H3 _" k' H
    summary(lm6)5 q( T9 @- R; O# r0 G8 u. W

    , d# o4 t% k# `, u  V# M( k* L
    + w5 L" F; p0 T% _/ s7 u1 }! Q请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    : d/ Q8 T8 b0 F+ c1 Y. i+ y

    8 j7 E% h- C$ d" C' f. D1 l- z0 N! E( a; ^; X* ]

    & F) }" D8 ^3 \. x% @* s* \# Q+ x2 W1 u* H
    4 y3 ~$ ]. X5 N, h& `# b) V) \9 [
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    & i9 J% P# _( a4 K' N! `一定会认真的看看,发现这是R的,有python的分析没有

    2 _$ j1 L5 o( K) n" K( t1 _有啊- K. W) C/ C5 i% B
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    - k) k0 ?  X5 L* R太好了,又认真的看了一次,发现自已差太多了
    * x7 ~1 @. p: h" {9 ~# t; i
    我每天会发一些好资源的, f6 F- Z8 R' O
    回复

    使用道具 举报

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组: 数学建模

    群组: 2014年网络挑战赛交流

    群组: 学术交流D

    群组: 数学建摸协会

    群组: 第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    / u; ~0 F' m$ \$ H+ U8 K+ |0 C# ]4 B- Z- 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国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    - I& |( W7 b3 @& X6 c  ?0 I
    / f% K8 L4 Y- ~9 I: }" r

    点评

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

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-28 23:31 , Processed in 3.986329 second(s), 80 queries .

    回顶部