QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析  j" I3 k" u. K% W- r- I, V

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    # [) e& Q; q6 T; ~这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


      ?3 r! |5 c. f; f0 B+ c$ L" ~行描述性统计分析,各连续型变量之间的相关关系如下:# o  C/ r  P6 g" {" ~
    ( [, y: Z3 Y9 ]% J- C  q& M

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

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


    ! f- j; h  _9 [: P/ w7 C9 `
    $ @1 k4 h$ R; a: F8 [2 B7 }; q4 b4 r3 }( U( i( Q8 ~& |
    最终模型残差图:
    , D5 Y1 _: n2 _% z% g! d+ `
    6 j: \# G; |' f& R
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:7 m* d. r1 @( ?9 W2 I
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    & [7 B0 A  `6 |! U* J: b0 E* x# D属性变量的具体影响在此处分析略去。1 u8 m5 C, M3 e4 y. \6 d! X
    连续型变量的影响主要为:& M4 |6 e, Y; u5 b+ f4 {
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;9 ]0 F1 A* e- ~3 L
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;2 c4 t6 I# c3 c8 O& H8 C
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:3 w* Y8 y* I2 k3 C6 e" a
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;4 ~7 L! L) v% i+ r
     容积率与环线之间存在着交互效应。+ n7 w1 A5 S5 U3 J0 Q7 d
    rm(list=ls())                                                                                #清空当前工作空间
    * c* T% R  Q0 `, osetwd("D:/回归分析"), F1 o6 C8 K. \! J5 G) g
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a( L# I3 ?: j& {1 h
    View(a)
    1 N1 m0 J9 U6 Q8 D4 Fattach(a)
    $ D' x% i" P$ O. X9 Onames(a)
    / D9 n3 R: k- h' x: l3 `/ |9 e/ S4 f- Z0 W( J
    ) i# p# {$ \$ y# o2 [$ ~. C
    ##描述性统计
    ( y) \% q" G; R1 z9 _
    : u! ^, O; d) p) h
    ' i4 `- K+ F! K4 S: p8 E
    #未做处理的响应变量分布情况
    9 ?9 f% g5 C* Z# R7 J5 D9 A1 t/ W0 epar(mfrow=c(1,1))
    $ s8 s, t4 P& ]) P- q1 O7 I  _hist(price)
    * [' i; f+ s6 R7 a$ Wsummary(price)        #查看响应变量的描述统计量
      r" m1 z( `' S  r7 k0 T#连续型变量描述性统计
    0 C1 r+ g( w- E3 h& Ewindows()
    3 y9 e( Z: H4 \9 B  a6 h9 Npairs(a[,c(6:10)])    #所有连续型变量间的散点图+ T; I( n/ t/ i# X6 q7 w1 N
    par(mfrow=c(2,2))        & A5 O2 M$ w  d! D, G) v' p3 }
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    5 J+ G+ j9 m! J9 [  H$ Xplot(lv,price)4 F) a9 Y4 M) L$ e' w. J+ D
    plot(area,price)1 p0 V$ U1 [$ I1 F/ O& j. P
    plot(ratio,price)$ S+ o4 i3 K0 i% C! b4 K. X3 H2 m& d* P
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    + l% u4 u& D; ^. Wcor(a[,c(6:10)])      #查看连续型变量的相关系数2 w* A3 O2 _- q7 z
    #属性变量描述性统计. F! W2 h3 r3 \0 N5 D, _3 w
    windows()
    ; B2 @9 J) {$ e. u+ t! Rpar(mfrow=c(2,3))                        / [6 T8 R  P3 P6 C# ]
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    ' _( i  y3 y& S, w5 N" sboxplot(price~wuye)                                                                       
    1 J& m/ [( v( r, W# bboxplot(price~fitment)       
    3 u5 M+ k  p0 q' Fboxplot(price~ring)        4 c- a! @# F/ ]) G4 R9 ^+ a
    boxplot(price~contype)
    ) a* U9 j1 ?( q# Z
    ( Q: l* B: O+ s" C
    + D% h! [; b. ^. ~: A' A3 Z* y9 w
    % h$ h$ K' Z! N; N; z
    9 J2 D9 w6 L5 \8 I! N: Q0 c# L
    ##模型建立9 H+ G9 q! O' K

    + Z9 ^6 w: p( X  K1 M! D

    ; n2 M/ s% K$ @7 K6 g#在方差分析模型基础上加入连续型变量6 |6 R9 g; ~1 S5 \  _
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)9 d; I+ E* [# t2 Z, g
    anova(lm1)                #方差分析! g! m. R# }( |/ g
    summary(lm1)              #模型参数估计等详细结果
    8 b$ A  \5 C+ [2 Zwindows()
    4 N- `' X" c  j$ ^par(mfrow=c(2,2))0 h2 {8 g9 ^+ c) c
    plot(lm1,which=c(1:4))    #回归诊断做残差图7 N5 \0 q1 @1 v- h. e& K

    ( K7 Y9 W8 x! O% Y

    + N7 _; G  _$ @) L: g$ Q' S) C5 z2 `
    1 c  x# S3 l8 i6 N/ V+ e
    ##变量处理5 R; o5 \$ |: r$ q$ K. A0 U

    5 d( s. L. Q5 W% }3 Y8 N
    % j. J9 B9 S: E5 w2 ~! j# \) p2 {* I
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    3 I# J+ f1 z, M##对容积率的处理2 [1 X7 `) a& D) q0 X; p
    windows()0 Z: u9 s6 {, M0 o+ {
    n = 43 F/ P3 _0 h) i) f# D
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    5 r0 \2 s' I& t/ Ntable(ceiling(rong/n))                                                #容积率各分组下的样本数- B( k6 m, w: _* z& V
    ronggrp=1*(rong>n)                #进行二分类
    7 @/ z* u% |1 \1 {6 x8 P#ronggrp=ceiling(rong/n)        # o! `: V$ H, A7 [! N3 \3 \
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    . {# _4 ^" `1 w* iwindows()
    - o) ]* o3 W9 Uboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图5 O2 @6 {+ A4 N- {( I
    windows()
    , P8 f! i) q( W& _par(mfrow=c(1,2))
    1 S1 ]1 ~, w  y3 h3 C- aboxplot(rong~ring)                #容积率与环线箱型图+ o' |& j. ^! {) y3 S$ k, s
    boxplot(price~ring)               #房价与环线箱型图
    ) ?! [% W6 o8 }" v) w: z; s3 b#加入容积率分组和容积率分组*所在环线交互因子的模型
    . z6 y9 j7 p& P! |9 d3 C6 Llm2=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)
    3 e$ `9 n. `" u+ o1 S4 N3 E% |anova(lm2)                #方差分析
    $ V  r# o6 [! C  ?# Hsummary(lm2)              #模型参数估计等详细结果( N+ w3 ?0 F7 E. A3 ^! s! s
    windows()
    ( t+ A: u  t* O! Vpar(mfrow=c(2,2))
    # P7 T: H' ?0 qplot(lm1,which=c(1:4))    #回归诊断
    # @' Q5 b% |, v5 P
    , k/ @) Y% G2 c, w- a7 Q
    ' Q1 D! g2 A9 ^; M+ x$ J
    ##对小区面积的处理
    % A3 u5 |/ Z( f# @summary(area)
    - a( i' K# Y- p5 O/ |: _9 O6 eplot(area,price)9 L/ K3 \) S$ j8 D
    windows()9 A1 j) i, g. l; x9 w
    n = 1500003 h/ J' d$ {* [
    boxplot(price~ceiling(area/n))                                                       
    . L9 z) \3 X; @, etable(ceiling(area/n))                                                                6 p- O3 t5 g% ]% M8 R
    areagrp=1*(area>n)
    1 {* a- Z7 f, M0 r' A; `& {! `table(ceiling(areagrp))
    * q, t. F' m1 j" wboxplot(price~ceiling(areagrp))/ X+ R* O5 v" I
    #加入小区面积分组的模型
    . `% W7 @, t  g$ U% u" p8 klm3=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)  C2 B( D: k# z7 ]; J% Z7 ~8 y
    anova(lm3)                #方差分析; [% E# v0 }) C1 H
    summary(lm3)              #模型参数估计等详细结果
    ; c- S) F' W* W% t0 B  w$ Vwindows(): @3 }, ?8 D! ^% x
    par(mfrow=c(2,2))6 [  W- u2 V2 Y: G- s1 N
    plot(lm3,which=c(1:4))    #回归诊断
    / q  k5 {1 [3 {+ M& Q
    3 W4 _- d4 M4 Y9 ^  C# G

    : D: z0 ]& R# _##变量选择5 x- f4 Q6 g) `( x" j, X8 H& z3 D5 w' M4 H

    ' p- K; `3 i8 `7 y& v  s8 t0 U8 E
    ! @) |6 J' h- l. B* b6 f- o
    ##AIC准则下的变量选择
    + I7 L+ t6 i1 @( C3 \1 W* F9 Klm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ J7 z6 Q' ?& b% s- xsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节2 ^6 C( h7 n8 Z/ d$ c# b9 o! e
    ##BIC准则下的变量选择1 S2 N# \$ g* A" [* m" `' Z; M
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic; i- q- K, u$ }+ t$ ~8 v
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节$ R6 a* }2 K! K1 E2 w+ [: t) B5 V& P& W

    / W# X  R2 T5 A" {9 J8 X1 Z* B3 I2 c
    : X/ U2 G+ A8 s, w5 B: G
    #选用AIC准则下的模型进行回归诊断5 t; ?2 P; \! _% Y5 W% a  t+ X
    windows()
    ! W' {, K: `# g. Fpar(mfrow=c(2,2))4 {+ k  @1 q; S8 O- B
    plot(lm4.aic,which=c(1:4))  
    4 L% P; d3 B! h% H/ T, l. N
    6 J: v1 I8 ]6 v

    $ n0 f6 u. I! {: i8 U$ ?% u8 d
    7 w- B3 @" k! ^6 k
    2 _0 l: i2 N# ?8 X: [; h
    ##数据变换
    ) c8 a! l) }& _  {4 ^7 k9 L
    9 b4 \7 W% X; h& u7 }

    ' ], F/ q4 g6 }, K#box-cox变换
    1 H. ^0 S1 G8 l# F. Q: V/ {5 u) Nlibrary(MASS). u4 t9 `* J! k' S- O
    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))
    8 d4 v7 W  G: k, S" B1 {I=which(b$y==max(b$y))  #定位似然函数最大的位置- h& @$ q  h% p' `3 c/ I9 @1 K' l
    lambda = b$x[I] #精确的λ值
    & B; r/ P/ z: L8 P# l4 a#λ接近于0,为模型简洁性,可以直接进行对数变换
    ' k3 ~+ ^5 \; [, y# G7 ulogprice <- log(price)
    ' \8 A7 f& ~9 h/ {hist(logprice)
    ! B, Q5 H, o2 W& M: q/ l3 d/ `% L% v

      D- ~! |  R' M9 X1 x: x3 v##最终模型与诊断# L0 B9 T- B5 A" y% J' X
    . A: ^9 o4 X! k! l$ u7 k" Y) w" Q
    ; p; ^/ D; T6 y# I+ v; J
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)5 p& J& a. K- S2 Q1 f% n
    windows()
    6 C2 e4 F4 M. Y( e. Q9 q2 Rpar(mfrow=c(2,2))
    3 n2 P  J4 e% @4 ]: m4 q1 ~plot(lm6,which=c(1:4))
    9 H  ^$ z  ]6 {1 d' eanova(lm6)$ o3 ~7 k, g' c4 Q5 v: X0 ?/ u
    summary(lm6)% u* t7 S0 f- J* D4 r* L

    9 ]0 o7 n% Z# I% ~; u3 ^* l
    ( x6 q" V1 C+ C4 p请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    , Q5 ?; ^% k1 b- f

    . R6 Q0 c* I( b/ a0 h3 A% C( W2 u# T* G  q" J0 y3 T
    $ n: ~: B* f0 w

    8 O+ v8 u1 c. L" ~9 d1 a
    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的分析没有
    ' o4 m7 ~6 p. f& |: q* J% o# C) @! N
    & y( {0 _" x) 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

    听众

    688

    积分

    升级  22%

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

    [LV.9]以坛为家II

    新人进步奖

    群组: 数学建模

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

    群组: 学术交流D

    群组: 数学建摸协会

    群组: 第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了- G2 E6 m1 F0 N- [  @
    ' U6 M- H, P7 n; x2 E

    点评

    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 X( R5 a% s( Q0 j太好了,又认真的看了一次,发现自已差太多了

    . e: B& G, w: f) R2 H+ \我每天会发一些好资源的" Z7 N9 q2 C1 c' P" L% E$ z
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 + I# F) U( M: w
    一定会认真的看看,发现这是R的,有python的分析没有

    7 V# S- d5 x1 ^3 l有啊3 i; W' }7 M: Y- l: B6 Z
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-23 03:53 , Processed in 0.493541 second(s), 78 queries .

    回顶部