QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析+ @$ l- z( P9 g$ n' N

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    - Y) M& j4 ]+ }+ Z这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    5 u- z! x- c3 D+ D3 ^
    行描述性统计分析,各连续型变量之间的相关关系如下:
    + P$ r4 P( F8 J# \: y7 h/ s; M. x- [# H! _# |# G6 o8 ]# K

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

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

    " S7 W) L  A# P0 j
    4 f$ j% c8 Y2 ]: X
    * C7 Q4 T' R% {! i  L" m+ R
    最终模型残差图:
    $ s; Z$ u+ c' [$ n' i- X/ z5 }: N# z& O" `& Q+ U7 L( ]+ q
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:- B7 j; J% B* p, D& Y3 o
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比9 W; b$ ~* x- ], t, O
    属性变量的具体影响在此处分析略去。( ]2 f5 S' F& {7 n. ?
    连续型变量的影响主要为:
    9 ]6 T, U% H: ~$ d  L 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    # v$ Q0 h# ~  D0 Z; P( `& \9 T 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ) y6 t4 d8 I% Q同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    - h' y. W& H- j7 f8 R* ` 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    9 N5 p; R: t9 n$ a* |- I2 M$ r 容积率与环线之间存在着交互效应。
    . q" C- l$ }" q+ ~" N4 n) e4 Srm(list=ls())                                                                                #清空当前工作空间
    & ~7 a6 `8 j7 R3 C& @6 M  Vsetwd("D:/回归分析")3 h! t3 ~4 E: t* K- I, u3 U3 x5 \
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a  T; C$ n2 o8 [1 ~* m/ O1 ?
    View(a)  B% |9 G1 t  {
    attach(a)) u, P/ |9 @1 Q! V+ `1 s9 |/ g' |; i
    names(a)
    6 z( s9 S) {4 l  g$ v/ y
    & I) a' `# Q6 C5 W6 M
    1 j& o( \3 d7 _) C( u
    ##描述性统计
    $ q% R1 X6 i  s4 V! Y& x7 J
    5 b9 z, W) U, V

    / c% Y5 @1 @; N- Q5 Z% _- \% q#未做处理的响应变量分布情况, J) K0 n$ U) f) k  {7 k
    par(mfrow=c(1,1))4 a6 W5 {7 N  `" b
    hist(price)
    0 v) d9 z5 r: b+ _  Y  K+ `summary(price)        #查看响应变量的描述统计量
    ' \# L7 P7 j) N( D( n3 Y#连续型变量描述性统计
    $ }" U, G1 L0 S7 [! L3 y& O, r( `& z6 Jwindows()
    3 B9 q* ~; J  J0 G& E/ S+ F1 Wpairs(a[,c(6:10)])    #所有连续型变量间的散点图: A; E, u% r1 P& s) t4 g' d* W
    par(mfrow=c(2,2))       
    / H9 \  u" K& wplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    4 M( A3 y8 K: N# i# Oplot(lv,price)
    8 s9 y% k7 n8 A! H9 t6 Nplot(area,price)
    ' e% F! v4 F8 l0 i6 uplot(ratio,price)$ V4 U9 d3 Y8 J( x6 ]' k
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量( c9 O: H: i9 i' J; s
    cor(a[,c(6:10)])      #查看连续型变量的相关系数% f5 o3 n& K! h% D8 p
    #属性变量描述性统计
    7 D' z' G" u/ ?( S9 gwindows()
    3 G' d" g" S4 a0 `  B4 H# npar(mfrow=c(2,3))                       
    2 G8 [0 {. F1 l- p7 Rboxplot(price~dis)          #每个属性变量关于响应变量的箱型图# ?' P( o9 V* ^
    boxplot(price~wuye)                                                                        6 H5 y* j8 h& ?$ [& _7 ^2 b
    boxplot(price~fitment)       
    + f( \2 T, m# b7 ]boxplot(price~ring)        , l! P! L# F0 r* {% y
    boxplot(price~contype)
    2 D: q: _# k+ ^7 _6 u& `! N- Y! N

    + p9 i8 S7 X2 b, ?) b8 S, @) Z1 l8 a' h6 W( ?0 o) ^- r: V7 v

    ( v5 ?: E$ E# K- t4 S; y##模型建立
    2 b1 q& v: f' _9 x) R8 A
    * q* J( w7 o# K4 I2 m  A

    3 g6 R1 q' g0 ?#在方差分析模型基础上加入连续型变量
    $ }1 {+ _8 A: j5 blm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    4 z/ V, i* L, j+ y( e4 eanova(lm1)                #方差分析
    7 l( u# A5 U) W% k3 W/ i- Tsummary(lm1)              #模型参数估计等详细结果
    7 J9 i* k! ~1 t/ x0 r: }2 ewindows()8 F/ P% ~: p; V/ [2 b
    par(mfrow=c(2,2))
    ' M. b3 @8 J: K9 b5 N9 f$ Iplot(lm1,which=c(1:4))    #回归诊断做残差图
    * q# s0 o6 i( d6 W& K) m9 K/ a7 p) Z5 @1 `$ u. S
    2 C- v5 j6 Q1 ^( X; q9 j! \
    " J6 E6 u$ L+ V% l: `
    6 u' r6 a1 r* ^
    ##变量处理
    ) C' c# L: o8 c, q, j
    # @" n# G) p8 ~- J- ^9 N. v

    , K  R1 \5 o, o###对不显著的变量采用分组的方式希望能达到显著的效果, [4 V0 I; d1 L8 S+ y
    ##对容积率的处理7 P# r* o7 k$ D5 |
    windows()' o; B, t5 o# u0 z4 H& ]+ C. F; P
    n = 4/ z' m" F2 a9 e# W
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    : o; u8 f! ]; q; S) G$ I% T! Vtable(ceiling(rong/n))                                                #容积率各分组下的样本数% R2 o+ F/ U  r' U3 c( U2 k4 f
    ronggrp=1*(rong>n)                #进行二分类
    & o' b9 w7 z; c1 ~#ronggrp=ceiling(rong/n)        " Y. w. w2 h7 j* E
    table(ceiling(ronggrp))           #容积率二分类下的样本数# T+ i; j! a3 P- b! d
    windows()& a% U- O1 |; ]+ [8 ^3 U1 {- q
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图7 K/ W3 m3 R. u3 B1 Z
    windows()
    / x+ g6 a8 a; x. u; p  u& I) k% epar(mfrow=c(1,2))/ E8 T: X0 X! j
    boxplot(rong~ring)                #容积率与环线箱型图
    4 u# L3 P! Z. o' W( C- N  I: }boxplot(price~ring)               #房价与环线箱型图 , Y6 I! i* S# Z
    #加入容积率分组和容积率分组*所在环线交互因子的模型/ w' m" O% g7 R/ J' I: X8 J
    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)
    ; s5 S; J* e/ O4 O# C8 \& X5 w7 Kanova(lm2)                #方差分析
    3 Q9 s, j6 n8 N0 ~; O0 [0 h# ?! B1 \$ Esummary(lm2)              #模型参数估计等详细结果9 l3 Q( |+ a) o- T( q
    windows()
    ! Y# {( e5 [, @# X" mpar(mfrow=c(2,2))9 q4 ^# `+ i8 |( P. F$ y% A9 E
    plot(lm1,which=c(1:4))    #回归诊断
    7 Y5 |" R5 J. N! [* ~& Y4 Z& W: {) W+ I% V: y5 f

    / q# \; w' K9 J" i" t' Q5 V" m4 _##对小区面积的处理8 R  s+ s! c' y/ M: i* G  z, S
    summary(area)
    / X: Y' x- m0 \6 R/ S6 h' ~plot(area,price). t/ Q2 ~" [# A+ Z
    windows()
    " }( F; Z: i5 {% d8 H3 D$ zn = 150000$ s% ?' H, m6 C! t
    boxplot(price~ceiling(area/n))                                                       
    + C8 o9 ?$ J  E8 D( Btable(ceiling(area/n))                                                               
    7 m5 `' k: G$ b4 t+ ], aareagrp=1*(area>n)
    1 Z. k6 ?1 H2 F/ T5 s! o# a. P2 Ltable(ceiling(areagrp))
    7 c+ m( v0 C/ C3 H$ ]1 g5 cboxplot(price~ceiling(areagrp)). u1 Y1 C* F- e+ Y2 l7 S
    #加入小区面积分组的模型" J/ A' s. ]1 {$ h# G% A3 t% U" T
    lm3=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)
    ' P4 c" T1 }; K8 Ianova(lm3)                #方差分析+ ^5 k6 ]5 t0 Q' P  z0 T5 C
    summary(lm3)              #模型参数估计等详细结果1 Y# t3 a" j: _) K7 r5 x
    windows()% l* I! ?1 s5 Q3 P! m
    par(mfrow=c(2,2))! B  x  ?# f& V  _% i, N
    plot(lm3,which=c(1:4))    #回归诊断& n: J1 ]. V& v; Z* ~, s

    ! a8 _+ i# |# G: N/ k- J
    8 h4 o4 k6 d' w* E9 }4 @/ J. S% c% v
    ##变量选择9 G7 Y. q9 d+ ~% ^  C
    " p( q% x' ~8 N+ K& k  }, D' J0 C

    . W: z2 q& |0 R+ U##AIC准则下的变量选择
    ) d% g% u$ T( v+ \# f! S' slm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ F, \/ z6 R) E5 X+ a( ^summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节3 b1 T  P% f9 }; d
    ##BIC准则下的变量选择
    , x! l: C1 \, }8 k! c  X  B7 flm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic7 e( B  C+ ~4 U& L( ~  Y5 c3 k- H
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ) u+ h& t2 }6 N6 @. l/ ^2 q/ z6 v( b4 j7 Z, \4 _8 l" N
    / C; ^: G. N  _9 p
    #选用AIC准则下的模型进行回归诊断/ s0 h- I# t# [5 j$ I9 b% l
    windows()
    ( y' P- X* f1 `6 hpar(mfrow=c(2,2))
    # X; s  L, v4 L( `% t# Cplot(lm4.aic,which=c(1:4))  
    7 w; ~  J: V5 K$ Y# _. Y: y) Y/ q; h1 n5 o- v5 x8 y  Q

    * ?! u+ `5 Z* d" J3 Y" ^; r7 {- X9 [: a. W- v

    5 h/ D# f& u( O3 }3 L( d##数据变换
    . R' D: Y5 @/ I; b- o7 w- w' x! [: R0 a  d$ r, d
      Z2 ^3 y- s5 O) d
    #box-cox变换
    % |- g. j7 D$ Y  g4 l: slibrary(MASS)
    / p8 V& O# Z! g# |( M! H$ {2 ?' xb=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))6 |' L1 J( Z' o7 l1 ~! }
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    : p- V! \  m( ]% {+ }  Elambda = b$x[I] #精确的λ值
    3 h+ W( f+ [5 G$ c! G) v4 m#λ接近于0,为模型简洁性,可以直接进行对数变换
    - O6 x+ k  M- _. P% Qlogprice <- log(price)0 H8 C1 k) `" w. U" O( F. }& D
    hist(logprice)
    , w; I9 n* \. G' P( z/ e& ~1 g% }. C
    8 j/ [) E6 |: T( G7 A9 y! E. ]
    ##最终模型与诊断
    . n) u8 y# G" H" a) l
    * w( ~* K. r. r. q( `3 y1 A5 Q7 N5 X
    $ |; m2 u  _+ b, g1 O' B$ n
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    2 x+ v$ }1 f0 g8 F/ lwindows()' A, d8 @% I# u
    par(mfrow=c(2,2))7 U- V1 v% p% o8 S' q- R4 X( b
    plot(lm6,which=c(1:4))- u4 X' e; l# P: A3 E" m+ p
    anova(lm6)
    . ]5 `: k& P' K. z/ @% ~summary(lm6)  B& M" n8 l4 J0 i+ F
    3 E2 A1 G+ f: o1 A6 Q
    ; K) ~# Q4 @  N, j2 O
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    ) a( N6 S8 _2 H3 R7 ~& k4 U

    ; e5 z! ?4 u1 R$ a0 |' G& u6 A! M8 R* O7 @* z/ ?" l0 e+ f

    - K: A. ~8 A4 h: p. |' O1 L$ A9 V
    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的分析没有
    " g9 [# O( R/ l' i7 M6 p+ a! \% W- L7 G- j5 I* K

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    / c* `4 J( r, _7 X5 V+ `' {+ x# ^: }! F% |% Q

    点评

    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 1 g# e, y0 L$ W  T9 X/ x
    太好了,又认真的看了一次,发现自已差太多了
    & ]& A! e4 i. V9 D6 D
    我每天会发一些好资源的) f9 M& R3 K3 m% ^8 \
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 0 V4 J0 Z3 m: x3 z
    一定会认真的看看,发现这是R的,有python的分析没有

    4 ?: b4 i5 m6 m9 M有啊1 Z- q3 f( e- ?, c  H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-6 22:17 , Processed in 0.483809 second(s), 79 queries .

    回顶部