QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。8 P: d' V) D/ ^3 b* H5 S0 k5 ^( T
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    $ t5 s4 N, \4 p2 A0 ~; a" T+ i5 A行描述性统计分析,各连续型变量之间的相关关系如下:
    0 a: I, F- {: M9 U2 H4 j0 J8 W  N9 @, S9 |' V( ~* y; ?: h* M

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

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


    9 B) c4 ?6 I* @3 X% L
    * ~" `4 R2 h- r  j. o9 V* `: H0 U& c/ \2 @% X
    最终模型残差图:
    4 T+ L, M# }% W: W3 `  P2 S% Q1 G4 q% h, j
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:1 d$ @: y3 j4 q% t" _
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    ; s9 [- x; M7 x, b, G8 D2 Z3 N8 e属性变量的具体影响在此处分析略去。  [3 ^  ]& \% G, w: U
    连续型变量的影响主要为:3 T6 A5 ~# l; t' P% w/ }
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    / M# K. q8 ^7 V1 c 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ( Q# }; C/ M2 i/ n1 h同时,原本为连续型变量的容积率经过离散化变为属性变量后:: E4 o- c" @' _
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ! |" L7 G0 q5 }; t 容积率与环线之间存在着交互效应。; U' x, r6 ]" ^0 t! ^( A2 ~
    rm(list=ls())                                                                                #清空当前工作空间' \8 b9 y+ s  b  z  D5 \: N
    setwd("D:/回归分析")
    : }8 @, {- L# s0 M& \$ o9 \a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a9 W3 f& N, v2 d; O
    View(a)) z  R3 z7 u6 v2 ?
    attach(a)
    8 V, C+ c3 f3 A1 t2 a0 o/ T3 Onames(a)& {% v  m9 d5 L. Z$ B
    3 y# h5 {6 R1 g; \! e

    ; v  c7 s. c0 B##描述性统计
    : \! Y/ |7 K/ G
    ; k: h. n- V/ A) I. I: \
    2 g4 h7 }  L7 T$ O+ G! I  N) _4 R
    #未做处理的响应变量分布情况1 c4 ~0 k5 c' e
    par(mfrow=c(1,1))
    3 A6 D9 K/ a( m$ y/ ^; c$ g  Ghist(price)& x7 g* k$ t( Z8 g1 v' ?1 O
    summary(price)        #查看响应变量的描述统计量9 {4 \( J/ C' K
    #连续型变量描述性统计/ H8 d  d8 ^3 \' H6 E
    windows()
    6 I( g5 e1 H: V$ qpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    + n# }6 \4 F" y! i6 H* y$ e! E+ N# B0 v( }par(mfrow=c(2,2))        2 ~( z& K, M. X8 f* T  {) E: F
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图7 p' c9 b" N6 E
    plot(lv,price)6 x3 z2 G( ^' D6 A6 T
    plot(area,price)
    ( f  ?( Z2 @& g9 [* f& Fplot(ratio,price)" H/ ^5 n; g% L% f4 N; r
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    $ l! {. f& v6 _. u# Z5 Ncor(a[,c(6:10)])      #查看连续型变量的相关系数
    9 v' w5 w0 q, Z7 O& n1 Z#属性变量描述性统计8 T) R: Z) c7 R# ?* g
    windows()
    . x. R# S, G2 Zpar(mfrow=c(2,3))                       
    . `8 x, _+ T' B2 x" mboxplot(price~dis)          #每个属性变量关于响应变量的箱型图1 l9 x/ W- d4 D  ]# [
    boxplot(price~wuye)                                                                       
    8 p$ X8 U7 q! l  P+ }+ h9 vboxplot(price~fitment)       
    4 S) r, M8 J7 uboxplot(price~ring)        , i: @* _" C. @. k" G/ a5 c+ o7 B
    boxplot(price~contype)
    . ^, f0 M* E3 {* L8 B- _
    0 M- v- G, E2 ^, |7 f7 m

    ' R7 Z" i" J. A$ r4 r* _2 Q3 T* I9 {! H# ?2 L8 A
      H( l  x" y( t/ u* c) k5 h3 ~
    ##模型建立
    " U& O1 V0 t0 ~' ^$ q3 @5 }; W

    2 O2 [' |, Q' c0 Z#在方差分析模型基础上加入连续型变量$ y" w* P  I8 L1 o8 o6 S
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    + {( o7 b. k# K0 manova(lm1)                #方差分析
    % i9 h1 X4 `4 T/ b: c" Z: C" @summary(lm1)              #模型参数估计等详细结果
    & l$ j9 S, |- u) s. g" ]8 jwindows()$ E4 h9 W# W4 P6 q$ |
    par(mfrow=c(2,2))
    . k8 G$ }/ Q! i! Z% I* j5 `plot(lm1,which=c(1:4))    #回归诊断做残差图
    ( Y$ x2 a1 C9 W8 K6 A
      j& Z- [6 {7 E# ^  v

    7 [$ w  B* L7 i9 H! z' P4 Z
    + \2 t0 V# e/ W) x4 f7 g1 v
    ( J* n$ h* y6 o, \- z  E
    ##变量处理
    + r. x: N2 e4 g3 X3 {0 o
    7 V4 _+ }1 @" I' T2 M

    3 g* u) ~0 t. v1 m& e; P3 \6 p###对不显著的变量采用分组的方式希望能达到显著的效果
    ' c+ N  Q0 W$ a. r##对容积率的处理0 x# O- d& [+ {* Z7 n# b+ }* e
    windows()
    ) }3 F$ L! o+ @5 U/ X# in = 4
    5 L" u" q7 w! k7 Oboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    & D1 K& b5 \* @# H; Qtable(ceiling(rong/n))                                                #容积率各分组下的样本数5 q2 M" c  f. f, J% q! J: O: T
    ronggrp=1*(rong>n)                #进行二分类
    3 `9 r3 H; O0 k& F5 A& T  ?* \#ronggrp=ceiling(rong/n)        : v! H+ [# i9 z- n2 Z/ L9 l4 S
    table(ceiling(ronggrp))           #容积率二分类下的样本数# s$ A6 K2 x6 `, B7 c% {
    windows()
    - _! c2 z( N" nboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图' d. v" P5 i: s$ s' {# l3 [: c
    windows()
    3 Y8 ~& P/ _* `5 g- Vpar(mfrow=c(1,2))
    : H. ?  C0 {+ D9 F0 _1 S! fboxplot(rong~ring)                #容积率与环线箱型图( d6 G: `: y6 c6 k
    boxplot(price~ring)               #房价与环线箱型图 & J( G4 n6 |5 p2 v
    #加入容积率分组和容积率分组*所在环线交互因子的模型$ L- N! z% {- i+ W( s
    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)
    8 U' @. e  i6 ?. ?4 janova(lm2)                #方差分析& E1 E9 M1 J. l( @
    summary(lm2)              #模型参数估计等详细结果
    7 u* B1 f. I; \4 z& E9 ]windows()
    + ?* X/ K7 k9 dpar(mfrow=c(2,2))& Q  l* g% P9 U- u4 s6 L3 _
    plot(lm1,which=c(1:4))    #回归诊断
    & l+ y5 ^, S, [9 J( n6 t8 F% T* I, H1 w, P1 Q
    6 M# {, @; A* l, X6 b& |' s* ~
    ##对小区面积的处理
    4 F6 `) s5 q  P3 fsummary(area)9 S8 a% O! h9 Z4 K, d) c6 T0 w. |- N
    plot(area,price)" q6 B/ L4 F( Z0 R5 g
    windows()
    : P) D! X( d( |$ x& o- cn = 150000+ {6 M( P8 X* f3 u+ ]- v
    boxplot(price~ceiling(area/n))                                                        ; C: F. i5 e( w1 k3 e
    table(ceiling(area/n))                                                               
    3 s( P  f$ [, P1 c+ \areagrp=1*(area>n)# G" @9 Y: |0 }! j9 A4 n
    table(ceiling(areagrp))
    0 ]6 X/ X' _4 m! Mboxplot(price~ceiling(areagrp))) N! d! U6 _1 s( q
    #加入小区面积分组的模型9 h: z& Q& @3 i  y: ~8 ]+ O2 S. C
    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)
    $ M+ p* n: ?3 M# b3 z* p" Ianova(lm3)                #方差分析" B& [" d4 D2 |3 B
    summary(lm3)              #模型参数估计等详细结果
    ) o  t+ H0 c7 q9 ~; dwindows()
    $ e8 U' P! N$ b/ Opar(mfrow=c(2,2))4 c7 B& g  P2 ^4 e# g  C
    plot(lm3,which=c(1:4))    #回归诊断. x4 q# w9 C, u7 b6 n+ _
    $ g# V5 |4 F% k6 c6 ?
      N. r3 k8 P0 W" V
    ##变量选择% i2 c8 s3 ?5 ]/ p  {4 M; w

    9 B* V$ D9 y* K  a$ N4 O
    * l7 S3 R! Y2 x) E  R' e
    ##AIC准则下的变量选择
    ; k- E4 R" r, G6 k1 j" ?1 Z5 Ylm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic' E# c0 s- }1 p/ v2 J
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    + M1 ^( c. n5 O' w, v3 @* u##BIC准则下的变量选择3 _1 ^! K4 |% J5 o8 _+ O
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    : V: a  h! G6 @* [# G; hsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ' d$ f0 o" V! g( q+ i5 B: w" N( d$ \# w$ V# d  R0 I0 |7 K9 {
    , z& M3 v- j4 {
    #选用AIC准则下的模型进行回归诊断. T1 K2 E% N6 E! Z, d2 s2 E
    windows()
    % w! k; i: N5 k% q7 p! T- t, n4 Bpar(mfrow=c(2,2))' B2 k" J+ V* ]. W
    plot(lm4.aic,which=c(1:4))  
    : O1 L! V7 z# ?
    0 R" M/ K- w# U" F8 s- i; i' [

    & q% w& ~6 i  g4 h) B$ f! i) T& [0 S3 k# x' C2 _
    , T7 @) o: q7 [2 |& G
    ##数据变换
    ! ~' Q$ ^+ s5 }1 o( f- e( f
    1 h; |) `8 ]- c" Z+ r

    6 V0 j0 K' u; ?#box-cox变换
    - o/ V9 V6 ^; r4 h$ |library(MASS)6 Y: @" P# z  k, L- M; j: p
    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))
    ! {' t5 h- \3 A8 VI=which(b$y==max(b$y))  #定位似然函数最大的位置
    - D1 u; X" J1 {$ @$ elambda = b$x[I] #精确的λ值
    % T  |; Z# z6 g/ m# n3 m) [#λ接近于0,为模型简洁性,可以直接进行对数变换; N) R7 w& N  O+ M8 F" |
    logprice <- log(price)
    ( k' V( l, @$ U) z3 c. P* @" ^hist(logprice)
    5 j8 w0 s% S) f- e  P/ q1 m* x# X$ r/ r8 Y0 ^
    * o: F) d3 B8 f
    ##最终模型与诊断
    ) ^. T5 r  x; H
    * ]$ x+ u1 w2 {

    1 Z3 y( j4 b  \, B; k+ ?2 ]5 Clm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)% [7 F0 T  M$ L0 T) W
    windows()/ Z: g% I$ J4 P( b
    par(mfrow=c(2,2))
    0 R% S$ T; u6 u  ]2 {/ Gplot(lm6,which=c(1:4))
    - i- A! O, ]) w$ C, h. Canova(lm6)
    8 Q; e; e! C. o! i% A7 [! [summary(lm6)! k$ {0 s# ]- s0 _4 q  r$ k% ]
    1 y+ s$ _2 v: O2 B& G

    " C5 j& y, [/ Z6 s! v请关注数学中国网微博和数学中国公众号,联系QQ 3243710560' q0 o5 x! |1 }

    7 u- b$ q( C/ E6 m9 y
    6 i3 B8 J& H# ^0 k2 j5 d' k, ]3 F& Z" F8 z

    ! E3 r3 d6 W- r) H2 ?
    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的分析没有, k4 P$ [7 z8 g- W$ F
    & ^/ o6 [5 e3 Z7 |2 b/ P

    点评

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

    太好了,又认真的看了一次,发现自已差太多了: Y9 R! Z8 V; S; Y5 N( p# o1 @) ?
    5 F- ^$ @* D- x4 M- Y7 ?

    点评

    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
    & r0 b+ P' I4 L太好了,又认真的看了一次,发现自已差太多了
    ; N* G* L8 V( j
    我每天会发一些好资源的
    ; H( ?- A1 F2 R& t( T
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    9 V/ K" U4 `& T1 e: F一定会认真的看看,发现这是R的,有python的分析没有

    ( N' @8 l5 G& y" A! W$ Z有啊% G1 P' {' O& u( i1 S) N
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-23 04:35 , Processed in 2.198609 second(s), 79 queries .

    回顶部