QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    - G9 b" q7 [+ v% @# s) \

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    2 ~: N/ h+ T0 A( J* k7 I; V+ B这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ' a! o' t+ W: ~8 }行描述性统计分析,各连续型变量之间的相关关系如下:
    / w, f( g* P( W, Z* U1 i0 g' E7 j7 h- z- V4 F

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

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


    # m5 u& U# q# I* @: _  B4 L9 ~. r& T# y
    3 X* y9 q8 v- g5 C- u
    最终模型残差图:
    $ q0 d8 {; D7 U. s; Q; o% ~' n7 l' |  z: X% S4 s9 _
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    0 z8 Q) ]/ a- W* V& q: l属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比. h3 n7 W3 t# g* E9 R2 h% c
    属性变量的具体影响在此处分析略去。/ f: {# ^- J0 {. l$ g
    连续型变量的影响主要为:7 E, d7 A& {- c0 D
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    . F+ x8 m2 A% M: E+ q- H! I 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    * n$ ~& m* Y# w- @7 |8 K. s, F$ ]4 w1 @6 P同时,原本为连续型变量的容积率经过离散化变为属性变量后:5 O2 U- O( K# M2 w* ~6 t) V; V
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    4 |' k3 ^. Y' r( V 容积率与环线之间存在着交互效应。. T# d* ^* K/ x- C: v+ _$ A
    rm(list=ls())                                                                                #清空当前工作空间
    6 B( k7 b; `  T) V7 T& M9 y: i9 Nsetwd("D:/回归分析")
    - b  |# w* A" ^& o4 ?/ Ca=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ; d. Q5 m$ M+ i5 _View(a)
    & @2 t1 s' f( [" Dattach(a)
    2 A1 ?$ u0 V0 Tnames(a)
    * U( Z! g+ k6 e4 g, t  Z8 F5 H
    ' b  I+ K7 g4 y

    / u1 z% B/ J9 M4 X- r##描述性统计7 G! C" P' s' }7 o% @$ @
    * q, y, o# k- j& Z
      V. G1 k+ b4 y) a& \
    #未做处理的响应变量分布情况
    : H. a  L" u! Q' o& X) ?: d, qpar(mfrow=c(1,1))6 Z; e5 F) w+ W8 e* s# R% o$ d
    hist(price)1 c- R; C+ ~5 V' v4 ]6 H/ ~
    summary(price)        #查看响应变量的描述统计量* l3 I  p% E; h# L
    #连续型变量描述性统计& f- o; F7 M" b4 Q, c  O9 S
    windows()
    ) @& Y6 V+ \; w7 S9 y. jpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    9 ^$ W# g3 x, ?/ y0 j7 Bpar(mfrow=c(2,2))       
    0 B# J! G: l1 V: p! yplot(rong,price)      #每个连续型因变量与响应变量间的散点图8 t2 z) ?5 }  ]; a. R1 I
    plot(lv,price)
    " Y. o7 y% {$ Z. Splot(area,price); v9 A% R+ s7 M  a' S: d  t2 ]
    plot(ratio,price)
    ! M. ]6 }9 y' F8 A1 W$ F3 p$ usummary(a[,c(6:10)])  #查看连续型变量的描述统计量  d1 p  T5 e9 l
    cor(a[,c(6:10)])      #查看连续型变量的相关系数/ o! B! k: s3 c" c$ U5 j
    #属性变量描述性统计' K8 D/ m& V5 I' z# u
    windows()/ E6 d: ~9 H! v6 P
    par(mfrow=c(2,3))                        ! H" p# v/ S* w% ^8 @1 ^
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图$ S0 U1 h1 F! [
    boxplot(price~wuye)                                                                       
    ( R7 H& `  s1 D& ?' W* ]* Jboxplot(price~fitment)       
    5 j0 Q0 e! a% _2 ]( Vboxplot(price~ring)        % l1 R2 m  J/ u9 _, R. B' @
    boxplot(price~contype). m. B9 J4 ?! |# ]$ K! }* n
    9 [8 E9 d' C& O  i
    * Q7 {0 G4 I9 ]8 x
    - s2 @6 q2 `) z2 t
    ! `( N1 w; T% R: y, A
    ##模型建立6 i  H6 o, l: z
    1 }! `& P& j$ A8 s, N& Q7 u
    $ K. {& o, `. {# b
    #在方差分析模型基础上加入连续型变量
    ) c5 N6 `; S7 J: n+ @* n! slm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    1 @& ?' y$ O7 |; lanova(lm1)                #方差分析& m& P1 a9 |+ e$ K
    summary(lm1)              #模型参数估计等详细结果! `& h* r2 v6 K! e1 G
    windows()
    + h& K' Y& b2 K- U( k" J" C$ Y% ?par(mfrow=c(2,2))
    * }& S5 e3 f, T. y: V3 R1 D4 C/ V2 splot(lm1,which=c(1:4))    #回归诊断做残差图7 [0 o, R, }# o% }- @& m' b

    . W4 K& W/ O* e( d# k& H' v
    6 v; h% A- t+ V4 w7 U% u
    8 e: ]( Q" p9 X% M3 T; w

    8 g' q4 {) q) g: R' j8 u##变量处理; @7 s4 D; }% Z, n/ Q  U+ J0 ]

    ' o4 L& P& z9 [$ I

    9 O9 w7 w4 [/ ^6 w1 ^2 v###对不显著的变量采用分组的方式希望能达到显著的效果
    % u0 u6 {& h! I% P! F##对容积率的处理
    . q# `# J, Z" |windows()
    2 U; r- h# `" u6 hn = 4
    . P* J  j6 G  o# L) A; Tboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    # K. _2 [1 f+ @9 ?8 S/ {5 S/ ?table(ceiling(rong/n))                                                #容积率各分组下的样本数
    / f  C3 B; J  ~1 uronggrp=1*(rong>n)                #进行二分类$ L, j$ }! ~, w+ ]
    #ronggrp=ceiling(rong/n)        5 T5 f* A' M; Y+ V% z
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    7 ~: M' k- s; K9 k$ mwindows()/ x% w  C! l8 N2 ?2 ^: ~. r0 K8 C# F9 r
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    5 Q% |7 j+ ^# H0 ]. Z: j) twindows()1 w  M9 q) o* U8 o7 G
    par(mfrow=c(1,2))
    : b, Z* w4 X  H" j% K" iboxplot(rong~ring)                #容积率与环线箱型图
    3 `$ @& X0 G' x9 l9 q) `4 {boxplot(price~ring)               #房价与环线箱型图 * d' W* u" D; g; u
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    ' a) \! c% m5 E- I. p" K; Rlm2=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)
    5 c% g% U2 M$ r* j+ ganova(lm2)                #方差分析7 U4 g3 `; a8 W
    summary(lm2)              #模型参数估计等详细结果& F* G2 X& m2 z( R0 w/ R
    windows()
    + K9 n$ b1 `0 P8 Wpar(mfrow=c(2,2))
    ( ]7 O6 b1 m8 o4 I( ]  A+ eplot(lm1,which=c(1:4))    #回归诊断
    % w0 f  k# \% A! U  ~! E
    4 W( j4 g; H( \, E  q" Z6 c
    . p1 S: k1 l/ j$ F3 |/ e
    ##对小区面积的处理
    ) I5 ]/ R. ^2 L, I& G# `6 F# j' bsummary(area)
    3 X) \$ S! T( s* ^' A5 Q5 Qplot(area,price)
    : g# K5 x! U" {# a/ A. w' Y1 Swindows()4 c& U4 |& P8 O, @6 |
    n = 150000# Y( L0 J& c, V; P) e; Q
    boxplot(price~ceiling(area/n))                                                       
    + v) F9 o4 I0 p7 ]table(ceiling(area/n))                                                               
    0 p9 W" [  w" x' X; Z/ Gareagrp=1*(area>n), ?+ ]- _/ S) F% V; |3 V
    table(ceiling(areagrp))
    5 q4 |4 _+ I" [( z( @  ^boxplot(price~ceiling(areagrp))% ^2 ^  S5 \7 ?( N
    #加入小区面积分组的模型
    4 _/ l/ W* O: Xlm3=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 j, c/ ^0 `0 V
    anova(lm3)                #方差分析7 c3 n2 a( m6 e# k) a4 A9 h
    summary(lm3)              #模型参数估计等详细结果
    ! x7 |% N: B3 j! o: T) S, T& U) Owindows()
    # f# {+ P- N: Y2 Wpar(mfrow=c(2,2))
    * s% _. ~2 e. Oplot(lm3,which=c(1:4))    #回归诊断
    3 \: X% E" {; M/ o" Z
    : W3 z* X$ g6 o- v
    $ e- }# L7 _% c; h; r5 X9 @
    ##变量选择
    $ T+ ?5 t/ q: y- d* L$ i" L
    5 m8 Q1 W6 I" L6 t

    7 \' p! _- `  {+ R7 l##AIC准则下的变量选择& X2 s9 o4 W" i* A& J: ~6 Q
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    , G/ u' p8 H$ J6 Z% j& N, s8 v+ Rsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    4 |8 \+ S  H/ {" I" ^0 x) V##BIC准则下的变量选择4 Q7 f" w  v5 K0 E7 C
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
      k' w8 a3 A1 @2 Z" osummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节/ G2 d( y/ L$ Q9 o
    , v$ T! l6 B/ b" Y

    " F' e. _. R% w#选用AIC准则下的模型进行回归诊断5 ?% N7 {$ f9 \) t
    windows()
    3 n0 @! W) l* ^% `par(mfrow=c(2,2))
    * j0 \5 g/ u! D# Pplot(lm4.aic,which=c(1:4))  
    : W9 g' U7 `* D" t' d; V
    : B9 Z5 w; z4 @+ g! _
    4 K* w& i1 @9 \& o

    . U" T; s. w* `7 ?# d' J. P. r/ I
    3 L7 Q- w0 c( K9 i/ `6 ?2 {9 o! W
    ##数据变换
    $ `0 A: t# R9 }2 S- }' [& `4 u9 a0 Z1 \' L7 U! J. f

    : ]6 V" e7 `0 k* `/ {) i4 A4 k; U#box-cox变换+ j* R. n7 o7 K, f: r
    library(MASS)
    ; ~3 }- T; i( ~! ^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))* j" d. G1 `1 t8 Z
    I=which(b$y==max(b$y))  #定位似然函数最大的位置' Q/ X4 _: T( ]' b) W
    lambda = b$x[I] #精确的λ值1 z" {% W: n- r* }, \
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    2 G# ~" ?. y) n: Q+ s7 m( ~logprice <- log(price)5 f& ~( [/ V/ H9 S
    hist(logprice)3 j, ^4 g1 |% m

    2 V, \  C1 G6 l" U: K
    4 f/ O" W5 ?% z( A7 c/ \8 c
    ##最终模型与诊断
    2 u  _0 E: M' |' S8 q: ?+ F" E' g) [' [3 o! i8 j9 r

    8 N3 N3 X- a4 y% jlm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)( g4 [  G# I/ V+ a0 X
    windows()% E3 x$ E5 I- {0 Q# K9 |
    par(mfrow=c(2,2))
    ) H. `- q) q' y% @plot(lm6,which=c(1:4))
    2 o9 X& n9 W  `7 @' g( P: z" oanova(lm6)
    % K0 p9 _) s9 L& M% H0 M9 t& usummary(lm6)
    & K' Y. J5 S" D: M2 n. ], l
    . U4 r1 l( j. H
    - Q4 S0 R9 ~1 S  ~6 Q  i0 j( h请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    9 e/ S! f- f/ \" Y  f- _5 A8 J0 C
    - w7 L# {1 R/ d

    ; M3 ]6 T/ F- _3 i3 M3 ~3 o% S# ~$ f% H

    * S) u1 e  h+ o" L
    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
    2 v4 ], h! W, z! Y0 n一定会认真的看看,发现这是R的,有python的分析没有

    " n' j8 z& [( J% @, N5 {4 h有啊. u' m1 F; K& w% h+ r
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18 6 y; Q' o- Z" n6 r
    太好了,又认真的看了一次,发现自已差太多了

    , u- s% R3 u1 H8 s" v我每天会发一些好资源的; `1 {/ I& j8 _, T* ^, W8 m; b
    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

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

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了1 @8 X7 I2 g% _1 F2 i4 w

    8 G' Q1 b; N4 o" 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国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    3 _6 y" z# @+ K* T  Q# _5 K8 n! \; d9 y0 D, K( g

    点评

    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-4-20 16:08 , Processed in 0.652221 second(s), 79 queries .

    回顶部