QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    4 e, e+ I6 K9 X. m6 Y2 b3 m

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    . h- X' ~/ P! ]3 h这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    0 l( ~$ H( @/ q- b行描述性统计分析,各连续型变量之间的相关关系如下:- G! Z5 h& T/ O$ e0 n
    . t7 e; |5 \3 u9 ~( ~

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

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

    ' v! k$ I! z- ^4 {! Q' O

    ; n  o2 _' U! E0 O3 ]) M( r
    1 J( A& I8 O- L( w! Q: V; W3 _" Y) R4 |最终模型残差图:/ w7 W9 c8 y2 ]+ \) I" x5 q' P

    ! n/ }  |7 s  E" N6 Y! L
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    6 l2 H( y9 n1 s( C# X. ^& r属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比; T5 i* T- l  B9 L6 ^: V6 l
    属性变量的具体影响在此处分析略去。8 \( h0 B: j9 y1 C" H5 R6 D
    连续型变量的影响主要为:: p. N: C" b9 \7 {
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    ! H  P* K+ v3 G- k# x 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ! b( X8 @& Q, o# G同时,原本为连续型变量的容积率经过离散化变为属性变量后:5 v4 `# ]8 s2 r
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    + Y* J! B% F* d8 @ 容积率与环线之间存在着交互效应。
    6 F  W5 A( M. p( z9 {1 rrm(list=ls())                                                                                #清空当前工作空间" {9 M9 X' ]- s, Z. E- t* C7 @
    setwd("D:/回归分析")
    8 f$ ?& a3 r/ _; c( D8 m8 wa=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    - m' V2 y8 L3 y) |, i: E$ ]/ RView(a)7 f/ d2 r+ R' d3 c/ _) q) o7 c
    attach(a)
    3 `; n+ e7 x3 @8 ^7 R, ]; knames(a)
    8 F- U. j2 C! S' c" j
    ) F- y/ x' I+ ]) f3 d, ^- L4 C7 h
    ' S; u; J. L4 _. L* y( S+ J
    ##描述性统计
    / X2 l9 a/ _3 T! ~5 {9 f/ l; M, l6 I- u" q8 f

    ; d$ g9 V; V# B#未做处理的响应变量分布情况
    $ v& ?7 z8 k+ `- K& T) {par(mfrow=c(1,1))
    % }! n- g& q/ n4 O: s6 h+ Uhist(price)
    . A+ @  z' Y/ _! Osummary(price)        #查看响应变量的描述统计量# p2 B- b& y  D1 F% x3 J" f
    #连续型变量描述性统计) K1 I7 s/ K9 O' \: e
    windows()
    & M0 ~6 l) W4 ^pairs(a[,c(6:10)])    #所有连续型变量间的散点图- ]8 e- E- h+ c  u( ~: U
    par(mfrow=c(2,2))        4 u% x) @9 O4 S7 q6 I2 e6 \
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    % i3 F% E" r0 v5 _; s5 T0 Hplot(lv,price)
    # i* W7 O. {; `7 y7 o5 h/ U3 @plot(area,price)" W) ~" w+ m3 y& [/ s
    plot(ratio,price)
    0 ]+ [0 Z4 b4 \summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ! J+ C0 O* Q! O& ?- }$ }cor(a[,c(6:10)])      #查看连续型变量的相关系数; V, e: J6 D# @/ y
    #属性变量描述性统计
    % q5 p2 Y) k$ b( _& b, ]" e) Bwindows()1 R6 E" O. |* P1 A2 D1 J. r1 d4 Z
    par(mfrow=c(2,3))                        0 V  I% G$ Y) L, D" Q  X
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    * @9 y7 v+ p$ }( wboxplot(price~wuye)                                                                       
    : K, |3 W' D/ ^) H3 `+ Kboxplot(price~fitment)        ; i$ w& W, m' h  D9 ^* k: ~  J
    boxplot(price~ring)       
    # z0 [3 `0 v: v3 ]" mboxplot(price~contype)
    . q: B% T( i0 _: e* a! ~( ^% u; r8 V( {3 |9 [- D6 c9 ?
    - B2 L; u# `4 F6 G) Y5 B

    ) o7 `) p1 U5 B) X" b# `
    : R. ~0 H$ x9 _: N3 k+ Z
    ##模型建立! C0 ~, _/ ]$ o) w
    ; k- B  w% M! P
    0 @2 r. _! \; Y+ b$ q4 |' k
    #在方差分析模型基础上加入连续型变量% ^! J. P8 m+ ^! g' `
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)- z- P1 ]# h4 z! j; `
    anova(lm1)                #方差分析- t9 z3 f. [$ s  C3 K& C$ d
    summary(lm1)              #模型参数估计等详细结果
    3 Q) r. F. {/ a) a0 B, r- kwindows()
    ' `, ]4 w7 I& T1 vpar(mfrow=c(2,2))' ~) u4 K& U& R2 w8 z; O% k
    plot(lm1,which=c(1:4))    #回归诊断做残差图! Z5 q  \0 l' d& f4 q

    1 q" W+ `& }7 b7 s. O* W4 W

    4 R) X2 R4 I: ^9 ~) A  }( K0 Y. Y$ D- X) e- x9 a

    # q6 X7 B! i( K6 a5 U+ D0 q##变量处理7 s7 Q! w- Z# ]0 E5 |6 V4 E* {) |
    - \; o  n8 O$ g$ @) n

    , [7 p1 {7 n. }4 Z9 o; K8 M( X###对不显著的变量采用分组的方式希望能达到显著的效果- s' R. ?  P& j1 S
    ##对容积率的处理4 X6 z! d/ g0 S$ ]
    windows()
    ; y' S0 h; J  |n = 4
    ; c! T7 ^/ V1 s& M+ I2 x( a) R  uboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    . R4 `/ ^, ?& r. e( ytable(ceiling(rong/n))                                                #容积率各分组下的样本数
    0 c: G5 R) p/ ^5 sronggrp=1*(rong>n)                #进行二分类& S7 Q6 X) Y4 F# ]
    #ronggrp=ceiling(rong/n)       
    - ]/ o  y9 J6 L$ otable(ceiling(ronggrp))           #容积率二分类下的样本数) k1 o" k% Y/ Z2 v% [, B; ?
    windows()* `' ^/ @3 X+ _. Y! H
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    0 c8 G8 Z/ h8 @$ ?windows()
    7 R1 ?& o- e' s/ P% v; _par(mfrow=c(1,2))+ F6 t0 W+ s, [" i
    boxplot(rong~ring)                #容积率与环线箱型图
    5 |$ `( {4 o$ R! {boxplot(price~ring)               #房价与环线箱型图
    % J1 e7 g4 U  |; x& Z+ Z" W#加入容积率分组和容积率分组*所在环线交互因子的模型
    6 N! W/ b5 M* ^2 O* tlm2=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)
    9 _5 L" c& U& {+ Sanova(lm2)                #方差分析& f  B1 X2 m1 Z6 E6 k. b/ h
    summary(lm2)              #模型参数估计等详细结果
    9 |1 B7 w% r! y' Y+ swindows()3 P: `) }' a9 [& ^8 |
    par(mfrow=c(2,2))
    ( u9 r  M0 ]6 K$ a5 _; j8 ^' N6 V1 s  [plot(lm1,which=c(1:4))    #回归诊断9 i' K5 h2 [8 g! H' c* o, m" ^
    . u, X5 o0 o5 ~

    ' l% V0 e6 A) E! t; S% g4 S( {##对小区面积的处理
    ' S5 ^+ `" g4 I. Gsummary(area)9 I  n+ f& c! {* O8 h  l+ ^9 q2 S
    plot(area,price)9 _- u  ~$ W& H% v3 t6 u
    windows()# v+ \3 D6 c, n  N9 U7 A
    n = 150000; X- v' k, s3 {
    boxplot(price~ceiling(area/n))                                                       
    ; S+ S; _7 l& {+ Ktable(ceiling(area/n))                                                                : ?* Z: U  p! C6 |% m& ~- E1 x
    areagrp=1*(area>n)6 C( e" \; y# ^# G+ h
    table(ceiling(areagrp))
    $ ~( M- y" A$ H. o$ w; N3 E  `boxplot(price~ceiling(areagrp))5 h$ ?( @. [4 `+ }
    #加入小区面积分组的模型
    + w) D. Y1 @! S3 t/ ~. w  f- o2 m! Jlm3=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)
    & n, s# f) ^) X. l! [anova(lm3)                #方差分析1 I1 M$ p6 {$ A/ C
    summary(lm3)              #模型参数估计等详细结果
    * l* j, Q, _4 w) U) jwindows()
    + v3 B. u& E: T$ ~# ~$ A6 ^par(mfrow=c(2,2))6 i! M7 ?& [/ h; |1 i+ j) U
    plot(lm3,which=c(1:4))    #回归诊断
    3 j  ~% `# p7 `7 M4 w) N
    ' Y3 M- r7 L* d/ \

    % w& B  g" T+ }- @  G, r9 `) d##变量选择
    / s+ k% S1 I' B- y6 W
    ; l* B" X7 M5 s" I& B, T9 I
    9 w; b- N5 K8 |' `
    ##AIC准则下的变量选择/ o( n( ?+ |7 v1 g/ {9 M
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic  W/ V' P* O8 r- U
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节# x6 j( C8 y. Y; n! p
    ##BIC准则下的变量选择. u: I4 h% f, ?7 E
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    - D- D% T8 C0 f3 o' _summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    + S) |) t0 D/ @) u3 N* x' o( O) p6 i5 `4 z8 U) A) G
    , s9 p6 b/ D# d  T
    #选用AIC准则下的模型进行回归诊断* e% q2 u7 w  R
    windows()
    & c/ i8 `* Y+ r9 a- x4 b( Mpar(mfrow=c(2,2))& w& u! y: v$ G# ?0 d' D3 b7 l
    plot(lm4.aic,which=c(1:4))  . s. p, H! X. K* H9 ~' Z5 X; |

    ' L6 Z8 b, c# d$ J" U2 \
    / l+ x) }$ |- b8 W7 i2 E. ]

    ; s5 \! c% A  ^, q# V8 J5 S
    $ S, P' T) d3 v, M5 G
    ##数据变换
    1 o0 e1 C/ M8 R) t
    4 a# Z9 u0 J$ ]

    ' p" X9 q3 v; z6 W3 X* L! I#box-cox变换
    ) I3 S) I5 ]/ B' o0 hlibrary(MASS)
    + r& `( M% B, T5 T% w0 rb=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))
    ' v$ K3 B9 ^% XI=which(b$y==max(b$y))  #定位似然函数最大的位置
    " p: |4 J9 ^0 _/ k- q# rlambda = b$x[I] #精确的λ值1 V+ G  H/ G. R! F4 ?. A6 T
    #λ接近于0,为模型简洁性,可以直接进行对数变换. N1 g; L5 }% }
    logprice <- log(price)( e' G* l, W) P3 l
    hist(logprice)9 u9 @6 ^* I! i9 ~0 Q# f
    5 Q" J% ^* G! h+ ^' q, d& E9 m8 O
    7 l# ^& ?1 o- ^4 S$ g
    ##最终模型与诊断  T) n2 B9 x0 M. O1 a

    % M2 W0 G- b# I  t: O+ x
    6 @, X" M! S9 ~1 L0 f3 }
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    : v1 X& ~% I4 F3 P* @windows()  H' F' Y5 v+ B  ^3 y" @' p/ C
    par(mfrow=c(2,2))0 }& B0 q) r7 @0 w
    plot(lm6,which=c(1:4))
    . G6 j8 B5 c1 u3 ?5 j- V6 Danova(lm6)8 W& p- X/ L+ m9 _
    summary(lm6)) C& ~! L3 C( T' `& D( G1 c
    - L5 H3 F7 d6 k! `
    " ]* G; |  ?. i
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    5 s* A4 L0 B7 h! n5 a& t
    " ~. g( B1 e0 s$ n- V" N

    5 j# b6 M/ Q. E: A
    ) t8 K( t8 u0 X3 m+ ^8 a  B* d" U$ \: f/ C* {5 d
    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的分析没有9 H9 J( B1 T4 Y$ t# L' D$ r
    ; o& z  r5 N+ ~* q' U  m0 |

    点评

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

    太好了,又认真的看了一次,发现自已差太多了$ X& n# W2 a' R: [6 i4 q
    / r) N2 N: e- w- m# 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
      i% w8 `: _5 i6 f  Q' n太好了,又认真的看了一次,发现自已差太多了
    ) W; b# O# E' i' g7 J4 N
    我每天会发一些好资源的
    * [# V! Q3 _& H' ]
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    ( I, h6 [2 P% e$ p一定会认真的看看,发现这是R的,有python的分析没有
    $ \4 t- N( M, R& m8 b% e
    有啊. T9 r0 i: w# {5 T% B! b  T# q  W2 o+ Y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 14:16 , Processed in 0.512283 second(s), 79 queries .

    回顶部