请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3492|回复: 5

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-27 14:50 |显示全部楼层
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    * B& Y! i1 Z. ]3 T

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    8 @3 d6 @+ {/ ]* F  m  ^这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    # g; k* a9 D# B, Y8 Z; l行描述性统计分析,各连续型变量之间的相关关系如下:( l7 Q, a* F! W2 @2 A! G
    6 }+ [* E5 K; e; z' b

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

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


    ; v5 v5 _4 M% [  r& C/ a
    8 ?* c' @6 w. g) P+ h& t( h- K/ X% O9 _- v
    最终模型残差图:
    0 V: Y! Q. G3 H
    " W) W% _5 ^9 c
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    3 B8 @$ h; N+ m6 T属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    % y( F0 w$ [% B; x0 ?属性变量的具体影响在此处分析略去。8 r3 ~2 y8 w1 n4 S7 [( c8 {' p
    连续型变量的影响主要为:
    1 X3 B' v5 Q; V+ s% g9 k! M+ b 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    ! f; l- S- e. W, G4 d! w( z; Z 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    6 p) b7 g8 W3 b! M同时,原本为连续型变量的容积率经过离散化变为属性变量后:$ N+ _( A  H4 d1 V
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;6 e6 N+ d  Q3 x. t% C$ ^6 s. [
     容积率与环线之间存在着交互效应。
    , O& v. B" _2 ^7 yrm(list=ls())                                                                                #清空当前工作空间) Z: @/ x& w  ?0 Y3 ~$ d
    setwd("D:/回归分析")
    5 \; a3 C& A. S! Ba=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a9 V  L9 O' U, T% e6 C
    View(a)
    . h9 E' [* t4 f$ F& v& b' kattach(a)
    ' E1 F- _% ~0 E1 Z/ M- Qnames(a)0 h2 i+ W7 s( S9 l
    7 L- J+ q! O/ {
    * g3 w& @: Z2 O3 Q; B# B
    ##描述性统计5 ^- c! ^* c. H% s% c6 W

    ! Z2 x) J8 o1 ~- k
    0 _5 K1 s4 B4 J
    #未做处理的响应变量分布情况
    - v& k& X' \( G( apar(mfrow=c(1,1))1 M  \* o' a" w3 k* J
    hist(price)' i) s- i/ N0 y0 t6 Y9 ?
    summary(price)        #查看响应变量的描述统计量- [( M3 j. L( v2 G/ m4 k
    #连续型变量描述性统计
    ; b' {4 J7 e4 V! i& h2 Kwindows(), _$ X  @7 t3 u* O  M+ G" ]  P
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    8 k  R- f5 ?) i9 U8 f! [1 {7 I* Qpar(mfrow=c(2,2))        0 `/ v1 g% S+ C
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图7 @2 \' u4 \- K- h
    plot(lv,price)
    4 L! B4 A- P# w, T7 iplot(area,price)# h2 X  ~3 x1 M8 ]! Q9 ]4 b
    plot(ratio,price)
    " H* a8 V% O0 G: M" A% w6 ksummary(a[,c(6:10)])  #查看连续型变量的描述统计量& S% [" C6 M; E- [
    cor(a[,c(6:10)])      #查看连续型变量的相关系数1 T3 v1 {, T7 N5 Z6 O3 Y' E* D- w
    #属性变量描述性统计
    - L# }, u$ W, B) z( c$ O/ xwindows()
    5 G: F2 D" E8 r& p& x. D: fpar(mfrow=c(2,3))                        * R, p) B/ F+ I, |
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图6 ?) t+ e4 _% C  x8 }
    boxplot(price~wuye)                                                                        . ?0 s) L1 ]1 ?8 z% R0 H5 P  o  n% b7 Q
    boxplot(price~fitment)        7 L. a& ]( R* {& i( @( [
    boxplot(price~ring)        6 Z3 h; J, C) x3 `2 S4 v# _! @
    boxplot(price~contype)
    # a( d8 {2 B! l& b3 J
    ; ^4 M/ ]! k/ \# w3 m
    9 Q9 o' Z. j2 ^3 t
    % D7 l' P6 c. @
    ( H9 {# |; S8 f1 ?; F
    ##模型建立
    . }( ~' g8 {7 r, T3 ~) [' T  ]  X6 a) m
    $ C. w. p9 s% B, {( J4 g) }6 g
    #在方差分析模型基础上加入连续型变量6 c  l# ~) c4 J; ?+ V9 _
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    1 m9 k. p) \! l0 X5 j$ `anova(lm1)                #方差分析  G5 B& _$ q& g5 l) c3 e$ L- d
    summary(lm1)              #模型参数估计等详细结果
    * O: D* f( E* p8 t4 A" h8 {' Ywindows()9 m2 Z9 E- P; q$ ~# ]3 B
    par(mfrow=c(2,2))
    & N( M2 M- m( A  Fplot(lm1,which=c(1:4))    #回归诊断做残差图
    ! {1 m( z6 o# C% J- F$ z* B4 @
    % J9 S; f( l0 U: r
      J2 z% B# w6 H% h* o! ^/ F; p: r

    ; S% c; Z0 q8 L* @  a

    * j$ V3 _2 `9 E% c( n7 N. B##变量处理
    0 o$ u* w) e8 D. S" r$ l' X& V- W# E3 g; y: {

    . o+ ~9 X* ^* L( z###对不显著的变量采用分组的方式希望能达到显著的效果
    # ~+ c/ i# d. e8 s##对容积率的处理  q* V( j: {# E" W% [, O7 |
    windows()
      `4 k. E- v1 ?# H2 J( ]  x5 M! an = 4
    + e8 z  N! I% C( wboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    % u2 u" Z9 k3 A9 ftable(ceiling(rong/n))                                                #容积率各分组下的样本数
    ) u' v7 {7 p& C1 N; O8 K4 ^9 V$ yronggrp=1*(rong>n)                #进行二分类
    2 J6 e; Z5 v6 X* C  m& @4 k3 n8 c4 a#ronggrp=ceiling(rong/n)        1 Q$ V# \' B& [
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    8 z9 p' O4 i4 o% G8 l. ^) t9 Z- uwindows()
    ; \- c& e* D, P7 k2 Qboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图: O: C$ z: S9 d5 b+ \; @
    windows()
    % `9 Y5 X' [3 \0 n! n  q- ^/ Tpar(mfrow=c(1,2))
    3 i9 x4 x2 k4 g6 E+ o7 K3 A4 pboxplot(rong~ring)                #容积率与环线箱型图0 g3 {# ^* [8 |9 M( e6 g4 @8 \+ u
    boxplot(price~ring)               #房价与环线箱型图
    5 C/ l& P! Q5 b  q1 X#加入容积率分组和容积率分组*所在环线交互因子的模型9 [- g& b  k8 P
    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)
    $ U6 y* B! a( }% _anova(lm2)                #方差分析
    ( B' N4 k4 h+ m5 ^" P; Osummary(lm2)              #模型参数估计等详细结果
    ( }$ S7 Y) c0 B2 r' d$ X, Awindows(); E0 G. J4 O7 x2 t3 R/ h- X
    par(mfrow=c(2,2))3 y, F, U2 B6 C# H' Y
    plot(lm1,which=c(1:4))    #回归诊断
    * X3 Q. r) |& `; M8 Q/ \  |* {. [( ~2 u& j. p. R6 @% M
    0 D7 i' h: q$ \
    ##对小区面积的处理6 E, |4 `3 q. q' P+ q3 g" A' Q( `
    summary(area)
    * S! W3 z7 r' K1 U8 Xplot(area,price)
    1 [$ S2 _2 G0 twindows()* J9 C$ b' h% E5 [5 r/ v
    n = 150000
    % U- S3 e6 ^7 B8 \boxplot(price~ceiling(area/n))                                                        5 R+ a# P" C; P& E# g$ V
    table(ceiling(area/n))                                                                0 Y! R! f7 f8 ~- }  j+ q
    areagrp=1*(area>n)) S' @! e- o/ y& p
    table(ceiling(areagrp))' t- x6 Y  e/ s8 M5 N' r# ^
    boxplot(price~ceiling(areagrp))
    0 N1 V- [4 \7 M; ?#加入小区面积分组的模型
    * M6 O3 s5 L' y0 ^! olm3=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)
      u3 u% L/ Q1 ?% f; Sanova(lm3)                #方差分析# P7 O' F: O: l' l- u, o$ ~
    summary(lm3)              #模型参数估计等详细结果8 I7 V% B9 A* q1 {9 B% s/ {- k7 ~
    windows()) v4 |3 M& M) E  V) {
    par(mfrow=c(2,2))
    6 B6 f) x" |2 `plot(lm3,which=c(1:4))    #回归诊断
    6 Y/ Z) E1 m3 S6 K( k& _( y$ M1 x& s4 s" h6 F* x' l7 T3 g3 B+ F
    - m- S( P) _$ H
    ##变量选择
    , J& ~/ V2 Q4 r( ~: W+ v# K% {7 {$ R! e0 q9 I' \1 c: H

    , @7 f2 S" @8 x: R+ m% A; U##AIC准则下的变量选择
      X  E6 D& B. _* n( zlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic, K! T8 L9 i/ ~- W0 S' L" \' H
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节! S+ E3 [7 \; D" p" E4 S
    ##BIC准则下的变量选择
    2 B. _: {. x2 L% l7 Tlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic% i! O% h1 H# Z
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    & C( ~8 J2 p4 h* ]0 l0 G, D$ \# }: [9 B0 M) d1 T
    2 j+ C5 N- L/ P4 ]: j' K
    #选用AIC准则下的模型进行回归诊断
    1 }* m/ o( [. N( y* fwindows()
    - o; I' n+ Y1 N7 P9 Q5 Y& U# kpar(mfrow=c(2,2))5 W( X2 B6 X8 D& I
    plot(lm4.aic,which=c(1:4))  
    7 w* G  d: L/ F5 |
    # H- s, e( N& ?6 _* Q& f* @, T' D! ^
    * h7 j# q: i! o+ Z' ]4 M2 o

    " T- h6 ^% Z9 P2 `' ~. |7 r

    ; x" S4 o& y0 L* m: c  P##数据变换
    ! B; G+ Y' ^. A; v* X
    $ s' M7 F$ }# o! L. |$ O4 N2 c

    9 T" k5 O$ `; u#box-cox变换% e' @- ^8 j" ]% g! f3 y% O
    library(MASS)
    ! u6 F) ^3 A- {7 G# o3 Qb=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))
    3 _$ N8 n2 i: U0 I9 B8 Q9 \3 Y3 OI=which(b$y==max(b$y))  #定位似然函数最大的位置
    % ^8 |7 E; F4 ^2 L; j* i; Hlambda = b$x[I] #精确的λ值# T; p3 D; @" Q1 H
    #λ接近于0,为模型简洁性,可以直接进行对数变换8 O' T/ w1 G& G) A1 f3 c
    logprice <- log(price)
    , J: e6 d& f8 g7 chist(logprice)
      N* k  T) b1 C/ N( A- q
    1 L5 A$ {& b% A$ X  X

    / a+ X! B; B8 i" \##最终模型与诊断
    4 h1 \: d3 w; ?0 H8 |8 E! j8 E
    ! w5 Y; _/ H; O6 i9 K8 D
    9 b# P5 V. M0 A/ G( k5 z
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)+ v* O" i; h. @0 y( Q
    windows()
    2 h1 y+ r. o( Q8 _2 h0 B$ N# Rpar(mfrow=c(2,2))
    6 t/ D3 w4 f( b. W. Oplot(lm6,which=c(1:4))
    # W/ W$ r) H) zanova(lm6)
    8 J& r5 d: D$ K" ?; Ksummary(lm6)
    % C( v1 l5 ]) s* N8 e9 f" I! W; t, G! ]" L8 X. R6 T

    $ T6 f' Q! x' ~; [0 F( q3 V( d% e' o请关注数学中国网微博和数学中国公众号,联系QQ 3243710560* x3 S' f* ~3 R$ W2 C

    7 q+ P/ p( j$ F6 s4 r0 i
    * s6 a3 U: t" {* A  _% Q9 R/ {
    & J5 d3 I- V7 e$ j$ ]0 M1 {$ i- B: s# V
    zan

    9

    主题

    14

    听众

    610

    积分

    升级  2.5%

  • TA的每日心情
    无聊
    2024-3-26 09:19
  • 签到天数: 623 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有: k; ~) R+ g1 K. }3 j$ P
    ' e4 @% g2 i0 }7 Z, a9 M1 o  I# D  H

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    610

    积分

    升级  2.5%

  • TA的每日心情
    无聊
    2024-3-26 09:19
  • 签到天数: 623 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ( K+ R7 _. j' \6 [5 P% U& P" d+ G6 @  w" L5 }  M

    点评

    1047521767  我每天会发一些好资源的  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    ( {. m( l* S2 I, v7 u& X太好了,又认真的看了一次,发现自已差太多了

    - ~. d7 |0 E5 y$ u2 F# r我每天会发一些好资源的+ u9 s+ t& z2 _3 R' E
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    ' U' Y; d- j$ s4 e3 F一定会认真的看看,发现这是R的,有python的分析没有

    2 v$ @8 A1 h. z有啊- F( s* _5 [- a& g# h6 H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-3-29 17:54 , Processed in 0.505163 second(s), 84 queries .

    回顶部