QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    : P2 W7 b2 h3 n* @) e8 q6 M

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。* D% Q! j' P" r
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    * U5 i3 ~0 R6 F行描述性统计分析,各连续型变量之间的相关关系如下:$ m6 z( [( f; h$ \/ _
    & W7 H, s6 G, B/ M

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

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


    " b+ \2 _4 D1 a( @/ i! }
      R$ G  d. T0 H0 P7 h
    . z5 @, t+ Y! J( d7 h; ?2 W, y最终模型残差图:  x' W) b0 }/ i( M* H
    , ^. E" t- n  I+ r: M
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
      t, o3 Q4 Y$ N+ N% p/ K+ e属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比; Z! Y) C0 d( S2 m) l$ S1 g
    属性变量的具体影响在此处分析略去。# \/ k+ W' B8 q$ ?( R- M/ c
    连续型变量的影响主要为:
      f5 [* @1 U) h% Q# u 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    8 e5 r1 u5 O  A 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ' {- C0 L: S" l% R9 A- J同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ! j/ h# }0 `: f) s/ L8 v( ]5 L 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    2 a5 Q6 G$ V" G2 \8 @; O2 t* P3 | 容积率与环线之间存在着交互效应。" n- F7 C  u* m& e& E
    rm(list=ls())                                                                                #清空当前工作空间3 S6 W( Y4 |* c) d  B( o( X8 ?6 a! q
    setwd("D:/回归分析")% n& W% _, Z, E
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ; N. O. X6 D" R8 N; O7 VView(a)5 u1 J# d; }4 `* e* q
    attach(a)
    . J5 e4 l9 O  t' {, j0 wnames(a)
    7 n* [2 A6 Y5 ~# V7 w  l6 P
    . F4 J% D2 u. d% ~" ?+ ]' Q# r
    ' i! v3 p& d7 j* ?2 [8 S4 k
    ##描述性统计
    ! _0 z, F" S' w3 ?! G2 |8 B6 c7 P4 _$ U/ ]6 q& o1 {2 e
    3 E/ m- d! d* w8 g
    #未做处理的响应变量分布情况$ k- |  x4 E/ D3 F0 I2 ]' i
    par(mfrow=c(1,1)); m! j* G% W) R
    hist(price)8 c8 }. l; A. B% N, \
    summary(price)        #查看响应变量的描述统计量# ^9 g+ m4 S! U6 e: `
    #连续型变量描述性统计; [9 X9 N# }: ^7 X; o
    windows()
    ) h  I0 \! m7 K- b2 H! o* B9 Hpairs(a[,c(6:10)])    #所有连续型变量间的散点图
      o6 k) A! z  v) U! X2 ~" g! f- X2 a+ ppar(mfrow=c(2,2))        4 k# ]. M: l4 X
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图' B6 v$ z. A+ a. X% z
    plot(lv,price)9 l3 S$ D1 G. t0 ?+ w+ E
    plot(area,price)
    ; t9 e) Y5 \+ f. R' Jplot(ratio,price)# f6 a$ _" p2 k* Q% L
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量, ^) P0 A( `- K% s0 n
    cor(a[,c(6:10)])      #查看连续型变量的相关系数8 t* r. q, c* @* e! c  p0 Y; b' W
    #属性变量描述性统计$ }4 d' S& G9 E: V
    windows()8 ^! C& A6 `, z! w: m
    par(mfrow=c(2,3))                       
    " `7 X: |0 r' Y7 x8 m# e7 Gboxplot(price~dis)          #每个属性变量关于响应变量的箱型图8 _0 [) O( h+ p1 y
    boxplot(price~wuye)                                                                        8 @4 s: d5 Y1 T6 F% r& Q# ]1 D
    boxplot(price~fitment)        $ v, Q% {9 \; ^& Z( H, e
    boxplot(price~ring)        ' @! M# c* v! u+ i: p3 W/ C( k% i2 o7 o
    boxplot(price~contype)5 ^; I: i( X% @7 W  ^

    2 D- h6 `7 E- w" ?/ i4 E7 Z

    # {  O: p  v# i
    0 r# Q! V  m$ `$ q; u) n

    2 E7 G6 P8 j* D; [8 M##模型建立* Z* ~. r' @! N$ B5 W

    6 x# |" h4 A/ g, ?7 i

    3 h& i3 b2 t9 r1 d- U' L/ S#在方差分析模型基础上加入连续型变量: t8 f- Y0 K! W
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)2 |! i) @2 a( U' i0 M2 {3 O
    anova(lm1)                #方差分析. z+ c: X3 l$ t' q
    summary(lm1)              #模型参数估计等详细结果
    # _& c, [9 k3 O' t1 ~7 jwindows(), d" }& I: ?4 A( h& b0 U" X+ A- r6 ^
    par(mfrow=c(2,2))
    # O5 T$ t& T: Q) rplot(lm1,which=c(1:4))    #回归诊断做残差图# s8 o4 H0 Y# A' D5 A3 r
    ( V1 [3 J1 ]6 E- ?4 C  b
    3 x( m7 J3 |' j% v* w, l
    - ], [0 r, i5 K/ Q
    7 ]% M( S6 l5 w/ m0 Y: Y7 V9 z" G
    ##变量处理
    - t9 f1 P. p+ C
    ) D* `+ k: w. G& U$ y$ _
    ' T0 C; _( Z" p) |2 f$ k" X
    ###对不显著的变量采用分组的方式希望能达到显著的效果' F- f# M& Z1 z6 [
    ##对容积率的处理; k- c% _- H; q- {6 w! N8 f( j6 X
    windows()3 [% E9 D5 V; K% N3 T0 `6 w- ^
    n = 4$ y# X1 m8 _' w" x
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        2 w9 u1 v6 I3 \  s
    table(ceiling(rong/n))                                                #容积率各分组下的样本数. k9 l: C# @5 j  B
    ronggrp=1*(rong>n)                #进行二分类
    0 }5 g$ E' Y7 h& h3 _0 i( C#ronggrp=ceiling(rong/n)       
    * k1 P2 J3 U# d0 ?( o! D5 k3 atable(ceiling(ronggrp))           #容积率二分类下的样本数! X4 b1 j1 S4 h% W6 R7 S
    windows()# _; U. L1 Z  d
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图2 a5 N2 m1 N" N" P8 O6 n
    windows(), C) f' K  q6 a' C9 N3 m5 b
    par(mfrow=c(1,2))
    0 J5 K! d5 r# j/ t0 w' u+ Mboxplot(rong~ring)                #容积率与环线箱型图
    5 U1 G6 d# I2 ^5 b, F5 T. Mboxplot(price~ring)               #房价与环线箱型图 ; v8 C! x- _8 d9 n
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    7 A5 X' i% ]8 x: @# klm2=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)
    0 P) e: f6 Y. [$ c3 v$ h6 \0 R; Ianova(lm2)                #方差分析' c+ y* e) E; X  [
    summary(lm2)              #模型参数估计等详细结果; G& S# o2 K4 t- m6 Q# I! l
    windows()
    8 C4 o2 e  m5 V  o% r/ F' y6 m& Dpar(mfrow=c(2,2))4 h+ V: K5 g' Q6 e+ e1 P
    plot(lm1,which=c(1:4))    #回归诊断
    + A0 _% Y8 |9 k4 ]" R, p& N4 b: h4 K$ f
    $ f7 l9 m- s# X1 ?
    ##对小区面积的处理5 C8 K8 w. P( `4 D+ H1 a& c
    summary(area)  K  `/ T; w6 U7 W; y- k4 {# \
    plot(area,price)
    1 p+ {2 C. f1 X1 lwindows()1 w- L% M* V3 ]4 l! r; t' j
    n = 150000
    0 c( ?6 G$ w+ c- H4 n. @9 g+ dboxplot(price~ceiling(area/n))                                                        & i- V' R7 F% @
    table(ceiling(area/n))                                                                4 L" I! I: p$ X% N
    areagrp=1*(area>n), s% M$ t0 @" b. q% v0 W9 b
    table(ceiling(areagrp))
    2 y+ O- q% G" @boxplot(price~ceiling(areagrp))
    1 K4 r. j# {5 d# V& Q& [#加入小区面积分组的模型
    . F+ a. ?; W  b4 D7 qlm3=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)6 H. X! Y: P& z4 s& x5 B
    anova(lm3)                #方差分析# H" l5 o* H5 m" U: u
    summary(lm3)              #模型参数估计等详细结果0 a7 P0 J0 [4 C, v
    windows()8 W0 b! G1 a5 ?% G# G/ U
    par(mfrow=c(2,2))
    * b) A# z7 ]' g9 X4 x2 Y: Splot(lm3,which=c(1:4))    #回归诊断) Y5 d% @0 t7 i( }# z4 U" H

    " ?+ I$ K2 O5 w+ E

    0 m) K" B  \$ S+ D$ k$ @. ]##变量选择- k0 b6 ^( v2 v$ |

    ) R2 v& y- h; c+ o

    & |& u9 H% U+ X2 \4 x8 D##AIC准则下的变量选择2 L7 J/ f3 R: S
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    , h9 ^1 Q. e4 s- y5 t8 Csummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    / o, p2 f- e: Y0 C; E2 [% e" B##BIC准则下的变量选择1 r9 v1 T0 [3 t, X+ s$ _" Y/ h
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic9 z5 C9 M5 [( D8 l# U% m* }! \" \5 R
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节# g0 l# |1 X% b
    2 [8 i+ A- {4 s6 ]
      Q0 ^; Y. [' k
    #选用AIC准则下的模型进行回归诊断
    ) d+ h/ C2 a/ H! T, ^windows()
    3 @: I9 i  H6 l8 o3 B# |par(mfrow=c(2,2))% ?( I( P; |) ]' U* Q
    plot(lm4.aic,which=c(1:4))  / ]- c% W1 b* d$ t0 G
    ) K3 M7 d; o0 o* |  T! t% E
    ' e/ V8 Q0 ]2 g1 D

    2 s0 X8 p! C% f' a7 f2 b% I
    ; X( K! D$ e- d4 c; y1 l
    ##数据变换7 H% m0 q5 q8 t. N/ i8 [
    ) H& D! ^1 H  p' i( P, M/ m; V
    7 l9 Z7 r" w/ L' s( x  u, P5 `  X
    #box-cox变换, c7 g/ T8 e. S: m, K( T# L; r
    library(MASS)& w! f) r7 y: L: G9 T% Z% b7 q' j- |7 u
    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))
      R2 K# f# h/ R4 ^' AI=which(b$y==max(b$y))  #定位似然函数最大的位置
    5 \; K. y  K% N/ a$ Ylambda = b$x[I] #精确的λ值# V7 B5 y. c" J; Q3 z! m% h0 V1 _$ B
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    # ~8 \- ?+ K2 u, B4 wlogprice <- log(price)
    7 [+ `3 n( Z7 \: O6 l- chist(logprice)
    7 S) j8 U. P! W; S; p( \0 c+ R3 l8 x# o5 z: X0 t8 @7 c% d
    ) v0 m% Q  J' E  ]* O/ L4 G* A
    ##最终模型与诊断9 o0 U  Y* B, l! d- R1 o

    & {$ p3 r+ R- D# E7 r! _% P
    3 c8 W) l! v: @
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)! i, c& z6 J* O. S+ D% }) V! h' o
    windows()7 h6 @3 K2 J, Q3 t% \! t2 G
    par(mfrow=c(2,2))1 Q8 I# t0 s4 {8 `. i
    plot(lm6,which=c(1:4))
    * U# i% t8 M5 x* z* Canova(lm6)
    # ^  Z; c$ d7 P; U6 Ysummary(lm6)
    + }: u5 K4 }6 v0 _& x6 L/ j! z8 Y' j: k/ f8 u' g

    * Y3 u/ Z. _2 |' q$ ~, S- d请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    - y. d# U  w  V  R6 _2 K( `

    . V! |# F; ?% d5 }
    $ d& s; O  N0 _, W' T5 E+ q, T
    1 `" o6 _5 r1 h# e/ p& p
    ! t7 [1 ~; H1 S: I/ i# S; Y# o
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有4 e! d8 ^+ F2 K

    ! ^6 F( A& E: V3 b: Z7 @8 i

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了8 d% W' P7 ]! @6 f' f7 L  Y0 ^9 Y' e

    0 w3 G; N( P/ g8 v0 _

    点评

    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 : O# h# I) ~( {/ \$ N# m% k
    太好了,又认真的看了一次,发现自已差太多了

    : U. f2 g) B5 z$ i& p我每天会发一些好资源的
    2 E1 A5 y) ~- u- w% c
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 * \. {) B  j# o
    一定会认真的看看,发现这是R的,有python的分析没有
    4 @& g- o/ {$ @
    有啊( @3 B, _- u8 Q1 V1 Y, m9 r5 r
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-1-1 02:06 , Processed in 0.882220 second(s), 78 queries .

    回顶部