QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5872|回复: 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 }) h6 h  \& N% P: S# a- |; |- ?

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。1 }: {4 S& ~6 w( j
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    6 O/ ]9 j( L" B0 B- N行描述性统计分析,各连续型变量之间的相关关系如下:
    - {' r% }6 X* F; U7 m% v* L" I
    % b5 K5 G; d! H% n3 }6 |

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

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

    # P, w* g( e3 J
      _8 ^5 }; p* k% V

    # w1 l  s9 d2 r7 Q, T1 z/ _最终模型残差图:
    2 h; t& a1 k( }: l6 |/ [+ g" g; h7 T+ t- Y. B* L0 I! s
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    % j+ ~8 h( |4 }  }  s* c属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    . X% C/ H/ a$ @3 z2 f3 A2 _- m$ n属性变量的具体影响在此处分析略去。1 }( o/ a- \3 w- |5 a/ q
    连续型变量的影响主要为:% i, p5 ?. A1 r1 q  m% c
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;3 p. ]5 u" I; v5 w1 I
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    0 a3 Q2 K# v% G, Y" z7 d同时,原本为连续型变量的容积率经过离散化变为属性变量后:8 h( F, ~- S4 W& n' p3 e
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    + l, i2 t+ D- r$ N: R, g3 V 容积率与环线之间存在着交互效应。
    + ~# Q7 Y+ s0 Nrm(list=ls())                                                                                #清空当前工作空间( ~. F2 v0 l) s5 w5 k
    setwd("D:/回归分析")4 D1 V" }5 J3 ~
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a& f6 U5 I0 X' ^$ ?6 d
    View(a)
    " c( w+ U3 D$ R: E9 c* w: ^attach(a)
    9 M5 m, p" ^, ~/ f; Fnames(a); h, f& [7 y9 n) \
    % p/ h. k: \% I" L
    ! R; h* k4 k/ d* y" N
    ##描述性统计
    & e* f- J8 R0 _# m* j6 u
    : i: [& b" p' h, _* y, d: n2 p
    $ D0 s4 c; x9 A: l; V7 Y
    #未做处理的响应变量分布情况
    - x" j6 m' T0 W* A; dpar(mfrow=c(1,1))
    ! |1 \0 f+ F+ E  C1 h& Rhist(price)
    # u* _( p0 d2 w. q! Tsummary(price)        #查看响应变量的描述统计量( C) z7 A' M/ b3 ?% b8 t6 o6 w2 G
    #连续型变量描述性统计- e$ R8 r9 ]( |. l+ w
    windows()3 T. w  H4 v, O5 {
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图0 I9 `$ i" y9 V) X8 X* R5 d
    par(mfrow=c(2,2))       
    % l; y* v+ ~) y) ~7 |( }plot(rong,price)      #每个连续型因变量与响应变量间的散点图' `& B4 o7 z8 e# y7 p5 ]
    plot(lv,price)  p( D# p0 u2 z$ F
    plot(area,price)
    % A  B0 @, r( S4 Rplot(ratio,price)
    6 F$ r$ x! M9 U* K. s  c& ^( `7 Ksummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    3 B6 o. G; L7 X4 g+ Lcor(a[,c(6:10)])      #查看连续型变量的相关系数
    2 A$ m" J5 ^7 p7 o. a/ v#属性变量描述性统计
    1 b! x  {: T; ywindows()7 @6 T: \6 {1 u: P  m
    par(mfrow=c(2,3))                       
    : b) P( o1 E  y- j6 z+ Hboxplot(price~dis)          #每个属性变量关于响应变量的箱型图! w1 e" C: x5 R' M( R
    boxplot(price~wuye)                                                                        $ Q4 |+ ~/ ~! R; m' ~
    boxplot(price~fitment)        ) m; W! Y8 D. K; |, r
    boxplot(price~ring)        4 M9 F) _! y' I, X  m" r9 W0 k
    boxplot(price~contype)
      d, }. f7 Y. d1 \1 T( H) V. B# {0 h* V+ u0 k
    3 J3 T: f% U8 `% b: u% f4 Y# F
    7 r& {2 s; Q2 B& K) \
    8 }# J0 W+ u+ E  U
    ##模型建立
    ' f  h& x  j( [7 K
    ; r# Z2 ^) j# |6 l0 l4 b6 n
    . n) H( J5 t/ V  y7 T) u
    #在方差分析模型基础上加入连续型变量
    ; w9 k; ]0 k* hlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    3 a/ G5 y" X9 z! R/ c( wanova(lm1)                #方差分析
    - K' q; t  J# Y7 m" bsummary(lm1)              #模型参数估计等详细结果
    1 @! L( ^* D- O/ a+ ], d, V& G+ ~windows()
    - L! q0 J. a9 b2 }! Y. W/ Xpar(mfrow=c(2,2))
    7 l) c8 v: g- |3 H6 O0 lplot(lm1,which=c(1:4))    #回归诊断做残差图8 |% i  S: |  l- J6 M1 @) [

    2 R( U, b4 R1 T* n

    ) K0 p: Q! e$ t
    + Y  F: a% x3 }
    * t0 i' R; P/ x3 k
    ##变量处理
    3 V# B. H8 R6 c2 \! G" r9 d
    5 l4 E6 `; j: p: D2 h! }

    3 N% a! X2 p& x. f2 O###对不显著的变量采用分组的方式希望能达到显著的效果2 ]+ f" m- [1 t, a4 U' c
    ##对容积率的处理
    9 v: s1 ?6 {/ K' W. |4 T. E9 R- J5 qwindows()
    8 n& q) a7 M- \9 f" Gn = 45 U0 S* j+ X3 w8 P" w! l" P5 h
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        " ^6 Q( H* F# i
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    : e9 o; j: Y' e3 Nronggrp=1*(rong>n)                #进行二分类
    * O$ _5 {: A: Y( V, L, U#ronggrp=ceiling(rong/n)        6 `+ `9 a5 X0 f7 d7 e, u  T
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    : W. _/ m  r! T" O9 Zwindows()
    + B# F5 \6 A# v5 Z* P; Gboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图' X6 E' |7 |: G: D6 P; d
    windows()# B. Y: T8 a( F
    par(mfrow=c(1,2))5 g; ]  T5 e' v/ `3 G) K; X% r
    boxplot(rong~ring)                #容积率与环线箱型图: `3 d; i5 |: f5 _
    boxplot(price~ring)               #房价与环线箱型图
    1 ~9 |* D8 j. O. Q, F- ]#加入容积率分组和容积率分组*所在环线交互因子的模型
    0 @' w- X0 a$ n" w+ B' t4 Qlm2=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)( X5 Y1 i+ a4 m3 w# A' D% ?, H- i
    anova(lm2)                #方差分析
    4 T. |  G% e4 W1 r& C" {# b; msummary(lm2)              #模型参数估计等详细结果1 q" E8 u- V- K" t
    windows()
      a' T2 e" r/ e- Z& [7 r  m) ]par(mfrow=c(2,2))  O8 e+ u$ X, V, p/ H* S  c5 _
    plot(lm1,which=c(1:4))    #回归诊断
    - `2 M, z  l0 x5 x
    6 Z9 b0 u  Q+ F- [. d& q# t2 ~
    4 W0 ]& d" v- _: e9 ~5 e8 e6 D
    ##对小区面积的处理! S: I  d* d2 C6 n7 [- O
    summary(area)3 S; n5 Q6 N: S$ F" C. F5 }' m
    plot(area,price), J& \( ^% k, X
    windows()4 h4 W7 O' T' v, x% z
    n = 150000
    & p/ ~- [+ \3 H2 Aboxplot(price~ceiling(area/n))                                                        : s( x, K+ [2 B3 e3 u' ~
    table(ceiling(area/n))                                                               
    ! G7 h& _5 G6 k& `areagrp=1*(area>n)6 M0 z# u5 Q# \' d6 j
    table(ceiling(areagrp))
    & B' `& u. B/ p' J& A, yboxplot(price~ceiling(areagrp))
    5 p" f8 p) ~5 m3 [$ ~#加入小区面积分组的模型
    ) j9 {7 U( L8 flm3=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)! B/ B: B$ ?1 q/ r
    anova(lm3)                #方差分析
    * I2 u9 l4 o+ W( Xsummary(lm3)              #模型参数估计等详细结果
    : X" D+ T4 h6 Y$ rwindows()
    $ g+ \: i" n& w4 K6 l0 ]par(mfrow=c(2,2))
    . u, Y& C/ o5 f+ |5 pplot(lm3,which=c(1:4))    #回归诊断2 p; b+ i4 h2 C9 l" H3 M( |# d
    $ B; r% S- s" {+ j, p
    5 O. h5 w* S/ g
    ##变量选择: C8 [+ i/ X- u

    # U  F& Z+ Q: r% z: r: M

    - r& B9 |7 u: D##AIC准则下的变量选择
    - I' x" W' s+ P1 @9 E* Tlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic2 y$ J/ W% P* ^/ P1 ?3 L
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节3 G  T- M4 X8 t- T  b8 T' B
    ##BIC准则下的变量选择! a0 W0 h$ H3 W5 _$ v" l
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    / T# s0 f/ @+ T  }& x6 Qsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    1 ]$ O+ M& a) r& k1 z2 A6 i$ R9 L4 A
    1 G7 m# o5 G7 J$ @
    6 c6 a9 Q  h) l  C$ _7 W& F
    #选用AIC准则下的模型进行回归诊断% u! o) [/ I0 ~( j% \% }( z
    windows()
    , H" D/ B6 ~# w5 h" _9 x8 Rpar(mfrow=c(2,2))
    6 P7 T, }, v- Cplot(lm4.aic,which=c(1:4))  * k3 p6 g0 C% W) F& a' s, g) K
    - f/ z" o* e8 d: q  h

    - m8 q- F' |3 p( O# e& f  r2 i  B; X
    3 C9 v  f2 c& l+ V! h6 k5 J6 Z
    ##数据变换( ?1 O  ]* }4 e/ A
    9 ]/ @- e& l5 p6 `9 W0 |9 m' Y

    ( }* |$ V& j6 B#box-cox变换" \' j( k: t9 R7 F
    library(MASS)6 e% q! k4 y- W- X; K* C3 Q
    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))
    , w8 M8 ?& n1 w$ }2 K- n/ X0 h( N, YI=which(b$y==max(b$y))  #定位似然函数最大的位置3 n$ c& \1 F; H7 i9 R9 \
    lambda = b$x[I] #精确的λ值) O, ~; T$ J9 F) u$ P
    #λ接近于0,为模型简洁性,可以直接进行对数变换5 r+ `7 M& g+ N
    logprice <- log(price)
    ' M3 f, D* `) C3 E" Mhist(logprice)
    % s3 g; |) ?' }% F4 d  H& S3 L& U! s# ?$ H6 j/ D' E
    8 F/ a3 ^4 Z; b5 [
    ##最终模型与诊断8 s- d( o& C, l' x4 j2 ~4 k
    $ t/ \$ ]3 p  d+ A  t
      v1 F7 \$ r0 G0 Y. z6 C  W
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    2 W2 y! o2 V* c& M  ^% Y+ D4 ^windows(): ^- n2 Q% U3 }% O5 M3 N' u; U
    par(mfrow=c(2,2))# |; g* }3 p5 C- x& ]
    plot(lm6,which=c(1:4))" z  c& k: C( g- H9 n% v* t) \
    anova(lm6)
    ! _+ P" f+ |- t) B5 _summary(lm6)
    7 T5 w$ R5 R; b
    , T$ X; ~. p, l: t' [" J
    ; T& V% A# x9 C) u请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
      L# \  _& e8 t
    / @4 _) ^( l4 ^5 _: ?( v

    % g' V' _4 W) S
    7 |& y; m! X( p& C2 K( F$ T  p$ W2 p
    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的分析没有
    # |  @# `( Z& Q" Y/ Q  _
    7 R9 \1 B5 _, @: _# 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国赛实训

    太好了,又认真的看了一次,发现自已差太多了: e2 ^  f- d1 F2 t4 k( _9 U
    7 \+ U+ a% u: m  F) \  D

    点评

    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 2 A* K5 a% B5 p! h) N! N1 e
    太好了,又认真的看了一次,发现自已差太多了
    8 m  h. L' k3 p3 s1 a
    我每天会发一些好资源的
    3 @: O$ u5 \  j- l3 H- h+ Z9 U/ [
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    + K& [  W2 k: ?1 W% e* l9 C1 m% H一定会认真的看看,发现这是R的,有python的分析没有

    ! m: Q9 [; b: k  B4 D' Q有啊  ^6 F& z  x% X, O5 _
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-6 23:07 , Processed in 0.862950 second(s), 78 queries .

    回顶部