QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    0 e) U" A% x' }: |! z. n

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    4 X0 n. x- j* k9 u) ]* y6 H这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    + E% _; z) i7 C1 ^; T) a" p行描述性统计分析,各连续型变量之间的相关关系如下:( H# Z) F" y$ f% W* G/ p3 h
    4 y1 _: E+ j1 c

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

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

    ) T! Y2 Y7 z" s' {2 ^

    1 `8 d. P4 a6 a& \
    / W+ s; @" k* u$ X' I" B' o最终模型残差图:
    ! S' e* {/ |$ e1 ?4 G) ~5 h* ^' Q: K" R
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:: Q1 O! H' V, v! B! r0 }
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比" S) |) ?- @- L! x- |; ]9 c$ h
    属性变量的具体影响在此处分析略去。
    ) Y, o2 R( _; W. I+ P% B/ Q连续型变量的影响主要为:! }+ l9 T. `7 L0 S5 J
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;* v8 z  e3 ~$ H4 B$ H( L6 j9 {
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ' ?- S& G  }" Z# p同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    9 V9 c' `* A4 B 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    2 b' y  E5 @: d- Q! x 容积率与环线之间存在着交互效应。5 L) W/ w, y, S
    rm(list=ls())                                                                                #清空当前工作空间) a) c6 M* y$ v" P' R) ]2 R
    setwd("D:/回归分析")& [1 @9 d; A# |/ y* {
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    2 t3 l' a5 q9 |( g1 O1 ~. C. EView(a)2 f% N, u2 E  e, `/ Q
    attach(a)4 T, S7 X8 Q6 d/ `! Z6 h0 }
    names(a)
    ! ~3 W* U6 g! ]; ]4 x8 N0 j
    1 T# N2 u; \$ t/ e1 [& d
    , e( b, n" i) }6 [
    ##描述性统计' t' o& d" y/ i9 j
    + U! C# l, C) W0 A8 e

    * l9 V$ Y) X2 ]& y% T- p  V# |#未做处理的响应变量分布情况( w  L- Y) e8 i7 @
    par(mfrow=c(1,1))! C0 c1 r5 L2 S8 q
    hist(price)
    + o9 r( N$ K( P! d: ssummary(price)        #查看响应变量的描述统计量
    % l) F5 D. t0 q) n# ]#连续型变量描述性统计
    ; \2 f$ V$ N& V$ `& w% R1 ywindows()4 ?- p4 A1 O# Z/ `" h8 u& W
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    + T4 o6 s0 K% _9 qpar(mfrow=c(2,2))        4 R  `4 [1 P) r7 M# k3 m5 B: o
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图$ l% J5 K. c, ~5 `1 N; I
    plot(lv,price)( j: f- U3 o- v: T
    plot(area,price)
    0 I5 z% [6 Q! o( e) ^plot(ratio,price)- B, U6 L' P/ W
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ( d! g* S  x4 _' @1 `& jcor(a[,c(6:10)])      #查看连续型变量的相关系数
    ( M6 X5 l/ O: I5 r0 S3 D4 b#属性变量描述性统计
    / E, f+ E- p1 h% ~: x: M  Cwindows()2 S- M, Q0 ?8 C2 \4 ]" d! i
    par(mfrow=c(2,3))                       
    : C8 v2 P  E* j' y1 _+ Qboxplot(price~dis)          #每个属性变量关于响应变量的箱型图) @2 o: E' R6 m$ A6 A, c
    boxplot(price~wuye)                                                                        8 L# {# N2 [+ P1 V- F3 N
    boxplot(price~fitment)       
    1 E; |: f" p0 W; j3 I$ D. jboxplot(price~ring)       
    # H# d5 ?7 N" `5 ]' C+ |( Q8 o7 Mboxplot(price~contype). W1 B! J) _% G9 J1 w  }* V

    + c) R% C+ H0 B: k) n

    . D: X9 Y; x8 e/ b  G
    8 z& g1 K; a) G+ c) }0 |1 H$ @

    1 z0 `" Z/ Q* ~  j5 j, e##模型建立; Q% F& h$ S7 b& S* t
    7 j7 s; S$ v: G! G+ k$ u3 G
    3 s. K* x/ M; r" K) U3 Q. a
    #在方差分析模型基础上加入连续型变量1 ]9 N* P. T4 W+ F2 s/ n: T+ ~$ q
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    ) }' m* c+ e1 A3 S6 c2 }* o. F3 }anova(lm1)                #方差分析" z: p# V# Z* A8 A  c% h* k
    summary(lm1)              #模型参数估计等详细结果( U" `% b( D% {  l) g' i# d/ M" W7 K
    windows()8 E8 g. |' i% K# {$ T/ _
    par(mfrow=c(2,2))7 L" N: l6 s0 q: Y& z5 A( ?
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    9 v: a; `; _+ [- f# [( Y* {$ R2 q8 G; r( ?, y

    # t/ I8 D: c1 q7 p# o# Y! _1 F$ O4 u& U6 f; E
    - |4 M5 T; Z8 V& x- I& |# b9 Q5 c0 Y
    ##变量处理
    . K1 Z* ^2 J! `- L1 A$ U9 _' Z, U' t3 e3 H& j6 o, R

    & X  b. k; x3 d4 N5 i7 p, s$ v" o+ P###对不显著的变量采用分组的方式希望能达到显著的效果: M( o4 L6 F5 q- `4 r- g' z( W
    ##对容积率的处理
    0 x% u8 v+ \/ ^windows()# z# I% F/ s/ F4 S( u" e0 m
    n = 4
      U' r1 U* x) r  `8 @boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        ' g% c9 e3 `; e7 f) m% g4 r
    table(ceiling(rong/n))                                                #容积率各分组下的样本数1 x  E+ z" A. n- k3 u
    ronggrp=1*(rong>n)                #进行二分类
    - ~) N# \8 u% ?$ o6 `& J  B#ronggrp=ceiling(rong/n)       
    3 m3 T; H) x/ ^5 D' [0 n8 v& `/ vtable(ceiling(ronggrp))           #容积率二分类下的样本数# e) S. `& X8 N5 B' p
    windows()
    5 K; i8 c0 L# mboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    3 U2 }6 E2 w0 _  lwindows()
    3 T* K; a# X# s8 E6 P- hpar(mfrow=c(1,2))5 J! ?- @6 L  a$ U8 r
    boxplot(rong~ring)                #容积率与环线箱型图
    1 f; J+ X& f" B3 U; g) g# `boxplot(price~ring)               #房价与环线箱型图
    ' i. e- u+ x9 }#加入容积率分组和容积率分组*所在环线交互因子的模型
    & m3 V* y/ X9 `0 t( x( b9 G9 Ulm2=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)2 y1 l+ s0 K/ g0 K) P5 N* ?$ w
    anova(lm2)                #方差分析3 c- Y$ m; g' T4 h- M3 ?
    summary(lm2)              #模型参数估计等详细结果
    ; |; P: @3 G0 W3 W7 B# Uwindows()
    7 j2 x/ R7 y: h9 \) |* wpar(mfrow=c(2,2))# E0 f' y" G+ Z7 P
    plot(lm1,which=c(1:4))    #回归诊断
    1 X  J4 N5 U4 N+ p- A
    ' Q5 v2 S5 j: r
    3 b) ]0 Q7 J, n; k
    ##对小区面积的处理
    $ E, _$ M9 Q/ T* h5 B+ Asummary(area)' e  H& }* N1 x' i
    plot(area,price)  f6 m  \9 D* e; X  T
    windows()
    9 \4 [# U- @% B+ n: t7 Ln = 150000
    9 K4 d) d5 h% Cboxplot(price~ceiling(area/n))                                                        3 \0 k* K8 M3 e4 e
    table(ceiling(area/n))                                                               
    & t8 I, V# `8 U5 Q) D- a4 Qareagrp=1*(area>n)2 Z1 z4 a2 @; D! W1 }! \! @8 `
    table(ceiling(areagrp)); X% Z/ x9 X$ q
    boxplot(price~ceiling(areagrp))
      ]! J: c0 P! @6 Y* p#加入小区面积分组的模型! X: N( D& X# h; c3 n9 v
    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), G; s( w, a- E
    anova(lm3)                #方差分析
    6 p5 \1 ?+ x! x" z3 |6 n: usummary(lm3)              #模型参数估计等详细结果
    0 Y, o6 w0 G& \$ W/ Kwindows()
    * w. E0 H7 Q# B; U7 npar(mfrow=c(2,2))
    ; C) d, \0 f3 o6 e" p. V" _7 r5 I( z) lplot(lm3,which=c(1:4))    #回归诊断  ?" s  v0 S3 m! ]

    , r8 I% i) P7 g" F

    ( `( w2 x  V  A##变量选择
    : I, @0 s4 p; o/ H4 i/ s
    1 m5 P2 }* ]- m) x! C  {

    ; @; H. }1 A+ L+ c0 o##AIC准则下的变量选择# v& k' K2 x/ \
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic$ t2 J1 z9 D! I. F) i
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节) N" m3 K9 t( K; n. ^4 F( u
    ##BIC准则下的变量选择
    , S) f: x, e" \- R" xlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    . Q+ X: k4 u9 [# ]; b$ dsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    & x; x8 x0 W1 V7 A
    5 I) q8 m9 B7 w6 `' y0 p
    % d0 [, D, G- O7 M' [- v& i
    #选用AIC准则下的模型进行回归诊断
    , `1 J7 R2 C: X5 O& Lwindows()
    2 w: r  ?1 B6 l) Apar(mfrow=c(2,2))" _/ L$ D9 E6 W
    plot(lm4.aic,which=c(1:4))  
    % l5 v+ r# ^6 X3 M9 A: o; P6 r( i( V  a3 X. g8 q, r

    : d7 R4 }" I- ]* _% ~) b
    0 j/ R1 w( H4 R) p
    " m. v6 P& B& Q, e* i% D
    ##数据变换" e6 x7 E0 Y5 G, r+ {5 _" m
    # L' C8 ^% q' t; h) F

    , I0 r! s- @% H1 t: J' L1 {" n#box-cox变换
    ( U/ u( ?: w, |4 }6 A. S5 k. m% rlibrary(MASS)
    9 M( A! w' t/ s3 k, mb=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))
    " F! M& q+ K: x6 N' c' pI=which(b$y==max(b$y))  #定位似然函数最大的位置2 p$ e& q! j& _8 E& e
    lambda = b$x[I] #精确的λ值
    8 T8 b: \. Y5 j/ O1 d( E#λ接近于0,为模型简洁性,可以直接进行对数变换
    - q2 k& W9 j0 Z+ ologprice <- log(price)3 }1 ]5 d  x( H; `; K
    hist(logprice)
    % k$ ?% A! Z) \% t* M0 a. |$ e8 v; u

    ; j7 n3 M2 P! x7 U. w- w; I##最终模型与诊断
    / U# ^% J' ^9 B! @. d/ V, U0 z6 v6 |8 N
    4 G6 D* z8 S1 M" n
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    2 L  S: C6 R- S) C6 I4 Nwindows()5 J4 b7 t0 K* r, j. J" y
    par(mfrow=c(2,2))/ Z5 q$ m  i) ]- P
    plot(lm6,which=c(1:4)): o! \. n4 K* P4 r+ ]* r
    anova(lm6)
    + y# d" S6 H) Ysummary(lm6)0 j# c7 A2 @% k9 X7 D8 ~8 g
    + H0 m& p. t. [7 s5 k" K; ]. J

    2 \! B" W4 H8 K# r8 U" Y0 l请关注数学中国网微博和数学中国公众号,联系QQ 32437105602 }0 L0 ~1 K  x- _; e% x; s+ K

      `* k1 c  \' n6 G1 @7 Z; _
    3 H+ k9 u6 Z4 E* u9 P4 p3 [$ n6 x2 x7 h# D  D

    5 n6 u. b) J: K$ v! ?
    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 x) u. O$ m5 D5 B! Q# `

    0 B$ F/ a% O7 q: ^$ 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

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了$ k6 ~1 F7 X: t. a# h
    7 R/ _  A" z2 S  g) R& V  u! B' M

    点评

    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
    * f9 {$ c% J! F( r  C( q太好了,又认真的看了一次,发现自已差太多了

    4 u- x6 L" S' a8 ]我每天会发一些好资源的9 |, U7 [" u# p8 S
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    ) _3 ^( Q2 n7 _$ q. x: L一定会认真的看看,发现这是R的,有python的分析没有

    1 T5 Z, e4 H/ s2 q# j" L/ F+ o, L有啊, S, {& b$ |- v  g: p2 J. R
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-19 20:01 , Processed in 0.300470 second(s), 79 queries .

    回顶部