QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    5 j) L/ c4 s8 G! F0 D/ f. }这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    / L1 Y7 ]9 S1 V3 v( C行描述性统计分析,各连续型变量之间的相关关系如下:/ ?( h1 M; y- u8 u5 ~# S

    5 g6 Y. V/ n- N  G* T( i; ]0 l7 ~

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

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


    7 z, a8 a" v6 `0 {- N  l  z* M9 l4 W4 b( |; c  X

    % j/ ]4 m* q7 j. I& N' O" C最终模型残差图:
    8 Z* O' O0 G( V
    # [5 |1 S' W" Y" |% m
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    * v- N3 v/ c( J. w属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    6 M: i. S$ g# k1 G! a5 V. V8 ?6 L属性变量的具体影响在此处分析略去。
    7 q1 H# Z& M; m- I连续型变量的影响主要为:
    9 _9 d2 i6 I. `1 P/ a3 B" n' l  A9 r" R 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    / e" b; {3 q( `- y' V 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    5 |, H) I5 a9 [' [1 G1 C同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    $ s6 v& x+ H9 R( N+ Y% Q7 w  C. o. }) v 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;& i# Y; k( V7 j+ }* d: o
     容积率与环线之间存在着交互效应。
    * U; E+ @1 q9 u- a" k: Z6 z$ prm(list=ls())                                                                                #清空当前工作空间8 J2 m. v% l+ V7 C0 Z
    setwd("D:/回归分析")
      r, u% C3 L6 G9 Q8 }3 b1 ta=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a' S  p6 @/ G; l5 h4 b$ x
    View(a)
    0 m% L' f1 }" K) U8 lattach(a)& w3 H* Y2 n+ U1 q
    names(a), c; u; w3 `) ?+ r/ {

    8 t( D* K- v! Q8 k# u

    0 F% [) P9 g+ W; H/ D* W##描述性统计
    8 _9 ]. T/ P, ?3 M: }
    # R- m' E3 b1 i2 }( B  ?* w
    2 d- ?4 I* _  Q+ G
    #未做处理的响应变量分布情况
    5 W& H5 N' c7 s9 Opar(mfrow=c(1,1))/ k- J7 u& h' I6 S
    hist(price)
    ) O  I5 v' Z8 B& W6 vsummary(price)        #查看响应变量的描述统计量
    6 V# i* b* s) u! U& u& e#连续型变量描述性统计$ f' w9 j/ p$ K% B" D7 _) d
    windows()8 w3 R2 D5 E7 H' a5 P  ]3 {- z
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    $ ^7 J# p/ y' hpar(mfrow=c(2,2))        + C: z; P- D4 A: K6 ^$ Q' g& f& u& V) ]
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    & f! z0 i/ n/ Vplot(lv,price)' ]! l9 ^1 Z+ T. C' r- T  n
    plot(area,price), E/ r1 t9 W3 D! W. c
    plot(ratio,price)
    & q. I8 V  N% H) ]' Q6 |summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    $ W2 k8 |$ R' j4 Ecor(a[,c(6:10)])      #查看连续型变量的相关系数
    ( M5 Y) C) H6 f0 @8 {: x; K#属性变量描述性统计  @' c6 x7 m5 @* M' i0 V
    windows()
    / w0 y* A/ R( q/ d. K  v; {$ Ppar(mfrow=c(2,3))                       
    + S" c$ ?3 V% }* D3 y) V. yboxplot(price~dis)          #每个属性变量关于响应变量的箱型图7 w. r* e. a* Y% G
    boxplot(price~wuye)                                                                        6 g4 C# c! X1 |5 P7 b  i! J4 f" r
    boxplot(price~fitment)          \: |7 P- p- I, |  i/ n6 ]1 n
    boxplot(price~ring)        * k7 ^* D- T8 n4 A" ]# t
    boxplot(price~contype)" M  V, a. _9 Z  K* K

    1 ~: b8 ~) i" v5 S4 o7 V

    : l2 ]* L5 Q1 O) V' }, r& D6 X- z8 K" u. Y( b
    " _* K, X5 f4 g6 a
    ##模型建立( O$ e& @# U7 s
    3 H; t( j% }$ g, `/ t% J# Y3 V
    : v1 r  C" Z. S# V5 n9 t% i) E( _7 n
    #在方差分析模型基础上加入连续型变量
    : W1 |1 `- Q9 ~1 B* V- slm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    8 D2 s( ^) ^2 k0 u- i4 ganova(lm1)                #方差分析% Z) K3 {) c6 z
    summary(lm1)              #模型参数估计等详细结果
      N: I+ u! s2 I* M4 w9 A, m  xwindows()
    / {8 `! z4 i  W" {' Q; J  kpar(mfrow=c(2,2))
    . `! m2 i/ s# s, O8 y( N# S7 h2 Rplot(lm1,which=c(1:4))    #回归诊断做残差图5 R* T) N0 \( \: t

    4 t) R4 C9 U/ Y+ B, ^: d4 B! u

    0 b7 E: i( W# Y: z/ F3 ^3 e* B3 N) F

    0 |. A' \' x; n- @" e. p##变量处理
    7 Y9 C$ P. x+ J3 g
    , F3 S9 z) O0 G  x2 _
    ! ]* Z6 j) |: J7 G: p  o+ y% S7 z
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    5 Z* D. G& j+ T) g##对容积率的处理  I; ?4 O( e5 I7 m' t2 i. o
    windows()
    3 J" E1 U0 n9 @. T9 Q9 p5 B8 Kn = 43 {1 e; G/ t0 T! z) F0 W
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    , T6 ]0 j( z+ O6 ~9 b$ gtable(ceiling(rong/n))                                                #容积率各分组下的样本数$ }% N! d9 v! d, l; C* o; u
    ronggrp=1*(rong>n)                #进行二分类
    $ K- T8 e/ J! ^* D$ E; H#ronggrp=ceiling(rong/n)       
    4 K" g" @% H) t9 k) [table(ceiling(ronggrp))           #容积率二分类下的样本数
    9 u2 V4 j7 e- t$ m# S) c8 `* Twindows()! ^. l2 @# @2 s; F
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    % f# ~5 Z( Z6 A, G7 bwindows()
    8 j; _4 G5 W" F  apar(mfrow=c(1,2)), {6 g; ~6 s+ p' M. F% `0 t
    boxplot(rong~ring)                #容积率与环线箱型图, i0 i) j) h3 `: J
    boxplot(price~ring)               #房价与环线箱型图 # |; J) N/ r/ }' [8 b
    #加入容积率分组和容积率分组*所在环线交互因子的模型  R9 A/ Q. }: z5 O- t6 }. \& A
    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), c  w: }; g6 Z3 M
    anova(lm2)                #方差分析9 H, r( d- W' k: t) V( b
    summary(lm2)              #模型参数估计等详细结果) R5 ?& R# @' O; ?/ _6 F; N8 g) Y# a/ |  j
    windows()
    4 d/ j6 y. x* N5 f/ A. u& x1 |3 }6 ?par(mfrow=c(2,2))$ O# k0 L" A) C2 m- c! v
    plot(lm1,which=c(1:4))    #回归诊断; n9 v9 q  Q" r% l

    9 J  c: m6 s# z( x/ U$ l9 b

    ) i: x: y9 ~0 L/ }##对小区面积的处理
    ; |0 o, L' a7 \/ E# }: |6 @- g$ H' r' rsummary(area)7 p; w' x' j/ S8 c
    plot(area,price)
    1 t; C- O$ N, j1 P5 Z% o" Y: {: T" twindows()
    9 ?& x# E+ G  F, o8 zn = 1500001 v! Y2 }/ E3 c- C3 j0 l$ J
    boxplot(price~ceiling(area/n))                                                        , X5 l4 W2 T/ B: {
    table(ceiling(area/n))                                                               
    - O) V! K1 A; k- careagrp=1*(area>n)
    ; D) F. E: e$ ?( n* otable(ceiling(areagrp))- S, {6 X5 S* w. X% u
    boxplot(price~ceiling(areagrp))
    0 ?9 s2 |- H8 S; J( y) ?. W#加入小区面积分组的模型
    ! @' S( y: H" W3 W. y& i. `, vlm3=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)- _' a! }( z, s* o6 K& l7 K
    anova(lm3)                #方差分析
    4 \7 N6 d. v2 ?( \7 k$ X4 _) r* d9 Jsummary(lm3)              #模型参数估计等详细结果
    : Z* ?8 I6 t3 I3 U& {& iwindows()
    ) ~" b1 }& M" }, kpar(mfrow=c(2,2))
      h) ~7 E9 i, w$ B; y$ gplot(lm3,which=c(1:4))    #回归诊断
    5 t2 `. a# F2 K# V# P" T
    % d! u6 O5 P- t! i; s0 ~

    " J6 m  B; a6 I, ^. \+ i8 V+ r##变量选择
    & T2 K; J0 @. F! Z0 k
    2 @. j" X! c; K9 l8 j- D) `$ b

    ; q# u  v1 b: o( U9 \1 \##AIC准则下的变量选择5 R) c) k5 |/ |
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    + n5 C  u7 d" usummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节) P- V+ @0 |% O
    ##BIC准则下的变量选择' y# s) d% c7 R0 L$ @
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic6 A4 [( S- |& R2 G/ y9 T8 I- e
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    + p3 X9 E0 O  a1 [1 c: T3 J. i9 q. T2 s. L3 j: d1 X
    3 L. X7 B9 ?4 M6 y
    #选用AIC准则下的模型进行回归诊断
    % P! I# U9 d! W; X' V. Nwindows()5 s- J( ^* z* @9 C( b3 }
    par(mfrow=c(2,2))
    ; S  |- {# ]# ?* K) _  lplot(lm4.aic,which=c(1:4))  
    8 C6 j( S& ?( O6 I5 E5 t
    ! @+ i. d9 a  U4 L% o" n
      K0 T2 s2 F# s

    . l2 n2 H# T7 P- v: Z( S$ J

    7 N) _+ k% f" M: y! S% G##数据变换
    5 W7 X; m6 o1 I% W8 @, X% x5 ~) D. j  {" D, W3 \4 Y6 H

    " A% h6 x& ^4 D#box-cox变换
    ) @! g/ Y9 _+ G# _0 Plibrary(MASS)
    - b4 k4 s, T; Z- a! N1 n4 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))
    & P0 T2 o1 {0 \+ D2 J! WI=which(b$y==max(b$y))  #定位似然函数最大的位置4 V& r* E4 X6 h# Z: f6 G& C5 Y
    lambda = b$x[I] #精确的λ值
    . `0 y3 h* G. N3 P$ A: f#λ接近于0,为模型简洁性,可以直接进行对数变换
    ) |4 M' N# b  Klogprice <- log(price)1 @4 H! o  a$ j4 Z: L1 ]
    hist(logprice)
    5 k6 j! N8 Q, u, |! |% P+ T+ b
    : _. `4 b  J) {/ P* N
    ##最终模型与诊断
    8 U, I# H, {0 n& ]4 K7 j8 p& u* S8 f

    - ]4 U2 @6 z  }0 P/ r) h: plm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)1 F% x  Q- x+ P" N1 a  U
    windows()
    * v) O" U4 O( Vpar(mfrow=c(2,2))2 [; A2 Y6 R/ R: S) c# O
    plot(lm6,which=c(1:4))
    ! w) z0 e& p" U7 y; U7 }; y* ^# Nanova(lm6): z1 N6 K6 b6 m) D6 W3 o1 y+ Z
    summary(lm6)! {3 I3 V% c2 v4 ^+ ]
    " F2 z7 ^1 {" a8 D0 T4 |4 @

    4 {2 k4 X  J( p3 |请关注数学中国网微博和数学中国公众号,联系QQ 32437105607 z! K4 p* d) f7 b" H# e

    8 K: M5 c+ P1 \: ]6 _+ w3 h4 a* D8 [" @' j9 ?: [& S

    & ~* |, W8 m5 J4 ]
      o% I( D+ D1 q9 Q) {
    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的分析没有/ U3 {) }0 G% c) v% R4 D1 ]4 I
      w4 d# q4 o7 u

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    - y4 z8 |; E7 T/ L0 ^8 [1 k) W# e3 k" n- H' U9 v" |

    点评

    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 E) n$ v: }; s/ \' |) H, o
    太好了,又认真的看了一次,发现自已差太多了
    ) }6 Y( q* \4 q, O
    我每天会发一些好资源的$ b4 X6 V# D2 {8 Q( ^/ P
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 ' z+ n- g; v1 M4 M" H, r* u, g# n6 \1 V  Z
    一定会认真的看看,发现这是R的,有python的分析没有
    " A$ @5 o- k( d0 }3 Z7 g
    有啊
    3 e' o* _3 S# o, m4 H3 `
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-8 02:57 , Processed in 0.409507 second(s), 79 queries .

    回顶部