QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    * K6 ^8 l" L0 K$ V. c- P

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。. A* |& y8 L: {; g/ k8 l- W  t- v
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    . w2 N5 M& Q# q3 F3 Q
    行描述性统计分析,各连续型变量之间的相关关系如下:
    7 Y  G! Q' H4 a3 T4 ~/ `9 _" g! ]7 T1 [: o4 ^

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

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

    ; l) v/ F! A% D7 b. u2 D
    0 D4 f$ R1 Z2 j9 N! h3 {( B2 y

    + K: T2 i) U7 [最终模型残差图:$ x* F' ~. ^3 F; u

    4 ?9 O( P* E7 E! y7 k
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    : B" f6 ?. v* h$ M4 n9 |, A属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比( P" V- J2 p/ x4 p* ~
    属性变量的具体影响在此处分析略去。
    ) ]5 p- U6 K/ Z0 }7 `连续型变量的影响主要为:
    : _6 q4 j2 m9 j# @0 I5 _& I1 Q( r 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    7 Y# b6 J* J8 |: B' C 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    $ T  }) f% Y7 r, E1 E同时,原本为连续型变量的容积率经过离散化变为属性变量后:
      K2 j& j2 s# G  m1 f# z- G4 i 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;* h" I( X  x4 g. L
     容积率与环线之间存在着交互效应。: h' @! j" h' ~  l9 R* d; W
    rm(list=ls())                                                                                #清空当前工作空间' c$ M$ u7 ?  B
    setwd("D:/回归分析")6 `& ?5 [" |4 p, q1 k( o
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a+ X! r$ g+ @0 I
    View(a)
    ) Y4 U, h. Q& z- w, X- u! Q7 A2 eattach(a)5 A4 P: q1 F3 u
    names(a)8 t* n  i' _! K1 W" _/ w& u

    % n4 {# b  _5 |7 f" a' d; \
    ' J, {' @' U3 U5 F
    ##描述性统计9 y8 U9 P) i) X! R
      c2 Y# d/ b) w/ R
    * I  Y' _5 u1 E( C9 G: t: e
    #未做处理的响应变量分布情况
    / G) I; N, V1 [. _6 l% t5 Z( qpar(mfrow=c(1,1))
    ' ^2 `7 _4 B8 V1 B8 {hist(price)8 T0 d; l0 M9 C! s
    summary(price)        #查看响应变量的描述统计量
    / W7 F2 ]8 J# M3 }/ w#连续型变量描述性统计
    8 v; b$ |# V, F2 M7 T/ hwindows()( |+ i+ \) }4 v; l6 t* ?& L4 S
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图! z8 c) p' u& g
    par(mfrow=c(2,2))       
    0 H1 w3 T8 o1 O! Y/ U, {+ u# wplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    4 `. b/ \2 C3 m* u: Tplot(lv,price)
    1 z3 @) w5 H; eplot(area,price)
    2 k$ D" N% e6 ~* O0 oplot(ratio,price)
    / u( K$ {% s/ r- Esummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    - J( {* g& p# N% x- vcor(a[,c(6:10)])      #查看连续型变量的相关系数
    " D; A: u7 M9 |0 o& E4 [& n#属性变量描述性统计2 y8 u' d! V  U0 c# M4 T& t5 C
    windows()) S, ~  @# w% y6 i2 f# L; ?
    par(mfrow=c(2,3))                        9 q) f% a1 r9 I+ F6 ]
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    2 {1 M, H$ K% a4 l; _boxplot(price~wuye)                                                                        ; g# Y, w& w: m+ `& c1 \
    boxplot(price~fitment)       
    $ H, ?; b: @( v3 g  ]- b- Fboxplot(price~ring)       
    1 P) ^6 E* s! V" w6 a: Xboxplot(price~contype)
    " G8 [1 j/ Y9 L+ _9 ^9 G8 j& w2 t. {- c" J& l# G: X5 y5 x$ E* u
    ! J' i0 V- Z3 b% T
    , N1 c0 X9 {0 l/ t& Q
    & v( H- m$ _  a: f6 W4 w& m8 I
    ##模型建立
    - S( o0 E. P" D, j$ @  S  L- \4 Z  [1 ^$ ~* q

    ) C8 R2 ?* d5 }6 p#在方差分析模型基础上加入连续型变量
    2 c5 ~  Z3 w) k! O8 ?( J0 @lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    , W) n+ b! _/ i9 M( panova(lm1)                #方差分析
    , G* x7 U0 j, esummary(lm1)              #模型参数估计等详细结果
    * t. T! b6 d" V# Cwindows()! r. x" i' H* j- o1 M, z
    par(mfrow=c(2,2)). C* \0 d$ `0 N4 o
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    0 }9 e- `+ K; i4 S% D: K' ~' l, r4 t2 T' ]( Y0 c* _. j/ o- F

    , @' u: h# v1 {' {  \, \+ W
    ( ?. j  d, O! S
    0 u' h! a" {1 F0 b
    ##变量处理
    9 j; |- \' }1 a8 P+ _+ @/ Y& e: O( E" R* A; x! s" R! A

    + v4 F, `% p2 ~9 T% w4 J/ p###对不显著的变量采用分组的方式希望能达到显著的效果
    ' c% R0 P* |( `* E7 c, J( \9 c##对容积率的处理4 Z2 ^* K2 Z4 w
    windows()) i3 g0 q+ c7 u! P/ e2 R: H. H
    n = 4
    5 L, K9 v& f$ x4 c! Hboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        . s- m5 c2 K) ~1 w! ?
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    & g" }  U# G8 l* i( e7 y0 Kronggrp=1*(rong>n)                #进行二分类3 j- p" S) _8 g/ Z. _5 o% Z
    #ronggrp=ceiling(rong/n)       
    % }# O. g* g, y5 {0 [9 @table(ceiling(ronggrp))           #容积率二分类下的样本数* a. l2 u; J6 A% O
    windows()' U6 |% L, u3 K+ y3 d
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图) Q- Y+ a( }+ Y2 ?! s7 [& F
    windows()7 q4 `" ~% G8 L! t/ o$ d# z3 Y( Q
    par(mfrow=c(1,2))
    6 e5 y, ]/ d% ~  [+ ?+ A* yboxplot(rong~ring)                #容积率与环线箱型图! \2 T7 x9 {. }# I- \4 u
    boxplot(price~ring)               #房价与环线箱型图
    * f! [: T# }% G2 h9 o$ E#加入容积率分组和容积率分组*所在环线交互因子的模型* O2 [  M& ~& C0 _" D# i2 y
    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)5 D" U1 O  F6 h2 g) c
    anova(lm2)                #方差分析% N7 O2 a  K6 ~- c+ S: T
    summary(lm2)              #模型参数估计等详细结果2 p  m! Z5 z/ f2 I
    windows()6 T# p3 `, c8 G) _% o: Y# w" d
    par(mfrow=c(2,2))7 R+ ~+ p8 Q) z3 l/ N6 k: m, e2 B# P
    plot(lm1,which=c(1:4))    #回归诊断5 [. P' z! D/ e3 c/ f- W
    0 ~$ B& Q' u% A3 p$ i& P  V
    4 V# O; D* z8 J7 W" [5 i. {
    ##对小区面积的处理
    ( B4 \3 k+ ~3 |8 ?$ h# Nsummary(area)2 L& `) w+ X; E0 U. U& k3 e
    plot(area,price)
    - y4 N: k. Z; D/ m+ Dwindows()
    7 w  B+ e, ^' Z2 w8 w* qn = 150000( b$ e, [- _; E) @9 p$ H5 t
    boxplot(price~ceiling(area/n))                                                       
    7 W" u: Y8 j" atable(ceiling(area/n))                                                               
    , i' y$ z/ s" _0 }areagrp=1*(area>n)) c- y4 u( ~# B3 }
    table(ceiling(areagrp))
    % Q8 ?( `6 z8 C1 D- rboxplot(price~ceiling(areagrp)): M. H$ @6 ?* R& P$ \% w
    #加入小区面积分组的模型# R: x# J  F) _5 K0 e% T  g1 T
    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)$ D, R; o( V! k
    anova(lm3)                #方差分析
    " {1 D* ?# t% w) `* `' ~summary(lm3)              #模型参数估计等详细结果& L) u* h- d6 z# \& f# o0 Z
    windows()
    1 P1 d6 Z: |' ~par(mfrow=c(2,2))
    , _7 f9 h, _- |. f0 d  o" H) kplot(lm3,which=c(1:4))    #回归诊断+ y% ^4 o& ?2 G7 d2 O

    . d8 s  n" u3 I9 w& w& D' ?

    / M5 v/ k) v: Q+ t3 @##变量选择) q  c7 ^/ o0 K/ m

    2 d! h% X' t, T# d4 O

    8 q9 g1 F8 _3 G7 E2 p##AIC准则下的变量选择
    * n) G" ?% _: B2 t/ ?4 i3 hlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic% F- K' x# I/ i# Z
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节& B3 Q9 z: M  ]: v4 X, @3 B5 F
    ##BIC准则下的变量选择
    2 y9 t' N! q0 t- Hlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic: E$ O8 b' B% Y/ a% l# V% n! Z
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ( ?) z+ a& E. K  a: D2 t9 P( q% B7 O5 c
    0 K$ J' O& ?7 l" G8 x+ Q0 E- f) c
    #选用AIC准则下的模型进行回归诊断* _8 y6 T) ]8 d, h& [! y; {
    windows()- O" A' d  \. k/ Q
    par(mfrow=c(2,2))
    " K4 {) w9 p/ q5 |plot(lm4.aic,which=c(1:4))  
      v2 M$ [' c9 _2 N" j6 _, W% o6 R1 I+ S: @3 y7 W% \3 X
    # \+ ]8 a$ W8 W$ b9 N
    $ n* o) B: e" d4 I9 j7 T
    . ^+ i6 j. K8 R' c4 D
    ##数据变换1 `0 l( G# V8 z
    5 R+ X1 R3 g1 I# ~2 [4 C3 Z
    . l  l$ e0 f/ Q0 _, l8 Y3 `" Y
    #box-cox变换
    6 K8 M+ Z& e* X& n' d- F0 @) nlibrary(MASS)
      u5 P1 r, Q* r  S, J' Pb=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) u9 @: I$ H0 w# t( C
    I=which(b$y==max(b$y))  #定位似然函数最大的位置+ F+ R! j# ^" R+ D
    lambda = b$x[I] #精确的λ值
    6 Y* R5 J. v  Z3 o#λ接近于0,为模型简洁性,可以直接进行对数变换9 C7 X  ~2 @  v, p  L, I
    logprice <- log(price)
    : z5 ]( @6 D: |  Phist(logprice)
    ) A4 @. c4 t. L, }1 d& p8 F! l
    6 D6 t% V: ]& M. A, X. O. Y

      B# \  j3 @) [/ y, v##最终模型与诊断$ H% A' O% W* L! J/ g

    ; h/ r. q; j3 D

    7 n2 Z* ^2 c* F+ r( Slm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)8 P( b' ]6 F7 A; v; \. w6 g/ V
    windows()% G6 Q- @, A% h
    par(mfrow=c(2,2))
    * B2 n1 C3 m+ r" zplot(lm6,which=c(1:4))
    ) F: |% s& q7 b2 E: |anova(lm6)
    # r6 h* y% i" b  h2 Z- H8 w' {" a6 Usummary(lm6)
    6 @6 T6 h# M9 t9 X
    " N! A/ ?7 |& G: A( `" |& w3 _
    * e0 ^" m3 m6 X4 p2 z请关注数学中国网微博和数学中国公众号,联系QQ 32437105603 X4 h" t  }9 S* W6 k1 Q, n! h( ]
    # T5 N) d5 ?+ P4 w/ m

    ! [( F- l# @$ M! L5 W, H1 B7 g
    : A  |  O, `) A
    , [, U- r: E/ d$ W. a
    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的分析没有
    & H7 E4 ^# d  t) n# v# C# n6 S& f% ^

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    0 F! E4 E+ k/ _4 l/ c4 X( b1 Q% @0 b2 Z* F: h9 t8 R0 d

    点评

    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 3 R/ u! X/ P7 ?: c4 O1 M9 ^
    太好了,又认真的看了一次,发现自已差太多了

    9 `; T; f7 G& E& ^* j$ K- }4 c我每天会发一些好资源的0 ?) T) u: j7 s! s$ \% U
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 3 B% F, J) }9 ^  B
    一定会认真的看看,发现这是R的,有python的分析没有
    1 i0 k. T- X. N8 ~  c
    有啊
    6 b) G) C3 m- F
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-22 01:13 , Processed in 0.452292 second(s), 79 queries .

    回顶部