QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析& O8 N* j8 t7 x5 _  i. x  v0 E9 B

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    5 k' v0 j6 w7 Y$ {; {0 [' B3 t这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ! c$ r7 L) d8 v* D# [9 _) y' p. v) R行描述性统计分析,各连续型变量之间的相关关系如下:
    + R% ^( \, ?+ r2 z
    8 n9 {6 @- P; y9 ^. P, y

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

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

    ' ?. b+ {' E+ u) C  g. x: e

    ' V+ F) b1 Y; M; `1 i9 T1 O% @2 w' o8 X  ?% g' \1 K3 I/ @4 Z
    最终模型残差图:3 Z7 E$ p; g( B' Q' G
    2 Z* O6 Z$ C  u; Q
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    8 m0 e* r, N3 h& @: f4 U) E属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
      q. Z' v+ T# x属性变量的具体影响在此处分析略去。
    ' K( d$ I8 L* c- }0 `3 |# q3 f连续型变量的影响主要为:
    * C0 A4 s' |" w' w! [1 x. U& s/ C9 u 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;. M+ s5 H: m. E- R0 A, l. X
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    " ?1 M* i+ _0 F# d$ R1 c同时,原本为连续型变量的容积率经过离散化变为属性变量后:0 B, R2 ^3 E5 Y! Q
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ! N) U% p, |' }, E 容积率与环线之间存在着交互效应。; e) |) v  a! r7 h( L+ G' T
    rm(list=ls())                                                                                #清空当前工作空间4 I/ w/ ~/ d6 l& O
    setwd("D:/回归分析")( H0 W7 Q) Q/ \  B  ?. Q
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a3 U2 G8 z/ B( F0 b
    View(a): l9 x0 U0 y# x, V
    attach(a)! O$ e7 h! [  [' f+ r4 q$ p: m0 [
    names(a)7 H) {" V9 b) p. t6 G9 _" X- X
    * P, [1 T3 l) \8 P; s+ Y  K

    % w8 B: m/ Y" i+ P( P; N/ x) `" s7 d##描述性统计
    , {4 `; s% }6 U9 n1 D! t/ y
    + a4 k/ v5 v6 X, Z  ^
    3 I2 @! F: y9 x& W) A, f0 \
    #未做处理的响应变量分布情况8 ]' i7 e) w8 b! D4 p0 J, U
    par(mfrow=c(1,1))
    ( H1 Q' W0 p' A5 Yhist(price)
    & a( @0 R, C. b' l, t: \) L( qsummary(price)        #查看响应变量的描述统计量
    + |# [5 p3 T6 Z1 m. k! O# i: O#连续型变量描述性统计
    * U% }5 l# [0 s5 r) O8 zwindows()
      F; @8 w' Q" W9 w% s' Q* v( q! gpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    0 A8 j0 `& b( g6 t# vpar(mfrow=c(2,2))        ' b+ ]& `( `9 M6 x% n
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    ' h( A! [; ^+ ~7 l9 Cplot(lv,price)
    % J' ?4 o3 s  C/ ~" O: jplot(area,price)' T) g) p+ B; A- }- h6 H4 U
    plot(ratio,price)
    8 h5 Y  k- N7 I: Hsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    4 [& M) L, C( c1 e# [cor(a[,c(6:10)])      #查看连续型变量的相关系数
    ( d$ D" h/ S7 B#属性变量描述性统计4 h& a9 u- o) \4 Z  ^3 [( p1 A
    windows()
    & S( D/ Y  T+ zpar(mfrow=c(2,3))                        ' G' l/ n% i! H
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    4 f/ W9 R) y. ?5 `6 Xboxplot(price~wuye)                                                                        ( E3 N' L- h" f  D- w
    boxplot(price~fitment)       
    : m  U, |* _) M5 i, r5 |% h1 Wboxplot(price~ring)       
    ) ~8 W) K' S1 n3 kboxplot(price~contype)! b7 G+ G, E% a$ }5 u# g; j
    . n" `, G) K% U; Q
    * Z% {* ~; R! N' I1 y$ I. d; u
    , `* k' u! i8 U

    7 Z2 p2 l3 w! `/ q/ k##模型建立9 }0 S2 Z4 X2 s1 [
    % j% [/ p0 U! L' r, \  i8 y$ P
    : n0 U5 o% S. P3 X) u( a7 N  O9 Z( Z
    #在方差分析模型基础上加入连续型变量! C% y3 C2 Z; s
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    + p) I4 \3 a7 q0 uanova(lm1)                #方差分析& P5 b3 O$ |+ Y% X# h
    summary(lm1)              #模型参数估计等详细结果# g$ O) c, \+ J0 N
    windows()
    8 N- D. e, v* D2 O7 p. k9 dpar(mfrow=c(2,2))
    5 e2 ^# f7 v; R  A4 q5 A$ T  [plot(lm1,which=c(1:4))    #回归诊断做残差图! q5 L1 O# f* V: t. j* T9 ~/ W4 v
    ' ^  j0 \! ]8 T2 N* e+ k
    + C7 d. X, @. I. w# T

    * }; I8 K: b8 \/ h8 r, R8 \

    5 k9 R: H7 D8 a" n1 W; ]6 q- z##变量处理9 X! X7 T2 `; g* H! {7 G; d% X
    2 \% h6 s7 z' l; m+ A6 F! T2 I0 z8 O
    - f4 L$ v1 U4 w+ z; c; ?
    ###对不显著的变量采用分组的方式希望能达到显著的效果: Z, N; V8 s# n1 U/ f6 \
    ##对容积率的处理
    & @0 L( j* Q5 l, f8 F* jwindows(), m+ Z2 B) N, }8 J
    n = 4
    / l% ~) P) j' R% p5 Q: J9 G  Hboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    / B; [+ n$ Z+ Ktable(ceiling(rong/n))                                                #容积率各分组下的样本数
    ) w( X4 I- H( u% W7 G7 |5 Qronggrp=1*(rong>n)                #进行二分类( F& v5 r, O; v3 d3 V7 `7 @
    #ronggrp=ceiling(rong/n)       
    ) ?7 D/ M# z. \table(ceiling(ronggrp))           #容积率二分类下的样本数5 r2 j+ k3 Y) z) D  j
    windows()$ t: K  B  Q; a( {9 @# c: w) x
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图6 v- K( k3 `4 D
    windows()7 h* M3 W, F4 g% f- E/ c
    par(mfrow=c(1,2))
    # {, J5 O7 F3 _* uboxplot(rong~ring)                #容积率与环线箱型图8 f/ S. e1 C; y: x3 E  |
    boxplot(price~ring)               #房价与环线箱型图
    4 `& K+ R& K& Q+ s, t  b#加入容积率分组和容积率分组*所在环线交互因子的模型5 U7 j9 [9 P- n5 I9 v: N9 \- a- K
    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)
    : x' ?  Q' O/ n1 Zanova(lm2)                #方差分析
    $ [( {1 Z. @- @$ G7 I! a! w# d8 |3 bsummary(lm2)              #模型参数估计等详细结果
    6 m3 h' w2 A0 |3 p: [! Ewindows()
    ( C; v4 C& p& Npar(mfrow=c(2,2))
    ) [7 H- j* B' V3 r: y2 Xplot(lm1,which=c(1:4))    #回归诊断
    + W" k' w" h- I5 T1 X8 H% z, }9 u2 s, y3 n

    - p, F9 g5 ]1 z1 P0 Q' N' x##对小区面积的处理4 c2 I% O( ^# Y
    summary(area)
      B. B; p+ @+ d3 ~plot(area,price)
    # k5 T+ Q* F# @3 i# rwindows(): z9 d2 y+ X% f  Z, ~# y
    n = 150000
    $ z0 a' b8 P. @2 |boxplot(price~ceiling(area/n))                                                        / ~$ j! t- N# A
    table(ceiling(area/n))                                                               
    / J( m! l( k5 M& j9 X, D9 B8 Wareagrp=1*(area>n)& H2 {( u' o' a$ }* N) r6 U
    table(ceiling(areagrp))
    7 ^: _: V9 Y4 ~# h" Lboxplot(price~ceiling(areagrp))4 b* X  z9 z2 J% t: X) H
    #加入小区面积分组的模型9 s& g8 y3 @4 `% h7 I. N
    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)
    ' T  m* k+ T/ G( ranova(lm3)                #方差分析
    ( d3 G/ d) S8 d6 I( \4 B" ~summary(lm3)              #模型参数估计等详细结果
    " f' ^7 _; H, D& x8 _4 ^2 w; P- Ywindows()8 O( n' }1 J. ]. R# p
    par(mfrow=c(2,2))
    1 e7 _/ R% k1 W/ E+ Dplot(lm3,which=c(1:4))    #回归诊断# e* ^, N, X2 Q% N" i: W3 T

    5 e& `! G; K* H7 O) Y$ A

    ) s0 y' l$ W5 M0 b$ _##变量选择
    . a' u) M% U# D6 \3 f/ k8 \
    ! ~7 |9 c9 o  g3 q' J' p4 C
    8 I3 ~* Y8 I8 c
    ##AIC准则下的变量选择
    9 t$ m" B! o8 P* o& s  q& Olm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    1 R; Q2 e8 A! c! P8 |4 @& r% Tsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    1 c* u4 e2 W( r# n) ?##BIC准则下的变量选择
    2 c3 x8 C# ~0 m5 clm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    % d/ B( }1 ]1 msummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    % C! Q9 |, U: R) _2 q4 H8 d9 u/ C& j) g2 z$ |6 F3 A" {6 H9 O

    ( Q, N# j- U, f. G: E#选用AIC准则下的模型进行回归诊断
    . T. M9 y' T! m/ }- cwindows()
    " U. y# n+ G$ E! h, w. ^8 ?) Jpar(mfrow=c(2,2))
    ! `2 Q/ ]$ n" fplot(lm4.aic,which=c(1:4))  
    3 Z7 `$ h) P0 p; S- O; G; }7 K6 Q$ ]1 C- K1 L
    . g5 {4 b2 X, M/ M" R
    & c* K0 i) ^! j

    ) |6 f& H0 E# S( r; i##数据变换
    1 w" O# V4 ?1 @! J+ [0 \& ^# j4 s5 ?& O" F3 h: ~8 U

    7 q! g, x/ a4 N& q#box-cox变换
    ' p! K9 f  d- q8 s( i7 _; u) elibrary(MASS)
    * ^' m1 t# e- ^  _" \* zb=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))4 i0 R) W! q. ?* g$ v- R" o
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    ( |) x7 R& h2 elambda = b$x[I] #精确的λ值
    % c  f0 q+ M' n) Z4 H; o#λ接近于0,为模型简洁性,可以直接进行对数变换4 r6 b& u4 V) R+ X
    logprice <- log(price)
    # s  C7 g6 o( V& c1 N/ phist(logprice)
      w% g' s% k+ H
    , S" ]) M' ^2 r9 h1 c$ j

    : Q$ H; M; X7 ~! b* t##最终模型与诊断+ e4 [, r) O# O1 A) N8 X+ f% t

    $ \0 F- c5 G/ k- `4 I
    - ], R4 G9 H2 f& [" [% z
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    + `: I( z& l! S5 Bwindows()( H3 d5 }4 ]2 p5 E% v, Z( c- q: }
    par(mfrow=c(2,2))
    3 ^: T, ?5 e# }3 Tplot(lm6,which=c(1:4))
    % A3 l. t5 X3 ~! v4 panova(lm6)) d  ?6 _' C/ C: O3 B% A
    summary(lm6)- \! T/ ]% N5 \
    % j( U' }6 H& g5 ~0 W$ K& w
    8 R9 A1 u0 w2 a5 c* d
    请关注数学中国网微博和数学中国公众号,联系QQ 32437105600 ]" }" y1 O5 L& b0 v

    8 w  U! N% c# G4 V- P
    : j2 d! {. {* Q2 z& Y6 m$ F6 E
    4 o3 W4 F0 r* A  w% {* e% _. p1 ]9 E- d1 ^+ S0 Q2 C4 q, b' u
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    . \0 c+ H8 P5 t' {0 ~) k1 m6 I+ X7 N8 w5 Q1 l. i1 S

    点评

    1047521767  有啊  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    无聊
    2022-2-19 17:40
  • 签到天数: 30 天

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了: |5 p& z# S% @; P4 H
    5 s& L9 t- I# \

    点评

    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 u4 n8 _% B, c' J' ~太好了,又认真的看了一次,发现自已差太多了

    4 ^: x3 D+ i8 K0 r# E我每天会发一些好资源的1 P+ r# z  c. j. X$ R( C/ q* y0 V
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    " ?6 f! k, |+ o7 o一定会认真的看看,发现这是R的,有python的分析没有
    9 H' _1 }; ~  I% i' Q  }1 K
    有啊& R! D9 D( t5 @9 E4 G
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 07:10 , Processed in 0.391996 second(s), 79 queries .

    回顶部