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

QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-27 14:50 |显示全部楼层
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    / ?3 Q- l# }0 L2 u

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    - Z% u8 ~$ x, k) f, D这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    # m1 ~) [+ z0 B+ y4 |行描述性统计分析,各连续型变量之间的相关关系如下:3 k6 i7 t6 ]9 I2 [$ O& o

    $ u! o- N8 g" J9 h1 h

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

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

    8 }7 S# d2 b7 Z

    1 z3 Z! f! {0 [6 Q1 I& z6 J- H$ U
    最终模型残差图:  a6 L) d& C- j5 U4 o, r! s

    ) Y) r4 g1 d5 \( V2 r
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:3 G4 h6 c  R4 p8 x6 D
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比7 Q3 \0 p) o! O' @" o  O
    属性变量的具体影响在此处分析略去。$ ]; A" Z+ i& j( g) C
    连续型变量的影响主要为:
      f5 T/ k0 g: g 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    7 c9 f& i; m$ g" l" g 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    % g* V* q- F- R% b# J7 o同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    * I; C% q7 ?) t7 q* \! Z: [( n 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    $ T8 d! ^0 {0 Z* d 容积率与环线之间存在着交互效应。
    8 P1 ?/ f2 D4 E& M6 q( `rm(list=ls())                                                                                #清空当前工作空间
    0 \( C( N! o+ J5 s3 R) Lsetwd("D:/回归分析")
    1 o( [' p+ {+ B# S8 @& La=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a# Z/ n) [( H- n6 c
    View(a)
    9 E! q, z! _# D, Y3 wattach(a)7 C9 U  p. H, W$ C# C- q4 a
    names(a)
    ) [( F2 z2 L5 R& I; V% l4 f8 {. Y7 A) q( s4 B% j) S% w) I

    6 f7 l/ {4 `4 k( u* n##描述性统计
    % ]! W7 @) I5 K' F2 s
    - Q+ }, W9 T2 W+ ~! n& U

    - X! x$ Z+ B+ y9 D: X! A7 y#未做处理的响应变量分布情况) B+ P# n7 t# v- L! \# q# V
    par(mfrow=c(1,1))0 `4 `+ k1 `: _( s3 B5 J3 z; Q
    hist(price). E( K0 I& v& C( d, @, h
    summary(price)        #查看响应变量的描述统计量
    ) \+ J) |* T  B! Y. o/ u" {#连续型变量描述性统计+ {0 N# m9 E' `8 q5 {
    windows()0 w6 V" D( I6 N$ [4 B
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    # R( r( v( o' ^% n' jpar(mfrow=c(2,2))        1 Q( j7 Y3 y+ u
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    & ^6 d, @1 z% \7 ^9 tplot(lv,price)
    . [) U( ]# m( |8 @& Bplot(area,price)' ?. u- U8 y; A9 T6 Z  ?. I
    plot(ratio,price)
    4 m4 c+ Q2 I3 |0 O  lsummary(a[,c(6:10)])  #查看连续型变量的描述统计量6 ~5 L5 j; E# V3 q2 m  d! v
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    5 m  v" {$ B' a- x9 p#属性变量描述性统计, @% K6 Q- J. ^8 i
    windows(); W" b' d( y: {1 U: X1 h# H
    par(mfrow=c(2,3))                       
    ) r3 T  K* ?) ?7 j+ i  Oboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
      g# A. v; h$ y( a4 m6 e) v& l6 ?boxplot(price~wuye)                                                                        - H+ u! e3 q" L5 |
    boxplot(price~fitment)       
    . _* V5 P+ f; z( dboxplot(price~ring)        3 M2 _" m- b1 x
    boxplot(price~contype)' O( ?8 t, E" h, _/ d+ m

    * I2 h: _/ o8 {' D) i" E
    " [3 C4 E0 C3 o  e

    ( @+ V% G6 _1 b6 A9 E& ^0 y

    + |" S$ e2 C' y7 F. L: j% B( p##模型建立: Z5 F/ I8 m' c- m, w

    ) R- ]2 U: E( g0 x
    : |& d4 d& W- x! |
    #在方差分析模型基础上加入连续型变量7 F) j) p, C! }& Z6 {
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    2 e' \0 }6 I6 hanova(lm1)                #方差分析  s; G. c! C. O( |
    summary(lm1)              #模型参数估计等详细结果
    2 V6 X3 f2 h# qwindows(); [, D6 L4 J% o# w# x& i
    par(mfrow=c(2,2))) F. g# s" M: S9 P$ G
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    , s3 {) ?- k3 J% L0 S+ A, _/ V4 V  h% m( K+ p; ?
    & H. `" L, K% t  G( ]( A
    / L% ^7 _: p, V
    1 d% X2 t! V, L* y; j! G& \
    ##变量处理
    / w0 H! z& I( S5 y- c/ J. w8 x/ C5 ~; j3 C& v
    5 x" h0 d7 b! K" |4 s- g
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    & a4 u; W% k" F4 N% D6 \  [##对容积率的处理
    / ?. g! m/ l( ]! r2 c: Awindows()/ K/ q9 D. Y& C$ a4 c2 j
    n = 4
    + L/ U, z& Z/ a: `/ Z; \boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    9 t/ S% w, \$ t/ [" X# Htable(ceiling(rong/n))                                                #容积率各分组下的样本数
    ) T9 A6 t  L# ~8 \ronggrp=1*(rong>n)                #进行二分类; Q, p$ P1 J* g* j5 C, F
    #ronggrp=ceiling(rong/n)        : y. S7 J- `- N; c2 h; a
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    9 p" N# ~/ \4 o# v5 h6 Kwindows()
    $ Z; h7 h! C4 M% b: ]8 dboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    , G% d; {3 V' Pwindows()& Q$ h  O: X( s# r
    par(mfrow=c(1,2))5 |. B5 y* y3 I" I
    boxplot(rong~ring)                #容积率与环线箱型图
    ( B4 d5 R7 Q; j- i: Q) e! Eboxplot(price~ring)               #房价与环线箱型图
    ' K- ?; y' m) R! |) q+ B$ i#加入容积率分组和容积率分组*所在环线交互因子的模型' S( U7 v. [9 ^3 z
    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)5 J7 r9 I3 q) t
    anova(lm2)                #方差分析
    - T: c- F  p" k6 d. {9 n4 b5 Isummary(lm2)              #模型参数估计等详细结果
    7 q' h  ]4 O/ G! b3 A& Iwindows(), I4 @6 o$ J$ \" p( J8 M
    par(mfrow=c(2,2))
    : S. m3 t/ Z% ^plot(lm1,which=c(1:4))    #回归诊断: B1 b" U8 |6 }( m- i- _* K2 ~
    # b& N* }( Q9 ~3 w) o, v4 v( @# s! M
    7 ?  u5 E- h( j
    ##对小区面积的处理* \, V0 O7 i0 C- k9 |* t5 {0 z  Z1 D
    summary(area)! h% Y" j$ e/ H( L% w0 O0 I. t
    plot(area,price)
    # T  A# j  f2 K; v3 ^windows()
    & k& I& M. D$ U3 n# H9 Vn = 150000
    9 B+ k' X  N& X8 b. {- E+ Xboxplot(price~ceiling(area/n))                                                       
    5 L! \/ v5 N9 q7 \table(ceiling(area/n))                                                                7 V1 ?- v5 R$ p1 G1 r1 U
    areagrp=1*(area>n)
    + K" W; o( u) S4 q( F! ~- ctable(ceiling(areagrp)). A/ w& c/ N. \9 o5 J" P
    boxplot(price~ceiling(areagrp))( m/ c9 ?. z: a# S3 H
    #加入小区面积分组的模型
    6 ~2 y7 E) y5 V8 S+ 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)
    9 t& \+ _. Y, ?& A! Y  m9 eanova(lm3)                #方差分析5 X9 c  H' \/ H1 y. |
    summary(lm3)              #模型参数估计等详细结果
    , J1 k1 s0 l4 X! l1 Kwindows()
    % F+ p# i" @- e6 f8 L# C6 A: u( npar(mfrow=c(2,2))/ |) h6 D0 x  c
    plot(lm3,which=c(1:4))    #回归诊断
    : n) w3 p, d" C* ^. U& F
    0 W( W: E7 b) A* b
    4 Z, p$ n6 L5 F+ ^: e8 y
    ##变量选择+ e' ^4 Z- x$ i% y' Z
    ) ?$ r# g: K9 g6 G

    2 X& T% ^  O8 T2 F##AIC准则下的变量选择2 B/ R& \- a$ D3 J: U+ J* I. D
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic: Y$ `' v7 a$ v# C, C- m
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节, D6 p0 C+ w3 S* G- ^
    ##BIC准则下的变量选择
    2 T! S: J& a5 ]9 U1 d: flm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic9 E  G4 S; F$ W  ^
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节7 H7 I" ^4 o7 Y! t
    2 A: G5 C+ k; m5 Y  |0 j* M6 B
    7 O$ Y9 \; C- u9 _: K, l* v3 \
    #选用AIC准则下的模型进行回归诊断! l( o' ?' w1 y0 m- V8 C0 \
    windows()2 l" M- Q, S1 x& _' I9 a
    par(mfrow=c(2,2)): F. K3 v8 g7 l' j
    plot(lm4.aic,which=c(1:4))  6 {# T/ F# D/ N2 b

    . I0 |$ [7 A( @5 o

    1 j+ l% a* H2 m. c4 f! H& r* _, j9 o

    # _5 s/ y6 {9 q0 [8 I##数据变换
    ) P3 e* `# X7 B* L$ B
    9 @* q1 e; R- I$ g7 e& b8 `
    " f/ n1 g) a1 t) y0 Y- w
    #box-cox变换8 w0 W0 p9 X# H4 H+ F
    library(MASS)$ g& D6 G; t6 S& i  U6 |7 ~
    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))
    ' U& z  ^7 _0 \+ T; b0 SI=which(b$y==max(b$y))  #定位似然函数最大的位置" j, i# X8 y/ F4 ^0 W  {. S
    lambda = b$x[I] #精确的λ值" u! ?# Y% g$ r  [" n6 n5 O& v# \
    #λ接近于0,为模型简洁性,可以直接进行对数变换! Y2 L+ O$ h% c6 Q& M, U6 k4 c
    logprice <- log(price)' Y) G3 d! T" a) a+ R& m
    hist(logprice)
    ( i8 b2 t& t) C7 d- t0 @
    - `& A% k2 W( m7 Y. V! T

    , ~( ~7 [1 _) ^- [3 L' C##最终模型与诊断6 a+ U; I7 r) r7 C
    , T- r1 W6 r* P, X* z8 O, H
    4 H" E7 E! b" z- h) h
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)# d8 a6 W0 g, q: ^5 M
    windows()2 Q) [8 W) F0 z! @  S5 f
    par(mfrow=c(2,2))
    , S& Y) I% L9 q/ b1 Nplot(lm6,which=c(1:4))
    8 J  ^* U+ w/ j$ M8 I/ d9 Wanova(lm6)1 c  T! I. g9 P$ d7 j, P, h
    summary(lm6)
    1 c& x& w3 M+ U( B( p( n, h2 D8 V$ A. Z
    . o! g7 `5 H  s* _; x: Z& E- X2 w
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560+ a- S8 o; @% ~0 f
    ) F% S1 S' Z8 u* h
    / q3 Z) f( P4 X7 C7 {

    - }$ L; a( M0 i' S  `$ {, r: q
    1 X9 ?$ F% n. C4 D) u
    zan

    9

    主题

    14

    听众

    688

    积分

    升级  22%

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

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    $ [+ {' s2 N. f2 X* Y; J; r& B8 f6 _) d  {# C

    点评

    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国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    0 Q# V) e; {4 q1 n6 A
    ) n; X4 O( z/ @. X" W! M2 y

    点评

    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 8 P; Z. [! D- x: w2 ^! K8 n
    太好了,又认真的看了一次,发现自已差太多了
    4 k+ }1 W* d- ^5 o! [8 _* K6 X
    我每天会发一些好资源的
    ( Y1 ~& X% G1 Z. K
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    5 o+ _8 i/ i$ b' p一定会认真的看看,发现这是R的,有python的分析没有
    , H  p' ?8 ~: f$ I- E% e' T/ f* b
    有啊
    / R8 W7 H4 \6 P+ ]$ u' S- }/ y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-9 01:48 , Processed in 0.435658 second(s), 83 queries .

    回顶部