QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

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

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


    . E* e+ b8 D% e. ^行描述性统计分析,各连续型变量之间的相关关系如下:4 O( G( K4 }6 t4 x5 F
    / ]( Q$ b* w% s$ V* V

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

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

    ) n: k) @$ e' v% M' \
    - G! i6 }/ j4 K* L

    0 {9 q  V* V. O6 n, `/ l( K0 P最终模型残差图:) p% {7 D  t0 z& E/ G0 s
    3 U# t, w5 z$ x$ R& G- W1 D
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    - f- l' F  u0 U1 J7 k7 O属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    , Y2 K0 g9 g' s! u$ n. k4 N' C属性变量的具体影响在此处分析略去。
    9 j* |0 K3 t, j3 I0 l9 R连续型变量的影响主要为:, @4 V3 L- a9 L  s( }. }5 B
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    4 Y! x, u; A1 B1 f& Q5 K; q1 H 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    , C: W% O/ \8 e同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ) I, D. n4 @. h0 ?% I/ N 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;3 z3 N9 Q4 [9 I# y
     容积率与环线之间存在着交互效应。$ `2 M8 C( r% x( x
    rm(list=ls())                                                                                #清空当前工作空间' `% I6 T. a0 Q# V: F! l/ e$ ~9 }
    setwd("D:/回归分析")4 t" M2 V+ _" M2 ~# h) E
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a9 X. V* B9 b/ @5 `* G
    View(a)
    + ?% l* @# V' i: B* ~' N% lattach(a)
    3 g2 j) d) N% mnames(a)( W% w, p! _3 f* R" S
      ?  A7 ]. J+ i1 Y  C/ z

    / S( U& O  [; o; E/ [##描述性统计; y* Q) E9 _! B" u& p

    2 ?2 w; a0 S9 U: k4 [, R6 z
    % h3 Z' V; w# K2 g2 N9 E/ M7 |
    #未做处理的响应变量分布情况; j& B2 O4 |/ d
    par(mfrow=c(1,1))
    ; t3 w+ q& J5 Ahist(price)
    ( j7 j( }+ \4 R3 o9 D/ \: ]/ o  r' U" gsummary(price)        #查看响应变量的描述统计量0 w' J5 S2 L3 j  m* W
    #连续型变量描述性统计+ R  f' C  d) F& _) {
    windows()
    / p# A: s4 C9 x) D- U) T# |pairs(a[,c(6:10)])    #所有连续型变量间的散点图: u% J! |7 ~; h5 x( z
    par(mfrow=c(2,2))        0 z9 q% W, g% M. Y, x
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    # A9 p/ g( [$ {; S/ _, j# {! H6 K4 Oplot(lv,price)% ~; |% d+ y& A5 k5 n1 r
    plot(area,price)
    : W% h& [; a/ |+ l* L: iplot(ratio,price)' {' I( E  `! s9 O/ F/ m
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    + L$ J4 R. }9 s  y5 l+ dcor(a[,c(6:10)])      #查看连续型变量的相关系数
      n/ p4 ~* `7 Z) \#属性变量描述性统计
    # T$ R8 |; ?8 Y: Q* J5 ^  ]windows()
    ! e# a# ], i9 ~: Lpar(mfrow=c(2,3))                        9 x1 Y! n1 g! V) `6 M# `" a
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    " j) c8 y! I8 j) ?6 j7 X+ b% l" eboxplot(price~wuye)                                                                       
    0 t- Q: ?' h; b- V+ o: cboxplot(price~fitment)       
    . D& z! H! Q" R( \- D; W8 W  Oboxplot(price~ring)       
    : `( t2 q1 f- B& D& K) g/ b# y( vboxplot(price~contype)  Q4 K9 P& E; |7 y+ a) S" M
    & _* `! Y5 a4 v  l

    - s( }  I9 A7 H2 _- R8 _8 L! y% Y; @) s/ ?8 T' i, a

    : r' `, ~( [1 F) j) x# `* E+ t##模型建立
    + f$ D9 H+ g5 [/ U3 C( O% b! J( ~" ^( ]
    ' X! R2 A6 N" p& E0 n; O. S
    #在方差分析模型基础上加入连续型变量! @1 y) y1 ]( d: l
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    % Y% Y' `. i6 b5 K) T+ x8 eanova(lm1)                #方差分析
    1 Q, p3 R- G; \8 u1 v, }7 Zsummary(lm1)              #模型参数估计等详细结果% G( a1 U: d1 [; C
    windows(). b1 n3 _! b% _
    par(mfrow=c(2,2))& m( G/ ?. X! E1 n3 {
    plot(lm1,which=c(1:4))    #回归诊断做残差图  K! M+ {' A& T/ J6 [% m
    0 Q$ }7 X4 m6 e0 O+ w
    . t# ?& v- U9 z3 `6 g# _

    % c3 ~1 s$ w* m6 R/ t$ u5 N. ~0 P

    * q6 N; w. Q% I; Q/ B4 a##变量处理
    : `# A6 B% S/ `; J' \; \+ k' f! a

    - }1 {6 D6 h. f###对不显著的变量采用分组的方式希望能达到显著的效果9 G5 Y$ C1 U8 z( H
    ##对容积率的处理. F; V* b5 |6 j5 d
    windows()) R/ Q" i& `% v
    n = 40 M; K5 e& {* k$ K# x. M, H' V
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    , J) g# m+ M) ^2 T/ N# _9 ntable(ceiling(rong/n))                                                #容积率各分组下的样本数
    * ]7 i2 }8 @3 Y. Dronggrp=1*(rong>n)                #进行二分类: q. v! A! P$ {6 b
    #ronggrp=ceiling(rong/n)        ! n% l/ k& ~5 N, a; t
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    / e6 R- S% E# q& w; h  s# q( r, swindows()
      L# k* u  U* w+ g/ x0 jboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    4 k( C- D5 g5 p% {, M* Rwindows()& i6 }/ n% M. c3 o% G# B
    par(mfrow=c(1,2))
    ! E# U/ ?& X( G) M7 hboxplot(rong~ring)                #容积率与环线箱型图- O0 l% n! b+ {5 z( L
    boxplot(price~ring)               #房价与环线箱型图
    ) D5 x) v" C& m9 Z#加入容积率分组和容积率分组*所在环线交互因子的模型
    ( |' ?; @8 n, F) o1 ]5 Blm2=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)
    0 `1 |9 y8 B5 ?; W. G! Danova(lm2)                #方差分析, [6 M, g4 Y! X
    summary(lm2)              #模型参数估计等详细结果
    # ]  D9 h, i- |6 N9 Zwindows()7 Q$ o! e; D- w. n8 X
    par(mfrow=c(2,2))* o" B2 _0 q- M; Y' [/ ^
    plot(lm1,which=c(1:4))    #回归诊断/ C/ |) C! V% G5 ]3 O$ @
    2 h$ h& X3 |& q) V& s: H$ n2 h5 h1 ]

    3 E7 T% X$ Y2 h8 m##对小区面积的处理1 u; i% U) C, B4 u
    summary(area)
    / A* f5 F( @& N6 ~) eplot(area,price)
    . n! E, e4 E6 Gwindows()
    ' S. r. `: |% O8 i' S, t! wn = 150000# W9 {# x# V" P9 E* Z8 Q
    boxplot(price~ceiling(area/n))                                                       
    1 o- I! C7 O: J- ~6 n% Vtable(ceiling(area/n))                                                               
    1 \# F3 j' K" _5 V# `2 Qareagrp=1*(area>n): v8 a. ~8 C( A0 `3 S7 s
    table(ceiling(areagrp))
    7 j5 `( V& ~3 [: k3 ?, w! aboxplot(price~ceiling(areagrp))/ A. K9 @0 _8 Z1 g. T/ s9 \. C
    #加入小区面积分组的模型' ]2 y) t; {# \  g" K8 L% ^
    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/ W) N, `" E6 `5 V" l
    anova(lm3)                #方差分析
    0 Q6 _7 p) e1 Y# isummary(lm3)              #模型参数估计等详细结果# u% `) V6 k7 e
    windows()
    5 T/ W, w" V7 I' v& ppar(mfrow=c(2,2))
    + D3 b( s. q; J+ d3 v. p) dplot(lm3,which=c(1:4))    #回归诊断
    1 n/ k5 c9 g$ m. Y2 X0 F) R" q# S( H3 s
    0 E2 S$ M& C; o' ^& [
    ##变量选择0 ^- o, E3 Y% C: {" T4 ]9 V! V

    # \4 _; I* D/ @9 x- J) K$ G7 |, q

    * _& Z* _$ I- a6 M9 {6 O- Q5 V##AIC准则下的变量选择7 m5 i: S; f8 f8 p
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    6 n: w: ?8 [) ~! C& g0 k+ Ssummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    ) g; X+ V1 i- J! w# t' R; }! Q##BIC准则下的变量选择
    6 g! u4 o; ?# D4 U% B! }; Klm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic* R4 m0 i& A; ]( g8 a" P
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    7 S0 V( w# U' E+ f% u: o3 f" K- r/ U
    - x2 I; @, H; d) I  Y
    #选用AIC准则下的模型进行回归诊断" J' c0 ]7 V  k' E
    windows()
    " J# _; v- b, v' Y  E7 y7 opar(mfrow=c(2,2))7 e3 z0 }, F7 _1 [
    plot(lm4.aic,which=c(1:4))  
    1 l: x0 v: S0 y+ ^* _% T  W# t& ^/ |$ F! D% j

    ' u, v) B$ C/ I; e- h5 a6 f3 i. b$ j+ Z; W. d( B/ U

    7 {& r( N1 ~6 N+ r0 E  `7 m2 b- v" o##数据变换  ]  A: y( ~- d( T
    & W- G$ P* `& R5 }& X7 h, y
    ) Z5 U/ C4 F4 \$ c$ g) i/ }# i
    #box-cox变换0 e3 S1 t8 U! c6 {5 G& L1 Z/ m
    library(MASS)1 ^0 i- P# Z* g; C3 }+ m/ K1 i
    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))
    " U; R- L+ }2 W! J8 fI=which(b$y==max(b$y))  #定位似然函数最大的位置- L- i" u0 D- u# C* z
    lambda = b$x[I] #精确的λ值' A4 s8 _$ N3 [6 V6 Y2 ?& E& S1 ^
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    $ r( R$ r8 a9 ]1 _0 D2 Nlogprice <- log(price)% `  b2 y1 P0 ^+ U# T2 x
    hist(logprice)
    ' i  E$ {& _7 N! s& ^* O
    * t2 p" ]) p& T& |( V

    ; K  @2 W- e- Y1 w/ L) ?3 h4 u' J##最终模型与诊断
    , z' f' J9 I& r
    4 u5 g' P6 W0 l" \, w- K! ~6 \

    - o* C% V4 Y1 k, `* u# t4 s' alm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)& Q# B0 Y4 s0 F, b- M. T- o
    windows()
    ! y7 q( F* l$ ~* T' J. Xpar(mfrow=c(2,2))
    8 w+ }, Y: b. }, s  W- |7 w& D( Qplot(lm6,which=c(1:4))
    3 s! g- ]! i( `/ ~! P8 fanova(lm6)
    ( A$ E3 `& ]% \+ S2 i$ gsummary(lm6). U" L: X7 c% ~8 q. Q7 u

    5 T. y! P2 T' r2 w$ A4 @
    ( Q- I9 {; P4 k5 q请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
      ~' W% }$ y0 S. J

    7 u' q5 J# R; F$ Y  G  L5 L, K- A1 m( \- j- b; k5 d! \  L
    $ I6 _, X* S: |: y& H5 b

    $ t0 W* E  d  H3 Z9 _% J- ~# ~8 w
    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的分析没有
    , Q( a& @3 W/ k6 o4 Y  Q9 l: V" }9 |* s& ~

    点评

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

    太好了,又认真的看了一次,发现自已差太多了: }' K- M/ C. q9 x7 s
    4 B6 P4 n: i+ x

    点评

    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
    + l# l, i  }- l" _0 r# u太好了,又认真的看了一次,发现自已差太多了
    ! I' N. s5 y. D# a
    我每天会发一些好资源的
      v0 ?/ _, b4 [$ P
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    / k" [* _+ \$ c一定会认真的看看,发现这是R的,有python的分析没有

      e$ Y" N' {- n, M& D3 @5 q: T有啊
    2 t; U5 I; R2 c5 o( `7 C# ~; {8 O
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-19 18:53 , Processed in 0.419230 second(s), 79 queries .

    回顶部