QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。$ Y0 i4 S7 D) \# ?( x6 _* H7 Z
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    7 ~* y" ]( v4 L) m' ]
    行描述性统计分析,各连续型变量之间的相关关系如下:- H( b$ ^3 C2 G! \; R

    $ S7 e  r7 n( N2 I6 k

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

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


    , z' l1 B8 R5 Y# m2 }* k7 r+ w1 j# R) f2 v& q  t
    5 \! ^. H; `2 J) j$ _; t$ v
    最终模型残差图:
    5 P$ P5 U% e: X0 R# S  G5 e/ g. C" q, P8 {' c+ J/ L: h! i) K
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    & B  n. i! @$ j属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    - ?8 \3 _# U2 Z, [属性变量的具体影响在此处分析略去。$ n1 W, o2 b- E- f7 J$ q
    连续型变量的影响主要为:! z4 ~/ e+ g+ L; X( J" G/ t; a
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;' u  t& J. {+ l* b4 x. h! H
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;: ?; ]/ V: f. u( x  m- k) O1 Z
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:7 ~& z$ U  d7 d8 ?7 G, G
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    " C  g" m- C* u 容积率与环线之间存在着交互效应。& B7 g7 Q% H! n0 q# z
    rm(list=ls())                                                                                #清空当前工作空间
    " [5 A2 ~: k* i# w4 Jsetwd("D:/回归分析")
    . i4 r5 b+ z! R2 @a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a6 m# H3 o) n. L+ s
    View(a)
    4 P  G+ y- h4 K/ Jattach(a)
    $ w# g' M, S! ]: ]! Snames(a)/ v2 m% f) X' @

    8 ^+ n" r) a1 ~' k6 K  W; B3 \% e

    ( E5 d) E' g; n( f" W  R  m; l- D##描述性统计% [+ O) g! c9 ~

    $ z7 O- q. C: b: A6 M  a) z

    9 b" F( M# V  |! V/ B9 B#未做处理的响应变量分布情况
    . G; e. U' R+ {. p5 F, Gpar(mfrow=c(1,1))
    : r; ]  {: a8 K. Q7 P/ g. Shist(price)
    " a$ q) V0 n6 w1 C- Q; Hsummary(price)        #查看响应变量的描述统计量) o* f* O" d7 h: H& e" L
    #连续型变量描述性统计4 E; L0 S0 N4 h
    windows()
    8 l1 Z: ]5 [- r' j" e: t' L, _pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    " `- V/ N8 e- K0 r: W9 tpar(mfrow=c(2,2))        6 d1 C4 v# i6 H! C4 T/ ^
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图/ i+ H. Y% `, J2 z
    plot(lv,price)
    8 |5 Y: V! f. p, Vplot(area,price)
    ; s( m$ N8 f2 _6 ]1 U  \, M" Y% Hplot(ratio,price)* X9 {- `0 f9 W9 x
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量/ v1 p8 v# J6 k: w
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    . e7 r; V! a6 f( F9 H#属性变量描述性统计, _* C& C: g( H  G+ e9 T: a; K2 c1 K
    windows()
    ( y% T  i% q) q6 p7 R8 lpar(mfrow=c(2,3))                        $ \$ N9 K) e0 p9 G& C5 a. k
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    7 B3 K/ A3 |+ _8 nboxplot(price~wuye)                                                                        ' r+ T1 T  a& z) f
    boxplot(price~fitment)        5 |( h" B/ _" _
    boxplot(price~ring)       
    1 G; [7 v7 z. m" O1 Cboxplot(price~contype)' n- e# i5 @& J. ]$ `0 X

    1 h0 ^: N  Y7 }. A$ l

    : `0 E4 o& [0 N9 h1 D& Y. _2 ^7 ~* i; _7 g( k# `

    * ?' y2 O0 L  H5 _) }1 I##模型建立4 K0 i, Q/ }9 d+ y9 ~! z

    0 L: m, J4 @" h: }: X7 F+ a
    % m3 S  _: {1 U2 y- \! S
    #在方差分析模型基础上加入连续型变量% h& G' U8 O" W& @
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    # v0 Q3 s* K* s7 {8 b  O) U$ K& manova(lm1)                #方差分析
    $ [% K2 \( M4 M* ?summary(lm1)              #模型参数估计等详细结果
    . u# T$ ]0 g3 ~9 y/ Kwindows()$ ]4 x) D$ k, _/ v7 ?. f
    par(mfrow=c(2,2))* Y8 ?3 V) q1 @- ?7 ]
    plot(lm1,which=c(1:4))    #回归诊断做残差图, O0 e  Z: U" P9 B- l

    # D6 V$ ]) A9 p9 g8 L
      v2 }) W5 f& `7 D- e

    1 [3 I, y) [' u! f7 B

    2 ~. X/ K0 p/ h7 O$ {8 k, M$ l##变量处理8 u7 u2 r  C" W1 {* n+ J, T

    % `% b! K) o; ~/ Z
      Q- I9 P  `5 Q$ s* Q. g" L
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    ' G& C9 p! j5 l; A. I0 r##对容积率的处理
    9 |; O3 S# N1 \- cwindows()
    ' s, s6 t! N$ ]4 kn = 4
    3 v* w1 p4 s3 B$ o9 E1 ]" W# Tboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    6 `6 B) J) y- L1 _: m! j( p$ \8 Gtable(ceiling(rong/n))                                                #容积率各分组下的样本数4 J/ X# R0 W8 d
    ronggrp=1*(rong>n)                #进行二分类
    ; |4 ]4 \0 b3 N8 |/ {" E#ronggrp=ceiling(rong/n)       
    0 p; G3 {. |# y0 E4 g2 ^table(ceiling(ronggrp))           #容积率二分类下的样本数
    9 R$ I7 L& e3 U( D+ ^windows()
    # F6 O7 `+ w" T4 x! M: Mboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图& j" z$ S4 i, I
    windows()
    2 q/ v6 Z+ F6 \$ ?& r7 ~6 M8 Hpar(mfrow=c(1,2))8 R( |2 e4 g4 |( \) `
    boxplot(rong~ring)                #容积率与环线箱型图
    ) d% S  m8 u; a0 H! Pboxplot(price~ring)               #房价与环线箱型图 4 q( e2 N% o" U9 L' H
    #加入容积率分组和容积率分组*所在环线交互因子的模型% x1 y# `' f* s: i9 D
    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)
    2 Z/ a. f- l; g* Eanova(lm2)                #方差分析
    0 h3 @/ G$ A( t) c9 J9 z- usummary(lm2)              #模型参数估计等详细结果
    & s, D& |+ c2 `4 x- h' xwindows()
    8 s0 E" v  R. ]9 z$ q% ^par(mfrow=c(2,2)), [- S  |" ^. u. \( d; @
    plot(lm1,which=c(1:4))    #回归诊断
    , c7 M2 F% f1 h; K9 v0 U: U, h
    / K. B6 J7 _( W7 m. e& z+ K
    ##对小区面积的处理
    ) e% s2 Q* q8 J5 M& F( Osummary(area). N4 W$ J" q, F# u; T# s
    plot(area,price)
    3 L: q) j" E$ I$ ~  H9 G3 Z2 _7 Cwindows()
    9 u' O4 g: [, A5 c) [n = 150000( Q% B+ g  {! ^6 [
    boxplot(price~ceiling(area/n))                                                       
    ' z* C2 A' _7 L* Dtable(ceiling(area/n))                                                               
    ) p: Y# U# p& N  P1 L# N; eareagrp=1*(area>n)
    1 i* p6 ^1 f4 ^7 S* k5 Stable(ceiling(areagrp))
    " p! P9 [1 J& s. t& uboxplot(price~ceiling(areagrp))
    8 m, h- ]( v0 F7 O8 K1 J#加入小区面积分组的模型
    7 Q( \) h- I6 q* w. l" }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)
    . h( Y+ L, @" L1 K' Y8 Y* F/ @anova(lm3)                #方差分析
      c2 b3 J2 [9 `5 ~7 jsummary(lm3)              #模型参数估计等详细结果+ e/ \* t$ B. i/ h3 e/ s
    windows()% a3 i; D9 f. S8 Q2 ~. S
    par(mfrow=c(2,2))
    - j) N, L6 r" I% zplot(lm3,which=c(1:4))    #回归诊断0 G# H9 F9 C- @

    7 R; W5 q7 B4 T, r, G+ J
    1 i! h5 c% V+ r4 d2 R( L+ G2 S2 I
    ##变量选择
    $ ^3 Z* K0 R: m& C) o6 I. h2 r% O6 p% U) j! ^/ S" t
    ) O* B1 q, j! J6 m% U3 e
    ##AIC准则下的变量选择
    - F" `: `3 S3 Q' q" Vlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    ' p: _! }6 N  Y0 W0 Z% Z+ x4 u& C+ Qsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节1 W7 P( i, _, i" b% }/ h- ^7 E# e
    ##BIC准则下的变量选择: x/ e7 H- |. f8 ]
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic3 R1 |5 [8 V, [. |
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节4 |8 \0 J" g8 x* ?. P- O$ M7 ]

    - w0 \2 Z( Q8 J

    0 D! J: i6 M: y! A" E#选用AIC准则下的模型进行回归诊断1 k9 ]7 E4 B: _  e6 Y% Y+ i  H: R5 X8 \
    windows()
    % l8 ?( E8 [  w+ n) {* B* ~par(mfrow=c(2,2))
    + W0 p3 o4 L& W  Oplot(lm4.aic,which=c(1:4))  
    1 o) s/ {% S8 e& M0 @! ~$ u+ o+ _5 Q
    2 w; p9 h8 u# |0 L
    * O$ p; w( D/ u
    ! K  w7 k" b# i  ]
    & ?$ Z5 _) N9 U1 b  O
    ##数据变换
    * C4 Y0 e" U6 S+ P( R6 ?& C2 _

      e# f3 N8 [* L8 W* g#box-cox变换6 ~6 I/ a3 r* g$ S* F
    library(MASS)
    ( V0 Y/ Q! T3 b4 E8 ^0 V2 bb=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))1 B) [# `& L, l& ~* y5 O$ w  _
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    4 l6 ?& c- \( D% i' @3 `) Ulambda = b$x[I] #精确的λ值
    " d" N8 G) r' M/ G- _1 R#λ接近于0,为模型简洁性,可以直接进行对数变换) B6 `5 h; _( P; [* A/ K
    logprice <- log(price)5 a. ^& _- _7 [7 ^+ c
    hist(logprice)
    1 @: ]3 r$ n5 S; z
    : h1 Z3 i2 q7 W& k# @- Z1 n/ S
    7 {4 @+ [. p" D+ P: {( i; D
    ##最终模型与诊断
      |: Q$ }9 H% b# C9 X, m" J* W+ B- |0 N0 {+ ^

    & m5 P. ~6 @: F/ N$ M5 hlm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    0 _) W5 X  S9 w# S0 T, owindows()
    ! G5 @+ V& d0 X/ fpar(mfrow=c(2,2))9 F, M0 B" _  w9 h
    plot(lm6,which=c(1:4))
    5 T1 V& Z8 X% A( l* danova(lm6)
    , }; o" S- p. gsummary(lm6)
    , \8 |4 `* |3 Y: Z% c
    ( C7 J2 _0 l. [. ]& Y( Z% a6 N
    6 o- [. `/ u& R: n% g( F) |- x" V请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    , W% }$ p1 r# l# }3 i
    * Z2 ?, B7 O" y. l9 L8 {

    ! z0 a0 D1 l3 x, ?' `
    : d2 K$ Q/ d3 g2 X
    ) C, H: _/ J( e
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    ( [+ X* h' U- c- v
    5 U  F+ A" p7 `( V# B/ G

    点评

    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的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了' a2 t2 K8 f: i2 t+ a

    4 W2 @* {+ p3 a) K

    点评

    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 @" {' T! N5 H' y" [太好了,又认真的看了一次,发现自已差太多了

    + K7 c% z& Q. [/ y8 _( i8 g我每天会发一些好资源的
    : U2 r) g& c5 z3 h! y" b1 I( f( `
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 + f4 @- q: O% D' X$ W
    一定会认真的看看,发现这是R的,有python的分析没有
    * s4 s" u( v' f7 u. m) ?. d
    有啊
      _( A6 z8 X+ R1 N
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-23 07:22 , Processed in 0.713848 second(s), 78 queries .

    回顶部