QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5657|回复: 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 f8 d+ a9 }3 B! }. @) Y

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    : V, o0 |* ~! _# O) l* R* f1 D这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    " w& v* {" V7 ^" r7 c* f
    行描述性统计分析,各连续型变量之间的相关关系如下:
    : J, P8 e3 @7 f, G+ O2 m8 ?7 _' t+ X) k$ `9 b9 X

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

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

    ( T( u& P+ P9 X, i
    ' I% _* \9 X$ K

    - }. _3 D6 o# {6 p9 f" l( R% \% o最终模型残差图:
    5 i$ V" g4 I" d
    # Y9 v' A2 Z& \' w( t1 B
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    8 q) q  B' c  }5 u3 Z/ `: g属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    $ V+ K  l* Y! q! r! T属性变量的具体影响在此处分析略去。* r: G( k# X- V' B+ _- K; T2 F
    连续型变量的影响主要为:
    6 d2 m, E$ q3 E! x 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    : G: s% b+ p7 g; F 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    # v( d, l/ N0 f) O同时,原本为连续型变量的容积率经过离散化变为属性变量后:$ Y7 A2 W" {0 f4 y9 M  @
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;. n' [. ~+ k9 t  t* B9 i+ t
     容积率与环线之间存在着交互效应。
    # w" I: t6 q# }( ]: t2 }rm(list=ls())                                                                                #清空当前工作空间0 L/ z6 E$ _+ U' M4 n# T% }! b% @% z; C
    setwd("D:/回归分析"); W7 @8 S( X2 o
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a$ a" t7 m9 K, w2 [5 @- u; I9 o
    View(a)
    ' o/ k" D- I- K( ~8 {6 |8 Lattach(a)) E2 B9 O# k, P2 k: d
    names(a). R: j$ E/ v1 y5 y% w2 n8 Z7 J) l# m
    9 l0 z  b+ g9 G
    / r( a9 d  l9 _, V& L. l$ g/ |
    ##描述性统计
    + q7 M$ v3 X! c1 o1 u3 \, _0 L* ?
    ; w" P+ V4 _7 p( V  I
    #未做处理的响应变量分布情况+ Q0 D5 M1 N) n9 m( y2 t
    par(mfrow=c(1,1))
    - Z: q) m6 d0 \) thist(price)/ w( i, q; B2 h3 S$ D
    summary(price)        #查看响应变量的描述统计量
    , q# `0 ~5 K, y5 \. \#连续型变量描述性统计
    8 y: ^8 w8 w+ Zwindows(); L7 x) e; D( {; z" i  u
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图; ]# x& q6 n9 G. f1 Y
    par(mfrow=c(2,2))       
    : s% ]! S0 W" s7 C0 }1 v6 Nplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    & T& I" z4 I3 y% W. t8 i* d! dplot(lv,price)
    8 x  e& [& I9 ]4 N3 B, rplot(area,price)
    * A8 i. x( n$ Q- o- \plot(ratio,price)
    7 H$ H: H5 W9 P+ `# g* P2 v/ vsummary(a[,c(6:10)])  #查看连续型变量的描述统计量3 E! P/ A4 t4 x, e
    cor(a[,c(6:10)])      #查看连续型变量的相关系数% ?$ b# i  n) h$ n% |1 `
    #属性变量描述性统计6 f* w, M7 l1 k, ~5 m1 o8 _
    windows()
    + _, l0 W  u8 [- t2 jpar(mfrow=c(2,3))                       
    & }, `  l/ O/ |' j" H+ s" T. \boxplot(price~dis)          #每个属性变量关于响应变量的箱型图# f2 Q) H8 M8 \$ c5 m( E
    boxplot(price~wuye)                                                                        ; g! U) }3 Q' S; c
    boxplot(price~fitment)        3 r' h* K' Q+ z  \
    boxplot(price~ring)       
    * o2 O; [8 V# y- U' `9 W4 w, Aboxplot(price~contype)1 v, X, ?% t) M7 }) W

    & G) R6 N1 ?) t/ x& T$ z- Q- L

    - N! v. b* G% r' Q; C: ^" k: T" [8 {
    + w  _7 z" f/ U3 a! K7 m

    ! _- O3 ~( ^% I+ Q) J7 g" e##模型建立8 v3 W0 o: s# V* v
    : E5 C$ X- o' u& g7 R

    6 x0 z  D& Q; ~+ U( Y- c#在方差分析模型基础上加入连续型变量
    # C& d% }9 D( N8 B" z3 Qlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)2 b( _( w9 _1 I
    anova(lm1)                #方差分析
    . g7 b; e3 X9 D  A3 x# nsummary(lm1)              #模型参数估计等详细结果  w" T2 e. p4 `! }
    windows()
    . C) d9 ~4 N% L) \# v  B, qpar(mfrow=c(2,2))
    & d  d& z/ l( y+ c  M8 n1 ?2 Wplot(lm1,which=c(1:4))    #回归诊断做残差图  }2 V# @8 L$ B1 S

    4 e* o: k( V; e- R$ c/ I* m9 t( C
    2 H$ ?2 m2 {* Y! P) t& r- ~

    , Q9 h+ L$ w4 O, R1 e5 l

    2 c  t+ O8 o5 v2 T##变量处理
    & d4 E1 w2 [' T0 P) v  m- P
    3 _7 q  [. p$ K' J( d" i- ~
    / X$ Q  d8 u: J* p$ |  a2 l
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    ' O' K; w$ L* q$ n- I/ k4 ~- D##对容积率的处理  ?9 Y+ \( M* Z6 A8 `" @
    windows()
    8 Q: w# ?! P  Dn = 48 q4 A& R* ?8 P* g
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    5 L/ `5 b& m' ]" A4 e) s2 Ltable(ceiling(rong/n))                                                #容积率各分组下的样本数
    & ]% o4 \# w  p+ sronggrp=1*(rong>n)                #进行二分类3 G8 h; I- T6 W
    #ronggrp=ceiling(rong/n)       
    % N3 d2 [- V% G$ I1 b/ g) `. b7 itable(ceiling(ronggrp))           #容积率二分类下的样本数2 E) t* M5 T' I$ w6 A
    windows()
    7 `( S$ L' O+ L, j# q" t, xboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    0 K1 M' Y+ X2 Fwindows()
    ; P8 K% r* O9 spar(mfrow=c(1,2))
      t, u6 h6 x4 n3 Q& |% pboxplot(rong~ring)                #容积率与环线箱型图
    5 O% q7 w: i- y- e& @: {, Iboxplot(price~ring)               #房价与环线箱型图 8 U0 [2 p; ]- L" p9 J' i  U
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    - Y2 t: F" E) a4 l1 }' hlm2=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)  V# U; D6 e0 f, W8 m
    anova(lm2)                #方差分析
    7 {/ S$ y' W0 ?- l) _: Q" V+ |, Esummary(lm2)              #模型参数估计等详细结果. x- {" K/ G$ X* M) X5 U, L
    windows()0 _. Q3 _7 c7 |# I1 J$ [
    par(mfrow=c(2,2))) ~/ b* p: c3 J. O$ c8 v2 l
    plot(lm1,which=c(1:4))    #回归诊断3 e  p( f0 B. E, C% J4 d  O& E

    7 U) i8 p# w+ ~$ m. ^
    ( S- Y; ~! O; b  N) G
    ##对小区面积的处理
    ) O% X' P8 A  k( @, M$ Hsummary(area)
    ; Q: ^$ d+ C; H' l4 c' vplot(area,price)
    / o+ t% q6 e+ Wwindows()' b# J# p8 m7 D' G& U
    n = 150000
    % T) X) \0 h0 }6 X6 d& w1 Y+ M/ [boxplot(price~ceiling(area/n))                                                        * a1 C) ], q) P* S3 _/ N. k
    table(ceiling(area/n))                                                                5 n; [8 O% ]7 t! X
    areagrp=1*(area>n)
    " W: o4 [! a. f% i. j) s3 ^4 ?table(ceiling(areagrp))6 l/ t+ w5 j; Z1 R8 g
    boxplot(price~ceiling(areagrp))5 \5 Y, o$ {% E! l6 d7 \
    #加入小区面积分组的模型
    : T, c3 f1 [0 O5 |, V7 Y( H& v3 |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)( ?. F- S5 P+ m5 x8 W
    anova(lm3)                #方差分析
    ; _( f% k- ?8 X8 d# k; @6 B. Nsummary(lm3)              #模型参数估计等详细结果
    * g0 x1 Y, k9 g- o; g* q# [windows()
    1 L3 w2 ]) w0 {9 o, z% Mpar(mfrow=c(2,2))4 a0 ?6 W4 c2 _# z8 f
    plot(lm3,which=c(1:4))    #回归诊断( \$ r( l- b! w2 Y, G# ^8 v

    " _5 Z- {4 N) T' `- {7 J

    ' l* d! R- c2 N4 B+ \##变量选择  p1 u; @+ Q' U9 R! K! B
    9 m! X6 B+ F- l* ]( s, Q4 N  G3 H
    8 e5 N, n3 S& H3 d
    ##AIC准则下的变量选择- J+ C( @" K* X- F" ~8 z
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic5 w! L, ?9 K% B8 f7 j
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节$ M2 \; R6 o6 {1 }5 Y9 U
    ##BIC准则下的变量选择7 J' L1 P5 y6 \- A4 S% A- E- A2 y
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic  J* E$ s4 T1 v, `8 S2 D
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    5 m* ?' T' n* Y5 }. y" b2 e- c
    % M7 Q+ c% q7 v

    5 H: a9 ~: U7 N0 Y#选用AIC准则下的模型进行回归诊断
    & U" a. B* s! {2 O4 d' R. ]) cwindows()( `* j" l2 J9 N# g* |1 B
    par(mfrow=c(2,2))
    3 R7 b" E3 F) p, gplot(lm4.aic,which=c(1:4))  
    5 G* A- @# a9 q# ]  s+ k) P& F& Q2 g# Z2 f3 S+ k) d

    7 O7 ~" o9 ^! h" Z' t$ [: I! g; t, F/ p6 b

    4 q/ f) r; Z8 t2 {8 r' _2 n##数据变换* Z% e) F4 w+ A3 w* ~7 _( p- ^
    ! o, ^9 ~$ ]; h. A& {4 y: S

    2 v! a+ {, a1 j) v/ `: W6 E#box-cox变换
    . J9 A: T8 O9 z; zlibrary(MASS)
    * A1 J1 k* V9 s, p, H7 S* V& v) @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))
    8 M$ w" _. S9 [# e- J. GI=which(b$y==max(b$y))  #定位似然函数最大的位置
    ' }4 Q3 c* E8 n' O2 E) l  xlambda = b$x[I] #精确的λ值
    ' e+ d& a* w: y5 Z8 G3 q3 D- y#λ接近于0,为模型简洁性,可以直接进行对数变换  K6 ]' v7 z1 p& a2 ]8 p  d: ]
    logprice <- log(price)& {1 W* U7 s" L1 @
    hist(logprice)$ e  g& M: m1 l
    * x( `: K8 `' \# o6 N
      e4 @  M$ u' }% L2 D  Z
    ##最终模型与诊断& C$ Q- G+ K/ _5 Z3 ^/ d9 @( n
    . M8 O4 E* t1 f( `

    * Q- k" t) a- f# H; Flm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    # r2 {! B) j) \( u! Hwindows()1 ]6 l) ]5 w- J1 _
    par(mfrow=c(2,2))
    7 g% i3 u9 W9 h  E9 g" b6 E3 nplot(lm6,which=c(1:4))  \! `( j+ q' k! ?) b
    anova(lm6)
    7 n2 Q3 T" F: b* i/ N  F7 Msummary(lm6)
    ; `% o% M; ]. w, k' N) M! }
    ' v. Z5 k6 R* A9 J. Q0 K7 D& Z; C) t2 Z1 p! p
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560& v4 P, Z3 V6 O' u; d
    & I0 X: b8 T/ [7 W& V

    ! q4 ?# b4 u# E2 n) c5 J3 o
    2 J% A) U! W4 b9 @+ [# j+ _) z, Q" |. M  |% C
    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的分析没有
    1 G2 p; P" F* H
    7 u* p- ~; A% _! Y& D- P

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    7 A& O% v+ ^% L, H2 B$ @6 ?& c" x2 ?1 ]7 {! Y6 N* b5 f

    点评

    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 ( m. G& N8 V; c  V' y) b: P
    太好了,又认真的看了一次,发现自已差太多了
    # A$ c  q5 [2 ^2 G
    我每天会发一些好资源的
    2 X- B7 z2 A# g7 ]
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 3 X* U  k+ |& w: D
    一定会认真的看看,发现这是R的,有python的分析没有

    & u( u( t* C3 j0 r7 w有啊
    $ k+ V- `  `3 Y9 ]8 E, S
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-24 21:12 , Processed in 0.414371 second(s), 78 queries .

    回顶部