QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析2 z2 y- D2 v2 ^8 @3 i

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    * @1 c% P7 e7 U0 A  }这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    7 Y: J+ e& t  f& O行描述性统计分析,各连续型变量之间的相关关系如下:
    + P2 M! |; I/ S6 Z4 e1 W8 G  z8 U& o0 `9 f+ s4 M

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

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


    . G3 b! M* ?3 g! u" S" b1 y; y0 y7 }$ i* c/ w  U

    + V3 X% @# ]1 E& O最终模型残差图:
    3 _, ~* y" V% p( M* ?
    6 s" k9 V) z* L: C% ?3 Y
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    + n( E4 t: Y$ I/ p+ z$ m属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    - s: s/ \" f2 m. E% M4 ?. q属性变量的具体影响在此处分析略去。
    & k+ G4 I: l$ A! e连续型变量的影响主要为:
    # O1 C: q0 I/ P 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;$ b/ z, ]) _9 d' h
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    0 ^5 p! @' l( L- k5 y1 s3 U同时,原本为连续型变量的容积率经过离散化变为属性变量后:* u0 F7 W5 s# s0 s3 K; U( _
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;6 L! a' y4 z" z) K: T1 \& o- F
     容积率与环线之间存在着交互效应。
    5 a5 W) Z! ~6 l, S& zrm(list=ls())                                                                                #清空当前工作空间: m( K" U+ d- A( }$ E
    setwd("D:/回归分析")" V& [: P& N+ Y8 s6 K' |0 e
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    9 m, Q: Q6 L" N; j% ^View(a)
    * c+ P- S9 O- O# S. O7 eattach(a)
    ' m3 V. d+ O7 q1 P0 wnames(a)
      f/ Z$ \; Q9 m8 n5 y1 j9 D! N# d' A3 T9 ?  c; G
    8 l! ^8 a7 k  \* P9 @3 R9 J5 g
    ##描述性统计
    * M" m: ~% o( L. w/ W: O7 t6 J4 o: ]! \7 W9 R
    ! u8 ~4 O6 s. M# h( ^  w( A. J# }4 _2 d) I
    #未做处理的响应变量分布情况
    ( Z# B, U' ^8 J+ upar(mfrow=c(1,1))
    ! [3 o7 v# o* fhist(price)
    3 Z; Q$ T3 B) Ksummary(price)        #查看响应变量的描述统计量! ?' p4 @* Y" V4 m/ J
    #连续型变量描述性统计
    0 n- _% a2 m' T  W2 Owindows()
      ~+ w9 e# C1 t$ }" j# hpairs(a[,c(6:10)])    #所有连续型变量间的散点图) U; ^7 p5 C! P& m8 U7 s
    par(mfrow=c(2,2))       
    ( N* P0 p4 x# }& l% W, Rplot(rong,price)      #每个连续型因变量与响应变量间的散点图' ~* m0 j3 \5 M! x0 n; z
    plot(lv,price)
    . z  E( g( p0 E8 i& T3 l5 Fplot(area,price)
    * y% |8 P  c  mplot(ratio,price); b; u; }& _% Y  h! K- w* [8 v( q
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    . ], F; c9 M- z6 Acor(a[,c(6:10)])      #查看连续型变量的相关系数% f: d* c4 J4 t
    #属性变量描述性统计4 @4 @2 A8 N; w, {8 d
    windows()8 ^* t9 o# Z  G* M5 R: |+ n5 R
    par(mfrow=c(2,3))                       
    : {6 A$ {5 r7 W  i7 i8 ~; T) xboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    8 }6 K" B: G, r6 i/ s$ I$ Aboxplot(price~wuye)                                                                        ) P) h) L" w: V+ |' i0 O: F
    boxplot(price~fitment)        . Y3 g; q1 h& _. q  o; D2 Q* y
    boxplot(price~ring)        ( ]' T" e' D  j
    boxplot(price~contype)! G8 x" y$ n) U+ v; Q. N2 J
    , N9 }- y2 q$ C* j4 ~

    5 r  X  Y) k2 {% S* r6 X" c2 ^/ ^9 Q: G

    $ a  U3 U# A6 c  w3 n1 U+ v##模型建立
    ; ?$ p! l7 B$ Z9 Q
    . q! x( g4 }7 K1 N  ?
      X; W  I0 U0 l3 s# c; S
    #在方差分析模型基础上加入连续型变量
    9 a# t0 P+ f$ ?+ U$ P5 Rlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    - x" |' p  A: A; Q2 Q& r0 vanova(lm1)                #方差分析
    $ n8 \3 ^7 p& Xsummary(lm1)              #模型参数估计等详细结果
    ' K% L6 \2 P. ~+ Q  swindows()- \/ T0 E8 g+ _
    par(mfrow=c(2,2))
    & Y: H9 I. o5 h5 rplot(lm1,which=c(1:4))    #回归诊断做残差图
    ; O& r8 O" l( f2 d0 [. M
    3 ^0 u. g$ y! R! V& F

    # J0 [7 T% v  N/ f4 S! j) e& @4 p* L+ C

    * F# G1 ~1 a! |! z; m. O##变量处理! |7 L5 b. I6 g# N0 b8 R3 w
    ; ?5 u6 b6 Z# l  n
    + x. n0 b; Q' R9 r. R5 J1 o# C
    ###对不显著的变量采用分组的方式希望能达到显著的效果* I0 c& h( N8 s" c, j5 k
    ##对容积率的处理
    * |% ]9 f8 x4 Fwindows(): O( B$ T' N* V( J/ ?
    n = 46 g1 s& `" ~$ S' N$ V
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        8 Z5 v1 T0 y$ i0 ]  P. `! K& c
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    ' e* ?* Z2 O! {: bronggrp=1*(rong>n)                #进行二分类3 s( P7 c0 S$ M+ L  K4 N1 v9 @
    #ronggrp=ceiling(rong/n)       
    # C: U$ \; w& T3 `. `% E7 Mtable(ceiling(ronggrp))           #容积率二分类下的样本数
    ) l+ h+ u3 V2 n) D# \7 I. y/ }windows()1 Q$ G( ^7 x: N8 ~! x4 P& I
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    + ]0 d, J7 S8 _7 cwindows()% k# L$ l6 o" l' }0 z% T; Y+ x
    par(mfrow=c(1,2))
    & `; e0 T; K1 q4 N4 J2 Hboxplot(rong~ring)                #容积率与环线箱型图  q' h" D7 m8 m3 E# _
    boxplot(price~ring)               #房价与环线箱型图
    & g- ]: H4 j" g: X" N' s8 @4 l/ g#加入容积率分组和容积率分组*所在环线交互因子的模型3 W( D" J* s3 N  [3 L- a
    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)
    - _$ l$ {8 t# g, Banova(lm2)                #方差分析
    8 g, E2 g+ ^/ o% E2 B; z2 m! h, ^# qsummary(lm2)              #模型参数估计等详细结果9 X4 ?* z9 X2 R' A. J7 H3 B
    windows()
    # i' W7 L1 a, C5 Y+ r) opar(mfrow=c(2,2))
    $ B! ?  Z% ]8 ~9 }$ o* n% hplot(lm1,which=c(1:4))    #回归诊断: g/ {7 h# O' n; ^4 U

    & p+ j& I% d& X; Z; x5 H  K% |4 a

    3 B' O4 B8 h' h! G##对小区面积的处理
    1 m7 m1 f5 ~: O$ lsummary(area)4 B& [6 K% T. f) @( o6 k" ]
    plot(area,price)
    , `6 P8 ]- R5 owindows()
    " w8 K$ y( ^% Q% {8 A( un = 150000
    + l' X4 s, a+ p- Vboxplot(price~ceiling(area/n))                                                        . J) f. q: u. s! u
    table(ceiling(area/n))                                                               
    6 s6 j$ {8 \" m, g: ~, W: N' ]areagrp=1*(area>n)
    8 D* q7 I- I' A# F( N8 K! W6 }. ttable(ceiling(areagrp))
    1 v! W8 i5 L7 \. Yboxplot(price~ceiling(areagrp))8 N: J" |& k; d" B* p; X4 p+ Z
    #加入小区面积分组的模型( y3 `4 u, x; i  p2 j
    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)6 d- x6 M' {$ q5 B9 N- R, h
    anova(lm3)                #方差分析2 y5 p! E  q( t2 U
    summary(lm3)              #模型参数估计等详细结果
      h7 d# F) G* e9 p$ ?windows()
    7 q5 v8 m0 F2 X) W8 ^6 \par(mfrow=c(2,2))0 x; e( o, I3 [9 e' p, u
    plot(lm3,which=c(1:4))    #回归诊断
    2 a# U  |/ n$ j) c* a: i# a0 A$ u: H+ o9 B' _
    ; \7 Z) y' K+ q- E0 j
    ##变量选择
    ! Z8 w' b/ B* F3 e3 X! i) X& K
    " d8 t& i* y% h0 ~
    3 w4 e% @0 |3 S
    ##AIC准则下的变量选择5 j8 D( Z6 U/ x. V, ?  k% [
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ ?  L; w, U$ Tsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    8 I4 y2 l  ]7 E* l* H- x##BIC准则下的变量选择# u2 R7 d/ I1 g( r* r: m# c
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic! {& t  Y% U+ ~# ^! O6 E$ |! u6 E' B* v
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    7 A$ t. W9 e0 d: v5 E5 S. o! ]: ?, {/ ]" j4 B

    2 \$ B/ |9 `# ^6 b$ h9 R% O#选用AIC准则下的模型进行回归诊断! Y8 q0 Q- x/ T6 h1 {, `9 v1 i7 I
    windows()
    + ]* {  E1 y1 zpar(mfrow=c(2,2))! t/ W5 @, G+ x/ j$ A; i  M( f0 [
    plot(lm4.aic,which=c(1:4))  
    & c5 B, b2 P; b( ]/ c: A. y3 N! }5 r6 a( W) P9 W
    3 {0 a4 {5 S9 J. @, E
    % E7 l5 K# Q5 b. b6 Y: l

    2 D2 n  j8 W, W* |$ a0 p9 H##数据变换5 f$ h% Y( W( c$ f( M) L
    / c8 ]- {3 c: F6 p& U6 u7 C0 s
    4 h  k# y7 J; |1 X4 V% A8 x
    #box-cox变换/ P4 y$ F4 W" a1 b% B
    library(MASS)
    6 _9 T* A. u' \# ]: l/ 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))
    ' R7 Z9 a( C, T2 X( Y5 I7 UI=which(b$y==max(b$y))  #定位似然函数最大的位置
    ( d# ]+ v* M. J* r8 g8 |lambda = b$x[I] #精确的λ值
    ; o3 C1 G$ M* p6 ]#λ接近于0,为模型简洁性,可以直接进行对数变换
    " z# c+ M, W. }+ [; B3 q$ jlogprice <- log(price)
    ) J3 H7 |+ L* |) T- Q" j, @0 u' X5 [hist(logprice)# B; h; z! U% a, r0 P; U1 `/ s0 N
    % i7 v2 t3 j: h) [  [& h

    " E$ f: j+ m# v! e6 p/ l0 f##最终模型与诊断1 e. n7 j0 |3 [7 R2 {9 _4 o6 V

    7 v; I; g) C% ?
    ! s4 k- h2 R" x
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)2 |) I, i6 E( u- r
    windows()6 X5 M0 [) X. }- _4 _0 A- }
    par(mfrow=c(2,2)), i5 ?; h( E3 P: e) k/ {
    plot(lm6,which=c(1:4))
    * N! M& |8 t8 W/ Q& \* m  A9 a: Hanova(lm6)
    1 @' M* _1 d# E+ h/ Q+ H- L) vsummary(lm6)& o/ ?. s( R# H
    0 T2 o4 ~4 \: M! v/ q0 O* U0 S
    9 z( A  v7 l9 x0 Z1 z0 {
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560& p: \; Y. D8 o* T

    " Z7 m  p6 J  m) k2 {# C6 ?* G, k# {0 H1 G) Q& K
    6 G* K: ~6 K, F. i/ c) J* v3 ?

    2 B9 c5 I( i2 Q# T; e7 W
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    690

    积分

    升级  22.5%

  • TA的每日心情
    无聊
    2025-4-24 17:55
  • 签到天数: 694 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    & [+ p5 j7 n% {6 k) J, F& `$ J9 p3 \3 |3 n7 ]# n* o* \

    点评

    1047521767  有啊  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    无聊
    2022-2-19 17:40
  • 签到天数: 30 天

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    690

    积分

    升级  22.5%

  • TA的每日心情
    无聊
    2025-4-24 17:55
  • 签到天数: 694 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了0 C2 x0 F3 X, N. r
    ! f6 h  d& D2 v* C2 K  ]7 j- 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
    ( Q% G" Z" q/ q' Z7 G太好了,又认真的看了一次,发现自已差太多了
    2 p1 C3 D1 I+ `" {$ {( N
    我每天会发一些好资源的# M+ G7 [( j+ j  \$ j) H0 J
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 " ~* g' ~- t  ?& q& f) ^
    一定会认真的看看,发现这是R的,有python的分析没有

    # F/ E- ~; P/ u, {! ]7 \1 x有啊
    6 s$ m* z* E9 d* \% ]9 [& A
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-5-9 13:50 , Processed in 0.597399 second(s), 82 queries .

    回顶部