QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析  C; s+ p0 n  X2 F/ s5 R0 F

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    + Q1 {9 h7 N, }+ W这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    1 f* U3 D# p1 K0 d, k行描述性统计分析,各连续型变量之间的相关关系如下:7 g3 ~( @. X& c

    * W7 I/ K. I: n8 t4 D; c4 d0 n

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

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

    - @1 r' A4 S8 V/ E# E# T7 P5 {

    ) U- f. \% L, `0 W9 ^1 R" [1 z9 s/ T# b& C! A+ O, E4 p
    最终模型残差图:
    ! l" g6 P% f3 t  G# }* \1 w! T& R; L4 Y; z
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:: J; y/ w7 z# i; Q6 v+ S
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比- k$ ^5 W+ Q6 T; s
    属性变量的具体影响在此处分析略去。
    % b7 }2 N2 ?3 O" S" s连续型变量的影响主要为:
    - Y) f; L$ F9 j  o6 L& B' D 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    & q8 l5 \9 `& M/ I 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    9 p$ I: \) e' _同时,原本为连续型变量的容积率经过离散化变为属性变量后:4 C/ t, X5 G3 b+ A- K/ r
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    + o# {" m0 M$ a7 j$ [( _2 | 容积率与环线之间存在着交互效应。& O/ @- \* {5 C
    rm(list=ls())                                                                                #清空当前工作空间2 c2 S" p2 z# v' W
    setwd("D:/回归分析")0 C: E0 U) p! V! a9 ^# N5 ?
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a/ }' B. H7 n, i) w7 c  C
    View(a)
    - _5 _1 f4 P# c) d# \# O$ Dattach(a)
    0 m! _* a+ G" Enames(a)
    ! U/ A$ Z+ Z6 `# `1 L! n/ f9 {$ f2 P
    - w9 t  z1 i( E& M6 V& Q6 W
    ##描述性统计: H5 W9 Q: o) f2 b) y

    ' B3 T' |2 g3 S" V2 Z/ |) \& l$ b/ t

    % r7 P1 v% D8 J+ {0 g8 a$ g#未做处理的响应变量分布情况
    ) N7 [% n  M: Vpar(mfrow=c(1,1))4 g4 e0 c9 e: ?% O, S! F
    hist(price)% f* q0 N" n; j# j: u7 l0 y" X
    summary(price)        #查看响应变量的描述统计量- Q, e% s) K1 A# f( @+ P
    #连续型变量描述性统计( e1 `- S7 [3 S! m* N+ J8 A1 r3 ]1 D
    windows()
    $ s/ H3 I) F* j8 k) ~pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    1 c& i8 _- a( D) R% A  \# _" Cpar(mfrow=c(2,2))       
    ) w+ r8 X# g/ |plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    3 E! G) y5 C* i( lplot(lv,price)
    + U2 t1 p0 h' T- Mplot(area,price)5 O; p" `9 X5 f6 u6 S  s7 h: L
    plot(ratio,price)
    2 ]5 a/ s# }" O) t( `summary(a[,c(6:10)])  #查看连续型变量的描述统计量0 g! M$ \% s; r6 K9 O/ ?/ E
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    # g% c  A. H8 w7 n& [; V#属性变量描述性统计
    + n- \' }% k2 B- K! e6 d' g. lwindows()
    8 z7 j+ L" k+ v* O& Spar(mfrow=c(2,3))                       
    . c0 _# ^2 y2 K' ^! m: K) eboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    6 [$ h4 R6 S1 V( M! _boxplot(price~wuye)                                                                       
    ; W  k# E7 r( ^boxplot(price~fitment)        9 M& X6 f" A% k7 i% c8 o
    boxplot(price~ring)        % S) T$ t' L; d+ R! i
    boxplot(price~contype)2 p5 g0 C# _  Z8 |, U

    ' o3 C+ ~6 y$ t2 D! K$ t$ @2 k2 |
    ! J& E+ |9 ~2 J/ V" u7 X* P
    ; c# R& E/ X4 s) d, S
    4 N4 Q9 c* |! l, C
    ##模型建立5 P. I; g# ]* H5 ~" T

    , L3 {9 p% ?: v5 o' R! h9 a! A9 {$ T

    : C- s* \- |$ M  B#在方差分析模型基础上加入连续型变量
    " i" [: b4 n( T, ilm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    . K- X! [% g( ~9 uanova(lm1)                #方差分析
    ! T! [' x$ |' vsummary(lm1)              #模型参数估计等详细结果1 ?9 W9 H, U( E" m4 p- [
    windows()
    $ `! j. M* H; ]4 f) Epar(mfrow=c(2,2)): F+ b* x9 _9 S- x: b
    plot(lm1,which=c(1:4))    #回归诊断做残差图3 i( V2 Z# @% ^  g
    ) d8 u0 _+ n3 i+ e, Z/ B# J, m

    : n4 Z/ U: ]$ s$ T% Y
    ( D2 t; M6 m' G. ?! O
    , ~/ v( y6 n# g( N. k) Z. }
    ##变量处理: q# y, |- a: ], [- i+ ]
    1 W! @# b8 C+ O/ U' c
    ! n9 x* P$ w/ g
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    0 ]+ G( ^/ w7 F##对容积率的处理9 d$ f, v2 Z2 G: K: F
    windows()
    1 o1 k# \0 {! Vn = 4
    2 L) J) u0 T. e" M! B. Wboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    $ g1 n: e3 W2 N6 N3 etable(ceiling(rong/n))                                                #容积率各分组下的样本数# p" |5 q) f- Q8 {3 N* u  K
    ronggrp=1*(rong>n)                #进行二分类! U6 y1 i& ^/ |. N+ P, }, [" [
    #ronggrp=ceiling(rong/n)          F6 [5 o  ~1 l, K
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    9 I0 i1 e1 Z* ]" i6 awindows()
    % x2 g# R  z5 v5 I3 |boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    $ f  p9 d! k9 x6 F8 N5 _  e( R/ awindows()
    * v& w4 a* Y; Xpar(mfrow=c(1,2))
    3 e$ ~6 y( b- \9 \/ Sboxplot(rong~ring)                #容积率与环线箱型图
    * H1 F; a; Z! Zboxplot(price~ring)               #房价与环线箱型图 : R+ D& L7 P4 P4 j3 H  p" T
    #加入容积率分组和容积率分组*所在环线交互因子的模型+ o" e% v$ c" I0 m( J& Z- D
    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 K3 j/ \. ]* s, d/ Z5 P3 [5 p
    anova(lm2)                #方差分析+ B2 N' I+ p! b7 n5 v) }
    summary(lm2)              #模型参数估计等详细结果
    & H2 m* n* A+ W5 `7 h' iwindows()) N! S1 z% v) b6 K) d) j) y" M0 o, p+ Y
    par(mfrow=c(2,2))+ F5 ~4 k! C+ O
    plot(lm1,which=c(1:4))    #回归诊断
    + B5 r5 n9 t7 z+ D; m5 {' h+ F+ E! C9 L

    9 Z# p5 j4 u: M/ `, k( N" F##对小区面积的处理( N+ f, d2 u$ b1 H. L. M) q
    summary(area)
    ( P) d) v3 l4 s2 M6 N% Jplot(area,price)# {# C1 k8 m( ~' x* Y2 n
    windows()8 t  l* r" g$ I1 t
    n = 150000
    ; Q( e2 c* u7 M" ^; [boxplot(price~ceiling(area/n))                                                       
    6 C+ F5 g1 n1 _/ ~8 v- Ctable(ceiling(area/n))                                                               
    - E3 ]) S7 d* kareagrp=1*(area>n)% p5 R/ G- E0 z/ V' w$ q
    table(ceiling(areagrp))
    5 ^* a( R$ e& |! I0 K6 w7 j4 Zboxplot(price~ceiling(areagrp))/ A- o5 L& O  ~* W7 ?( t
    #加入小区面积分组的模型7 I4 h; P+ }. o  [. D
    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)* |) ~3 ^/ V: b! P
    anova(lm3)                #方差分析# ~8 G  P4 X2 {" m3 u/ a: g
    summary(lm3)              #模型参数估计等详细结果
    * q) Z5 `  x. S9 S; gwindows()
      M# V! T' e& P+ I+ {/ H: Vpar(mfrow=c(2,2))* _8 b6 s# x* p, ?& J& m
    plot(lm3,which=c(1:4))    #回归诊断
      I2 O: [* B) L( f7 o! y3 U. ^& I8 }/ v

    + [  [. e- y3 V# C$ j  P8 {##变量选择
    5 R; ?' V" [# d0 m9 y7 k$ X; F$ o; c: a" M

    + K2 A# o, r- ~) k" m5 K  I##AIC准则下的变量选择' j7 [- O. b, @! K: i8 e
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    1 Z! T7 ^3 O  L) ^! F& qsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节+ r$ G' z0 Z( e+ I2 G
    ##BIC准则下的变量选择4 g! B6 N% O* f! x) i
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic% \7 M1 h% f; H% |; @
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节; A; @7 b3 E5 z  @& J

    0 ^. l/ q% o6 v/ {, d( n

    7 s8 J. L, |9 C  K# Q#选用AIC准则下的模型进行回归诊断. _" \/ M9 u6 E4 `- ~, z: N% V
    windows()
    * B( z, e7 j2 i$ Y6 @par(mfrow=c(2,2))! @  Q) k- R1 C7 E+ C# B9 @
    plot(lm4.aic,which=c(1:4))  
    % F" z, Q5 z$ |/ b0 y0 b* A- @, H9 N; I* n2 c! B
    ! j  x6 J3 M2 k. [

    + U" ^2 n# O% K9 {: M, ?

    4 y; o' D- m' ^+ x( V##数据变换
    / ~3 \" X+ l$ {# v# _$ u- H  r9 r1 ~" Y

    % ?" Y; V* J; S  R$ D8 S3 i3 [#box-cox变换
    ) U( x+ |4 M/ A/ o0 X3 Jlibrary(MASS)
    ( o. ?  e6 E: h6 I3 m* A# W. tb=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))8 g0 i, v/ C4 t! r
    I=which(b$y==max(b$y))  #定位似然函数最大的位置3 [  K3 i) M' P( K* f6 ]
    lambda = b$x[I] #精确的λ值' C' q9 K5 j. S2 W
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    % A; A- w" z1 i: G+ y. Rlogprice <- log(price)6 F% T& e: J  ~6 e+ z9 P" Q
    hist(logprice)6 L3 F% j0 F: A% P( A9 U
    9 {$ [* i5 P2 Z) E" ]4 Y5 X

    - D$ D! K4 l1 T4 M' M- m2 X6 E##最终模型与诊断; f5 v" d1 m; i, c2 g

      V0 S7 S- @4 M- S: J7 E
    7 i3 M. E+ t" ^! ?1 ?4 `
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    $ Q2 e! h3 s- k; Twindows(): q. M$ Y9 r/ u2 Y) i
    par(mfrow=c(2,2))
    ( |% M+ Q5 K* H4 u8 ~" e* Xplot(lm6,which=c(1:4))3 w) z& s9 K; U
    anova(lm6)/ o$ @3 n: ]+ Q& q- y( B+ o' n; _1 W
    summary(lm6)3 E6 n3 R& {: ]9 \  F- G) A" ^: B! L: `
    8 d, }, A/ L- L2 `( g
    ' Y, s- \% k) q+ _! g  B' w
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    - t7 f% B6 R) N) b
    " u! M) H* A8 K. K1 M* H
    * Y3 j3 x" f& Q& }) Y
    9 u  x; B! _3 M& e
    9 L; ]- @  B* U& l
    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的分析没有4 @! _# t8 T8 t+ ^. E
    # g6 Q, R9 f9 v' n9 H; Q# A

    点评

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

    太好了,又认真的看了一次,发现自已差太多了1 ]: q  J# w! r

    $ ]3 {5 S( ], t3 o5 h9 R4 y

    点评

    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 : w! H& F$ v6 J6 x. p
    太好了,又认真的看了一次,发现自已差太多了
    * i% G: B& k& }) K
    我每天会发一些好资源的5 X3 F' Z; ?( e: e
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 5 d7 F) g" H8 j
    一定会认真的看看,发现这是R的,有python的分析没有
    , h$ S$ E. |2 n: [
    有啊0 D- s5 [# Z- |# \/ B; {
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-25 07:03 , Processed in 3.027995 second(s), 78 queries .

    回顶部