QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ; D' i4 C% d* ?6 n4 u3 D: S

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
      Z" l# [( }# ?, H# q% a0 |这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ) R" a' i4 y3 V& B/ k0 Y! @
    行描述性统计分析,各连续型变量之间的相关关系如下:5 _. V, @. e. X. C
    4 M" X8 N% f0 I

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

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


    4 \/ A8 r1 z9 ^* M" r
    8 `) _4 _) G1 J; G* v% p
    * z" R2 y9 {1 e1 K" R+ {最终模型残差图:3 o! z! V* Q( D$ |7 J* J9 M# x
    + ?2 l* K. C+ ?( ~3 O- b' U1 _
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    / w4 A* }5 \  M1 H属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    2 A, |$ D9 X1 W+ N& h属性变量的具体影响在此处分析略去。
    2 |( y! o' R! P( C连续型变量的影响主要为:) Q: p5 \+ H' n' g4 E) r5 U
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;, s- e' ^( y( Q) O" V9 O
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;* e( u; N& `7 S, I9 J( h5 h
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    5 D  K. X3 j$ Y# l# x' Q, ?& A 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;5 |; U% o/ K- z
     容积率与环线之间存在着交互效应。
    6 c) Z7 B/ L1 X$ L+ Y" _; }rm(list=ls())                                                                                #清空当前工作空间: G: W* M7 E1 d; b8 v: [
    setwd("D:/回归分析")
    1 P0 ]/ f7 v+ E) j2 U. }a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a) b, n, k! |' i1 D" j/ |+ G! x% i
    View(a)& W% n( }' b0 P' u, w3 o( v4 p
    attach(a)9 r  _, q; @# p+ D+ F1 X( g5 `& r
    names(a)
    % s5 ~+ f6 }+ f, Q0 N* R8 g( j/ w

    4 Y+ @& @# n+ t# L! R( @1 }" P##描述性统计
    / G0 I$ ?, I% N5 |+ F3 P1 z# U7 w% J& o; |6 @; h5 @

    ; ~7 ], Q# K4 e0 I' z#未做处理的响应变量分布情况; e( V6 W. R  X+ J
    par(mfrow=c(1,1))
    / N- u# @* S9 e' \  shist(price)8 q' U/ d0 L2 d9 }
    summary(price)        #查看响应变量的描述统计量
    5 b) H: }' j& G) j#连续型变量描述性统计
    6 @$ f( |( L+ [: M$ }windows()0 y0 e8 g: Q! `  D; m0 i8 k
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    1 s  H1 G: P1 e! m, {  Epar(mfrow=c(2,2))       
    ) N) l  ]3 @! S* G+ a2 k4 [plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    6 l6 s" m. }2 U9 Q, o9 Wplot(lv,price)+ h6 V7 r9 w9 k9 I. R0 _
    plot(area,price)- w- S' x1 \; L; t
    plot(ratio,price)
    ; |1 b  n+ T1 i( N6 psummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    / f( z: K0 O" c# v5 ]; ncor(a[,c(6:10)])      #查看连续型变量的相关系数2 |" m* f/ ^- k
    #属性变量描述性统计
    9 {- S9 r* s# r* J' uwindows()5 z/ Q1 k8 M1 s- [
    par(mfrow=c(2,3))                        8 N8 D& c$ ^% V, H1 G6 U- x
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图2 G- ]% x8 z' E8 K+ ?* k
    boxplot(price~wuye)                                                                        9 O# t/ y: k# U6 W
    boxplot(price~fitment)       
    , U* s* {' M; r6 N* w, q6 dboxplot(price~ring)        * f' D# h& o1 r" _& W# q
    boxplot(price~contype)- \( h& U9 a- K! C' o1 x
    ; L6 k' x: M- b! r& d+ n* i8 q& P
    # e* u3 l+ d+ g5 s+ M' t( p

    2 \2 h1 T5 Y. l
    , |( C- D' X) P0 j" N
    ##模型建立
    : X" x7 Q. J1 w0 R( p& [+ w/ n
    # T. _/ m9 v8 s+ d6 H! T

    ! c; [3 _  c6 N#在方差分析模型基础上加入连续型变量
    7 x; a  ?) h6 i1 Y: r- ]" h: Vlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)2 v, A2 e$ l! ^! L- L
    anova(lm1)                #方差分析
    " ]2 x. q% i) ?0 z" S3 |$ `' l3 L3 T) \; I" _summary(lm1)              #模型参数估计等详细结果
    - {# H" S4 [4 m- s1 A* uwindows()
    . E/ D' I8 d5 rpar(mfrow=c(2,2))
    ! K+ J* V+ j. c/ Q( W2 H7 L3 Pplot(lm1,which=c(1:4))    #回归诊断做残差图
    ! U& @9 S& v) d, y  _3 f# y- \% s, u5 s/ H+ M7 p
    " {7 P' h6 T- K2 l& b
    " e+ I7 V' D- Q( {
    4 W) b. ]) J/ Y* D$ L# \0 p7 u
    ##变量处理* W5 [7 R0 V9 J: x& \) H8 Z7 G
    9 ~' t( I- t* ~& X6 l2 }

    5 ^& I, ?1 p5 E5 v###对不显著的变量采用分组的方式希望能达到显著的效果
    & ^0 n% I, r/ ?! \" }" V' m! G6 ]##对容积率的处理/ J* |6 Y3 Y/ [4 I
    windows()
    / R/ P) U3 O  Z0 v3 x9 Qn = 4
    7 X. U; b+ e' ]boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        ' f% g% `3 j  s* d
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    8 Z1 C0 O) Z7 ~" a7 C& y1 J8 M3 sronggrp=1*(rong>n)                #进行二分类
    # G3 I  B' ]1 y( u+ x. V* d+ ^, g#ronggrp=ceiling(rong/n)        ; b, N- P7 X- G  z& r. j' A. t1 Q+ E
    table(ceiling(ronggrp))           #容积率二分类下的样本数" g. n7 G0 v: A1 |3 s$ S+ I7 ?
    windows()
    5 w! a, |& t2 Z9 w: l  rboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    " M- @3 j  L0 W4 c$ ewindows()- ~0 Z, F2 U8 k7 }6 z# D0 x% P
    par(mfrow=c(1,2))
    0 b) b6 O1 J& }. L, tboxplot(rong~ring)                #容积率与环线箱型图
    1 `, ?6 W  l, p& `  a& Tboxplot(price~ring)               #房价与环线箱型图 9 `' |9 D/ u3 q% ~. E( h( H, n. R- F% i
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    - [# P% ~3 m- B; F* X3 p" Ilm2=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)# Y7 M+ E+ x. A0 Q/ h! R& H
    anova(lm2)                #方差分析! |3 x* ~1 q7 x6 Z0 j3 W
    summary(lm2)              #模型参数估计等详细结果* C! @( w5 z1 X* Q0 {0 j# G. h
    windows()* t1 n7 K" c; K9 i
    par(mfrow=c(2,2))9 |* R$ e$ Y" g5 p
    plot(lm1,which=c(1:4))    #回归诊断
    5 w, J( p1 ]( R: @; f+ _: A5 K  `; G1 i& ]* ]* Q

      g% q: T9 A; Z% R  s7 W##对小区面积的处理3 `$ e& ?! u* S# U9 x
    summary(area)
    5 I8 m+ ^9 B0 \, a& o5 q1 tplot(area,price): O* U  J( D$ ~
    windows(); j/ e; }" U! j" }( ]: u
    n = 150000
    * ~0 |3 H, i$ a% I- {& L; i; Hboxplot(price~ceiling(area/n))                                                        4 p4 a( O. `. r/ e0 M( g
    table(ceiling(area/n))                                                                7 D1 }+ H( g  P  r6 B4 e+ ~
    areagrp=1*(area>n)
    8 I4 ^7 S) K0 ~2 l' j/ i+ v6 `table(ceiling(areagrp))" |1 N$ Z; U, g' j2 U
    boxplot(price~ceiling(areagrp))+ `% @0 H7 U- r% i$ t
    #加入小区面积分组的模型- {- v* ~, }! K, d1 H
    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)5 P. j. A  {2 Q" e9 V$ g0 V4 Z! S
    anova(lm3)                #方差分析/ c8 B2 [. ?  [9 \
    summary(lm3)              #模型参数估计等详细结果
    5 ^6 y/ \* K3 k5 F! M8 Rwindows()2 s9 C! d, O6 G: {! ^
    par(mfrow=c(2,2))
    2 e" Q# D  _: x: t6 H% z) ~plot(lm3,which=c(1:4))    #回归诊断! t: H5 y3 w% B) g8 s

    ( E: u- r6 Y3 B4 W' V& Q
    6 B! P  d5 f. Y
    ##变量选择% |' P2 E' V1 I: H: h

    2 g! c6 H' s, W4 ]) j5 Z# A6 m( y
    % C; v$ E) G6 r! N! n+ p+ G/ t6 l
    ##AIC准则下的变量选择
    8 y) u2 q. @4 z" S3 [" l" @3 }lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    4 k$ B8 f, r, L3 I* }$ ?( [summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    - V8 v/ t/ f, g+ }- t& j3 l& O% j##BIC准则下的变量选择
    ! L. W$ F' l) [0 elm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic% Z9 x0 t% C7 |! |) O, h
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    # F" A$ k- D4 V- X. ?" R7 A; S
      n; ?+ n! n0 r

    & d$ O9 V0 Z; t8 S#选用AIC准则下的模型进行回归诊断& j0 D7 {5 E7 f( ?3 Z
    windows()* E, q& n3 x( ?4 o3 L
    par(mfrow=c(2,2))
    3 N% \2 X6 _5 ^0 r7 q# Pplot(lm4.aic,which=c(1:4))  
    ( l8 R* N/ {) T4 p/ D: q$ }
    ( T6 F- H, i5 s0 C
    * Z% H( l: H7 V

    ' G: V3 A% {2 Y" z2 s" t
      S' Z1 V" i( L% y; v, n) ]
    ##数据变换1 H* S# H; d5 P

    3 Z% ^+ ^6 r' M9 b; N/ I
    ) u9 T4 U+ [# F) O) G9 n* A
    #box-cox变换2 Y% U3 b0 w# J8 a/ N( V
    library(MASS)' {( V+ b% ^) X4 ^
    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))
    ( ^* k. O# x7 l+ k% m" e1 ]. CI=which(b$y==max(b$y))  #定位似然函数最大的位置
    9 u, n1 R3 f: o. `9 r, jlambda = b$x[I] #精确的λ值& _5 j* \; U2 ?, r5 u/ b" B& y
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    . e3 f' v) A/ Flogprice <- log(price)0 ?2 P9 x" d: o* l2 S9 \5 x3 z$ Z
    hist(logprice)
    & ?% B& M' c' n, Q) j" H* M7 a: Z
    9 \! h# Z' P9 o; L; m( B
      t$ i* b4 C. h! Z# q8 ?5 {
    ##最终模型与诊断
    ( V. I& m1 r- b% @; p, f) T# y
    0 N4 d6 A3 L  d4 L. U
    ) E+ f. H( _2 @, Z# x( b
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)3 }, o8 o8 b: M- W: w
    windows()
    ( H% [7 R5 D) i! n7 \6 d! ?par(mfrow=c(2,2))8 u! P+ A! H8 A0 S+ c; h
    plot(lm6,which=c(1:4))
    - C$ q  e& x0 Y4 |anova(lm6)
    2 K9 }# q4 v0 fsummary(lm6)
    + A6 l/ h* [" f$ ~0 j
    ; t2 K6 n: V  O6 N* w; i: \; f+ E0 B( ?
    请关注数学中国网微博和数学中国公众号,联系QQ 32437105600 h3 s' ?) E+ P4 p7 n; Q

    ) B5 O% z) ^  j+ l1 Q3 ?% o1 v5 h& |, G: K; k7 g
    8 ?0 D2 C! @' u" c, I) n

    1 G7 I* e0 ~" j8 K) ~8 |
    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的分析没有! i# b. V, s! W) j% a
    1 O" l' c' ?; H( D! |

    点评

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

    太好了,又认真的看了一次,发现自已差太多了7 {  U9 G: ^% S% R: f: [6 C4 [  C
    7 U; ?0 T" }% O# \, ~* N5 t

    点评

    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 \+ ?( W/ i/ y, z# k太好了,又认真的看了一次,发现自已差太多了
    $ I, k  L  Q: U8 L* k) J
    我每天会发一些好资源的
    # J5 `" a9 b9 C; d2 u$ z$ z
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    # `- z# c4 a' \+ G一定会认真的看看,发现这是R的,有python的分析没有
    ) t& w8 o  S1 I6 N4 S, Y# f
    有啊
    * o! H9 E6 q9 }5 }
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-4 08:08 , Processed in 0.584957 second(s), 82 queries .

    回顶部