QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    . p* f  Y. I) |这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    7 g" Y, i9 a. g' x$ s9 P
    行描述性统计分析,各连续型变量之间的相关关系如下:
    $ ~4 `2 n( L* G6 g7 [, r6 X* B4 n8 P6 ]0 n! |

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

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


    8 {* Y1 v4 g' O/ Y
    0 s' v5 ~& \- N9 Z: c0 p& N+ ?, U. L; \1 z: V! {0 O. W
    最终模型残差图:
    * u8 J, O/ ]1 ]3 }1 s7 Z
    + X% |2 H& ?" A" {3 G8 ~  v/ p
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:- o/ `* T- r) i* u8 b# B. Y
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    - U6 s2 a1 }8 E1 W: J  Q% K属性变量的具体影响在此处分析略去。
    + D( J1 V% q% N4 ^$ p连续型变量的影响主要为:
    ; H; w& p2 i5 M1 z/ F3 H. a 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;7 s% }5 C" O7 Q; f$ j) J
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
      _3 g# C, X7 k同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    * c& c( A' J. ?& Z: w( k 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;: b: `' y8 {0 [1 z1 Q' g: F
     容积率与环线之间存在着交互效应。1 G6 T. c! \  u' e0 U
    rm(list=ls())                                                                                #清空当前工作空间! Z" Y$ m. a- E7 W% I. a" H5 b
    setwd("D:/回归分析")
    7 k" U/ Y) q# Y! P: l3 ]a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a& u2 f' h- L& S* r3 c8 I: f* h5 m
    View(a)6 w, O! P  ~7 Z! ]7 J0 ?
    attach(a)
    9 M+ ]. g- V5 [0 E: ^names(a)6 ^" f2 @: [7 \- e% S  ~$ d
    6 L2 ]! Q- q& F
    . i1 e8 Z& p: K4 O* ~. t% r
    ##描述性统计
    ; ^1 ]( f  |; A9 k: j! F" Z8 U
    0 Q2 v; ^& O+ Z- T

    ; v. z: l$ Z) K% g# J% `8 P2 N#未做处理的响应变量分布情况
    2 G3 @+ G. i$ A9 r  f( spar(mfrow=c(1,1))
    ) K! }& h+ |4 D2 P$ hhist(price)2 j; D; A- d2 @6 I
    summary(price)        #查看响应变量的描述统计量8 i6 B- a( c0 ?- K5 Y1 @7 S! \
    #连续型变量描述性统计
    8 J/ H3 m/ u) w' Y7 W  Nwindows()6 U1 f8 z" b0 d6 X* P
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图2 O% _0 N# f7 z& I" J, w( x
    par(mfrow=c(2,2))        ' D% b0 U3 {3 W
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    ; S& m" i. m! w& G  Hplot(lv,price)' R! M3 |+ V4 c( J; _: f1 V$ f
    plot(area,price)
    0 y* v) y! d8 r0 c2 w3 m# u: {plot(ratio,price)" N! }6 t' U9 j- M
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量, g! Q" Q  ^/ r) a
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    ' u7 M* }% e5 {! M1 |7 A, r1 z- q; v#属性变量描述性统计- H# ]9 z6 V$ j& j0 ?) |
    windows()
    ) c* B0 n, b9 \- ^+ f& u; wpar(mfrow=c(2,3))                        3 g7 K6 O2 ~  k9 @# }. \8 Y' \+ L
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图4 B6 K' E" j$ `0 |( k8 \& G  D
    boxplot(price~wuye)                                                                        6 k$ l* `( w9 }! r5 e* ?( T5 }
    boxplot(price~fitment)       
    3 }- w! |& W  p% L. wboxplot(price~ring)       
    : a/ Y6 P7 P$ M0 Oboxplot(price~contype)
    2 r6 V# ]/ U5 s2 v  ^4 p, g; Y! h' I
    & x  t. y7 B' h$ a2 ], p

    2 G4 }. g; m* L9 \3 C6 N0 F+ q5 ]# m. h( X. z

    2 M; E2 q5 k: U' Y##模型建立% Q! y4 o# ^6 g. ?) ?- W

    * O4 t" z+ N' p' k; ^+ {( N" B
    : z( O# K& C. t8 Q( K/ f
    #在方差分析模型基础上加入连续型变量; `, U' R) y( x4 M# v( h
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    4 D9 g) V: \: a: X0 e/ Ranova(lm1)                #方差分析
    9 C9 Z: f: O! N3 rsummary(lm1)              #模型参数估计等详细结果
    0 s! G5 w8 l) b4 Q: |) B8 twindows(); ^9 R6 i/ K2 \8 i2 U$ H
    par(mfrow=c(2,2))
    ) ^5 R% O5 Q" |8 }% ^9 _0 oplot(lm1,which=c(1:4))    #回归诊断做残差图' ?- _- r# A3 n7 o7 g1 ]# T
    ) S5 Z9 c6 u. V

      N' M5 f) o3 z0 d  C) A( K; Y  \/ K  ]* C. j
    7 W/ Q6 ~1 s/ k+ \
    ##变量处理3 e4 }) Z! ^4 s0 y' U" z- i7 U

    8 ?! n4 z9 J! J* p6 ^6 b
    % L+ Z7 K  n( S( L
    ###对不显著的变量采用分组的方式希望能达到显著的效果6 ^' y/ Q" {/ ^) Z! G
    ##对容积率的处理/ m' S! \7 G5 ~2 i: ]; v% ?
    windows()7 Z5 u; U% L: D6 k
    n = 4
    ; C, m' K% p5 M9 L8 X& w. \5 _0 Gboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                          T# {4 q% h3 `: i
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    7 ^; s8 ?% b6 sronggrp=1*(rong>n)                #进行二分类  q+ ?# x( `5 ?/ E4 R% c
    #ronggrp=ceiling(rong/n)        2 H) a3 `5 C2 f! n: s! f
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    $ d- C' y6 R9 G5 kwindows()
    2 l* p2 n8 b$ x- Eboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图2 Q! R7 [  f; c/ h5 R7 G8 ?5 A
    windows()2 Z+ C6 Y' H; Q2 e7 I4 w  Y
    par(mfrow=c(1,2))
    ' F- Y# n$ M" w  i  V+ v2 v& zboxplot(rong~ring)                #容积率与环线箱型图0 W4 p( O& q+ g. |# K) H7 _. _  u5 Y
    boxplot(price~ring)               #房价与环线箱型图 3 N1 w5 j: y/ P  N- W, e
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    0 b7 T4 {8 O" 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)  Z+ {: }$ c, d5 {
    anova(lm2)                #方差分析5 R- b0 C' t8 `! }& Z
    summary(lm2)              #模型参数估计等详细结果8 {) x! `# }1 v9 q
    windows()+ o. E% ^0 J# g9 w
    par(mfrow=c(2,2))
    9 y& E$ l1 l1 n  `) S! H, z+ Qplot(lm1,which=c(1:4))    #回归诊断
    $ E  F" u, Z) f/ M4 E# V+ q' [
    - g+ g% o* Y- `* e* W3 v( j
    0 q2 ^, U1 t1 q( w; |
    ##对小区面积的处理, F6 \2 a' k& U, e
    summary(area)0 t5 O' ~4 E1 }# k- a3 T9 z
    plot(area,price)) C# d% j& c  j! z( T7 w3 ?1 F
    windows()
    9 P3 U2 w% B: U% r3 v/ g( o7 ln = 150000% \7 ]' I% y3 c* {, Q
    boxplot(price~ceiling(area/n))                                                       
    ) M5 n- {$ U- N2 ]1 D0 ^% h* htable(ceiling(area/n))                                                               
    " w: K- _" p% _) {# p# h0 Iareagrp=1*(area>n)
    " s8 T$ w- y& `% I  W" f, w/ Utable(ceiling(areagrp))
    ! F$ P$ w9 q1 Q) U% X  @  P# xboxplot(price~ceiling(areagrp))
    4 w- B8 s3 |4 ~#加入小区面积分组的模型, n: _) b3 ?/ H. H# C
    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)+ W# s8 I8 Z& ~/ m; \$ i% t
    anova(lm3)                #方差分析# _! d  z: i# }# j
    summary(lm3)              #模型参数估计等详细结果
    " M8 V& b* s9 X! S4 v- C! Ewindows()
    2 e' t; h" w, v( i5 y* Ipar(mfrow=c(2,2))3 \; Q  X; N  u  I
    plot(lm3,which=c(1:4))    #回归诊断
    & y( D# G: j& Y+ m; I- n' L$ C( x$ r- P* e* ^6 J! \5 O, _
    * t+ Q5 q" q* {9 B. N
    ##变量选择; G1 O: P+ c" L1 L2 j+ Y5 m

      m; Z3 z/ z  ?' P# [% {- V
    $ H$ P6 v: q3 m& J
    ##AIC准则下的变量选择8 s( z% o/ n! W' E. M. x
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    0 q' _+ R( O' O1 L% t; Y3 msummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节5 ^; g3 o! B  ]4 Z* s7 X2 U7 h
    ##BIC准则下的变量选择
    ' ?) i: w8 F$ Q" clm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    , X6 \# p7 ~4 S: o6 g5 q1 {: n" Z8 X( Qsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    9 a; N, F0 Z& m$ ^) O1 u
    ) p. d% \, H! ~5 D1 t

    5 F6 w  g0 w% z7 a( d#选用AIC准则下的模型进行回归诊断8 k5 r& d  j# Y) B* |, @( \
    windows()
    ' l" U! G# C! A3 [1 w) B1 Dpar(mfrow=c(2,2))5 ~3 o+ S9 b) D
    plot(lm4.aic,which=c(1:4))  ) d; J4 [/ B! ]* Z4 K

    / Q+ |, w1 W2 h, y- `+ U  _

    , C# `5 U9 k) R0 W( V% x
    ; f, b* |( [# G. r7 j; F* p, C# j
    1 t# H9 a2 v# o7 r' w$ K
    ##数据变换
    % C  e5 ^3 ?! Y
    & s( z, T0 X9 O3 ?8 R2 Q/ o! E
    8 ~2 M& _0 a5 l) H# @. f4 P# \
    #box-cox变换
    * d% B7 q" G8 ylibrary(MASS)! G, x" s% k2 G. |  y
    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))" G: F& C* O+ r) N
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
      q. ]$ |# Y% q* [- L. U& ]5 klambda = b$x[I] #精确的λ值8 M+ c; @" k# a- ]3 o5 L
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    . }( v. p! m8 M. }! o4 a9 Q5 Zlogprice <- log(price)
    ) i0 J* i* E* shist(logprice)
    - F9 F* C3 h; D4 j; @
      b9 Z- q; p( z4 {* ]% W

    ' z& _- I$ g& n  B##最终模型与诊断
    3 z  ?4 p$ E( }, `, _. d1 [
    ( l0 W+ F( r, T. m0 t% L+ @) K4 b

    ) `' X' y8 j, P1 ~! `4 [lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    4 P, Q0 ]! t8 Y5 O" R" `windows()1 L. d9 ]; H% r' G3 Q
    par(mfrow=c(2,2))7 @, V8 P+ x# ^) z5 ~6 _: _- O
    plot(lm6,which=c(1:4))9 X0 y% W9 X. k1 f( c
    anova(lm6)3 y; Q; J. ?- U" l$ C* p) F; J
    summary(lm6)
    1 j' B- T/ G. ^) I8 I. @) Z  P, j6 ?2 h& F5 c$ i, N

    # z0 H% k9 k( ~请关注数学中国网微博和数学中国公众号,联系QQ 3243710560, V5 L1 D# }  H1 }
    . `( `! G: E, o+ q  |1 w4 z. {
    " m8 ~: z6 p2 _0 \9 R; U

    ( h3 b' x; T- y2 p8 P9 M2 L$ C. F5 t0 @' d
    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的分析没有) e2 C' _3 B0 A" D% c7 Q9 a
    ( X" k+ M/ T/ u5 s2 e: }- w2 P

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    * E% T* C5 d1 G) G3 w
    ' S. |7 K! t7 H2 e4 S4 v& `! }

    点评

    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
    * \, L6 _; t' ~  g2 T, `5 n1 _" M: \2 R太好了,又认真的看了一次,发现自已差太多了

    $ R1 a: a# b3 D5 @9 Z我每天会发一些好资源的
    8 t! O, {% c. e4 L% x
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 ! B7 F: A3 a+ v3 B- N" a
    一定会认真的看看,发现这是R的,有python的分析没有

    / `. W4 v& C, ~, L有啊/ o+ k. n# P2 ?
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-15 10:54 , Processed in 0.472838 second(s), 79 queries .

    回顶部