QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    $ @/ `  W9 M7 e* L8 M$ [. t2 v& @5 `7 M

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。6 j8 j- p! }* k: f) A% E6 C
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    $ S. ~) H# e9 e) I! N+ F  A
    行描述性统计分析,各连续型变量之间的相关关系如下:
    $ ^$ ]$ E; f# C$ I( z0 E# S1 C0 [, N2 y* F* j( g

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

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


    9 z' U. G6 o' a% E; L. z4 p
    0 @, U# c7 j8 R6 z
    % p. @/ @5 o8 k, \7 e3 A" c  |最终模型残差图:# l' B$ \# s, h* k  ~9 J

    - I% V. F4 G0 Y/ l, v
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    ( V8 {8 Z% V& L2 g3 [属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    : L- m+ }- L. ]3 i8 B% z& Q8 \属性变量的具体影响在此处分析略去。
    6 B5 [0 Q$ ?7 r! \. a: X$ h连续型变量的影响主要为:8 Y0 N2 C0 ]' U: Z
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
      S0 o* O. j0 F% A 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;5 i( U+ }5 R4 M4 M
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ; F# y6 r6 _% P( Y' h7 @5 J 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    1 `, t+ u2 F; j1 y 容积率与环线之间存在着交互效应。
    # @  f' w/ M* a& W& C- l; Yrm(list=ls())                                                                                #清空当前工作空间  S1 f+ C  ^4 r. C' e
    setwd("D:/回归分析")
      C* n% @: ?: e1 o! P+ Ma=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a& R, C& y; g: }1 i. T2 ?# A
    View(a)0 [" m) a9 }8 R9 _  [5 ?
    attach(a)3 T3 b/ }6 P' P! P% b6 q+ D
    names(a)
    0 J0 a) ^4 A$ K3 `9 }; W+ d2 g. s' ]
    + m' S( g# w6 G( f2 k

    , H& B" k4 x& H##描述性统计
    " X! N% w, [/ ?# |, M& ~; o
      ^1 I5 X; M& k  M6 _
    2 }( a# d/ @/ U& r1 i/ k, F5 M  {
    #未做处理的响应变量分布情况
    - d7 J. t3 x1 ?' \% Q/ ypar(mfrow=c(1,1))
    0 f* s; g; {, M+ T! z. M: Ihist(price)
    0 G3 N: M& d* v9 Y) g1 H! M$ `summary(price)        #查看响应变量的描述统计量
    8 h2 A. }  B( ]9 N& y. t, t#连续型变量描述性统计& Q) j4 I" H' E9 i7 \% u
    windows()
    5 X9 F0 Z  A; p, e6 l) D5 k" f+ Wpairs(a[,c(6:10)])    #所有连续型变量间的散点图; c4 z$ V/ X5 r6 U2 @
    par(mfrow=c(2,2))       
    1 F" b1 L/ d! d# t8 ^0 S' oplot(rong,price)      #每个连续型因变量与响应变量间的散点图  L, v/ {2 `& ^7 L& Z
    plot(lv,price): S; T3 O! C0 ~7 J+ G" ~
    plot(area,price)
    ( i, k0 X: q0 h# U2 g1 J0 Xplot(ratio,price)
    * b6 k( }/ N- y7 Q2 q) e" qsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    7 a# F% S5 ]$ {9 U, |cor(a[,c(6:10)])      #查看连续型变量的相关系数! k5 o2 l* X: |
    #属性变量描述性统计' Y. l" n. k9 X
    windows()
    - A  o3 ~" L% ~; g& N* M6 @par(mfrow=c(2,3))                       
    2 M0 B( d: X/ f' `0 `. F9 Sboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    2 }; J' ~. j  K% a$ M& @- cboxplot(price~wuye)                                                                        , w. p5 J3 y) [" a
    boxplot(price~fitment)       
    - d2 L2 F2 L0 O0 mboxplot(price~ring)        $ P0 b+ k9 u5 C% y8 i
    boxplot(price~contype)
    # t7 L6 L3 b: f/ s
    ! D; R) Q; J5 o2 I4 M  `
    2 k# s+ g, O& p" {3 ]3 d! j

    2 @# p: ?4 m; j

    # p* s* Y3 q: x) f##模型建立5 z6 x! A+ U9 ?! L! `
    3 D  e" c. N/ k% P9 L* r
    7 ]" u: p* S0 e& \3 m( r
    #在方差分析模型基础上加入连续型变量' q( B2 Y/ o0 l$ I
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    4 G- g$ A1 f8 ?0 e) sanova(lm1)                #方差分析1 C7 ~- |1 g& {* x* k
    summary(lm1)              #模型参数估计等详细结果
    6 Z& M4 s0 B4 t5 |: _9 y2 u# ]windows()7 E" l# {9 [7 s4 |6 I2 }& ^4 ~
    par(mfrow=c(2,2))8 {! D  g0 t' D/ n
    plot(lm1,which=c(1:4))    #回归诊断做残差图. q/ P3 z* D7 L) J% S

    9 C, n1 g6 p9 k- n9 O
    ) c0 R$ u6 I; T* f( N; g- s
    : Q' e+ M; q+ ^; v+ Q" m

    4 k, l) o+ t. c. @9 h+ u##变量处理4 t) s  u- l- N% S" `0 _

    , T, q/ k# H( y6 ~: x, T
    0 x/ Z) i$ l' N! n- D" l
    ###对不显著的变量采用分组的方式希望能达到显著的效果) V. I1 r& n  q- A& R) X! L
    ##对容积率的处理' }+ j4 ~* z) S' x3 n
    windows(); V0 n! H! v; y2 j7 z  B
    n = 4
    1 n2 n0 @, N) x$ Nboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    $ M- @/ O! A. J( Z" stable(ceiling(rong/n))                                                #容积率各分组下的样本数  S9 K1 R  p9 W5 t
    ronggrp=1*(rong>n)                #进行二分类  q# A7 e# Z& Y5 o: g! E1 b! B4 D
    #ronggrp=ceiling(rong/n)        & F& g0 ?& s  J' P
    table(ceiling(ronggrp))           #容积率二分类下的样本数% U0 Y% E0 ?1 m5 y; y, A  N
    windows(); a. p! o4 v: v( s. [' {( Z8 }# E
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    $ I- F% L- k2 Wwindows()4 i* i( {0 v6 d$ L! P  |
    par(mfrow=c(1,2))
    ) S8 y+ u) x. p7 ?boxplot(rong~ring)                #容积率与环线箱型图$ m: n! t$ c0 @6 f; w5 d3 S7 a% V! g* ^
    boxplot(price~ring)               #房价与环线箱型图
    # H( M! M  f( i4 m- _! Y6 r" Z0 R#加入容积率分组和容积率分组*所在环线交互因子的模型8 O- p- q; F( l; ^; q  f. R) X
    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)& r% K* Y( y! C
    anova(lm2)                #方差分析3 O& s: v2 D4 p8 e/ r
    summary(lm2)              #模型参数估计等详细结果
    . E7 S: E# p8 gwindows()
    * |/ _0 V# U# q$ b! Ypar(mfrow=c(2,2))
    9 R, F9 t0 y/ |; Z4 `plot(lm1,which=c(1:4))    #回归诊断% O% i7 G. a+ D3 [$ k. j
    6 f# Q$ H) D- p

    ) w' T2 P% q; a" V* q% b2 @: e4 n##对小区面积的处理6 x3 r# b" H2 h' G
    summary(area)4 f% n5 ^5 i0 M
    plot(area,price)& n9 ?6 o; {/ s+ M8 a( b
    windows()
    5 T5 C" C' G1 f* @. xn = 150000$ U2 T& V3 Y) Z; e$ K2 r6 m/ n6 `# e
    boxplot(price~ceiling(area/n))                                                        0 y# U  P9 J) F. W9 g* m
    table(ceiling(area/n))                                                               
    : z+ M: ~$ S5 S( t7 i/ W. {0 z% f! }+ Bareagrp=1*(area>n)
    % H  V* \: v+ ?, ?. f/ ]table(ceiling(areagrp))) `3 Q4 }: f8 q' F
    boxplot(price~ceiling(areagrp)), W- D5 P/ h( v3 P0 }
    #加入小区面积分组的模型/ t% L& V7 p( Y8 U1 U
    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)) D5 w" l8 ]* F2 Q# {
    anova(lm3)                #方差分析
    6 s4 J  G1 k5 T1 ?1 d6 dsummary(lm3)              #模型参数估计等详细结果; m( g( P- j/ t% q* V$ v
    windows()
    6 _6 A! D# _7 r3 H1 Wpar(mfrow=c(2,2))
    0 r( ]- p- [# P) Qplot(lm3,which=c(1:4))    #回归诊断, T8 T6 O; u: W8 G

    ( ~$ z! Y3 Q' W
    / r( Y4 t) R. c1 a, C
    ##变量选择
    6 L3 \1 j. x  K
    5 e; e" m3 @. J. T

    ( n; L$ E! |+ U' h3 Q##AIC准则下的变量选择
    . Z" ?( S2 u; b1 L- Flm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ z# y( }5 l1 _+ K: \; D: m) Ssummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    * g* `8 ]/ M  u##BIC准则下的变量选择
    + _% D3 ~+ H4 U) w4 {( Blm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    9 q) D; p/ |8 l1 g* k, z. ~2 dsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ; Z& [5 u% F; R0 t6 M" f) i# `( _( C( z
    * S; M' w8 L& T
    #选用AIC准则下的模型进行回归诊断& M. L" O5 H; L0 |+ Z# Z
    windows()
    # m" O( ~3 H+ Xpar(mfrow=c(2,2))8 u7 b" I6 o( w; X* a$ L6 D/ W4 c
    plot(lm4.aic,which=c(1:4))  
    & M" u# Y' g5 ^" |, J4 \6 C$ O
    $ @, Z+ H2 Q; p- i$ Z0 K$ K* q8 X
    ( \: _, ?( M- X2 ?6 @5 S
    1 Z& ]% V4 x  @4 W4 e5 V8 {* w
    ; Y1 ?# N, l, J* i9 c6 P5 F
    ##数据变换6 w) w4 R8 U: c, \

    4 J9 k6 e0 U# \2 n
    ; a! a) c' n3 K# B, e; }* H! L! ?5 M
    #box-cox变换+ o. r+ M& D' ]5 F+ E7 w! X
    library(MASS)
      [2 Q; Y1 g  l$ V+ |. `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))
    7 |( w$ p0 |  w6 B" @5 V: z5 |( C7 oI=which(b$y==max(b$y))  #定位似然函数最大的位置
    2 I4 k* F3 b1 G3 `) D2 y5 |1 llambda = b$x[I] #精确的λ值8 k2 P) S* a, p* i" L$ |8 ^
    #λ接近于0,为模型简洁性,可以直接进行对数变换* T: t1 d- ~6 j" _9 T
    logprice <- log(price), J+ ~! J; W9 I- N4 _) U  _
    hist(logprice); ?0 d2 g; q0 s# O
    : W% y3 ?" M0 W6 r1 ]
    6 e, J. X) n* \' O* C
    ##最终模型与诊断
    2 D* |; \; [. P9 N. G, I5 N* U# V, e
    ! G8 X5 f9 z9 V+ G' j
    9 r9 H; m( }) t8 j0 E- s
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)! p( Y6 t8 |, e$ r
    windows()
    / I; W/ W5 [. ypar(mfrow=c(2,2))
    0 x, Z( e* z# kplot(lm6,which=c(1:4))3 e% R- X% @7 J9 o
    anova(lm6)
    6 ~/ X! }$ u# T9 `( Z) |3 c) ssummary(lm6)
    4 U4 M9 p  N. D1 H! f# I6 d5 d% l
    ' M# b: C8 C' J/ ?* k  g. V. H! H7 s- P
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560+ O# h  M; d0 O, u0 r, i- G* z
    5 o7 f: r& Y8 z, p
    9 F; \# t1 F) g/ \& y) N$ g( w

    9 r8 Z, E: o& [8 q6 A  O$ s8 }! A
    / V; k7 Y: p! |' R* F" {
    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的分析没有/ q: z! K+ z( H
    6 @! t' r/ k- v1 N' _

    点评

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

    太好了,又认真的看了一次,发现自已差太多了/ E/ Z+ q3 q! |3 y, c# ?8 U' E
    ! p  h9 _' s$ k6 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 4 E: z% v7 R/ F9 _, s5 i: |3 u
    太好了,又认真的看了一次,发现自已差太多了
    8 e' ?2 o7 w. p' p8 V" [& u, ]9 h7 p
    我每天会发一些好资源的
    % m$ y  p: f, F1 I
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 " P4 U" w7 k' z
    一定会认真的看看,发现这是R的,有python的分析没有

    - j! X! a1 P/ ~6 f5 \" m2 c" ?  S有啊
    0 j6 o" g! |5 J# I; e
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 07:13 , Processed in 2.191474 second(s), 79 queries .

    回顶部