QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ( I7 w5 l3 z4 {2 _8 A, k1 ^

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。* r+ x3 D/ y' j/ d
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    % i2 F" E4 d4 r" X( W行描述性统计分析,各连续型变量之间的相关关系如下:
      G& r7 q) e- S) r2 ~# i6 A2 V3 D8 ~+ ?$ i$ |# F9 w6 {6 F

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

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

    ) U. [, P) M6 ?8 H
    # t9 l9 m8 g$ Q% k

    , M$ G2 t& _( Y" b* h: ^最终模型残差图:# }+ a4 P" r& R5 r" J7 S9 U7 ?/ L! h
    7 d! T2 m4 w/ P7 g/ [
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    ) j8 n% d" y" @! }; N属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
      G+ b" |( h0 c$ X8 S6 A2 y+ T" s属性变量的具体影响在此处分析略去。
    7 ?4 D! G; \2 A连续型变量的影响主要为:
    : E& `, Y' v# ]; w3 S6 Q0 g 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;5 o. W; q4 ?! \, \  j9 ]! I' _
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;  [& O6 Q: F6 k5 `: |' v! ?
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:, y( M' ]' W. }" M+ A8 `
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;5 L5 P3 q' H' k  O6 t: {/ n
     容积率与环线之间存在着交互效应。& i6 [: v; b/ d; }
    rm(list=ls())                                                                                #清空当前工作空间. t# r9 R) U7 D+ k9 D
    setwd("D:/回归分析")
    7 L3 B" m8 Y$ c5 z) i* E% ?6 R  _7 K" na=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    , m9 J2 \& A0 t1 u5 g+ J+ X( yView(a)
    6 i2 {0 ^6 p5 G. i8 w0 B% ?attach(a)
    1 G# R% q3 V! O& w" y: ^' s) Vnames(a)
    " K, X% O: K0 A' Q3 J
    & E  Y3 }4 {) U% k0 I5 E0 x

    ; Z6 i; ^: a: i# [##描述性统计
    ( ], Z8 }3 J" ]* `- U. Y" a, l8 r! `- [/ W% N
    1 f5 e  B0 e4 x9 O6 j8 _$ u, T% Q
    #未做处理的响应变量分布情况
    - C9 H. X- e+ h( {& P- |  xpar(mfrow=c(1,1))
    * k1 j" Z( o( @( C+ yhist(price)- K* \5 U5 ]- _& q3 C! S
    summary(price)        #查看响应变量的描述统计量
    * Z& i3 G2 i5 L  W' h/ Y) d#连续型变量描述性统计
    - g4 ]/ m* c4 l. ]) P% Zwindows(); H' b5 N& y- x) q+ }0 [* C
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    . s9 o. Q0 `! r7 ?5 Epar(mfrow=c(2,2))       
    - \0 }) y2 {6 y5 I; Oplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    8 a7 f3 M5 }# a# h( @  I' p& iplot(lv,price)4 s# G! ]9 Z- [; g, P
    plot(area,price)/ b8 _( T* e- {- `) W5 u( b
    plot(ratio,price)
    , n2 L2 N7 Z$ a( l* w2 z$ bsummary(a[,c(6:10)])  #查看连续型变量的描述统计量$ y5 v+ g. Q1 v8 O
    cor(a[,c(6:10)])      #查看连续型变量的相关系数- J0 ?2 v! N& [, H! l
    #属性变量描述性统计" G! J/ y' N, o; j0 s
    windows()  g5 S$ ]% C: R. o# c9 P0 _
    par(mfrow=c(2,3))                       
    8 A1 @- ^; v% g, Mboxplot(price~dis)          #每个属性变量关于响应变量的箱型图% x% F% n: b& p6 M& w5 |* u* L4 x1 h
    boxplot(price~wuye)                                                                       
    ; {, i" E9 g) oboxplot(price~fitment)       
    / e/ t( a' o4 M& {boxplot(price~ring)        ! m8 y2 V9 M0 |, d$ S
    boxplot(price~contype)3 L) y6 K+ n# _# m
    - D- X9 d  l. e5 g4 |

    7 z2 X$ t1 J2 e. P: w- S# ^, ^, D0 ?0 r' x
    . y) L/ z# T, F' E5 u. E
    ##模型建立4 r, T) z5 _! D" l  A7 B$ E

    8 t0 J- T$ D- t: Z

    : W2 |# V9 S: D9 @* C3 a2 c#在方差分析模型基础上加入连续型变量
    6 ^& Y4 H% z' s" ]" M& Z; }lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    7 J3 h  p  U4 v& x' H# ganova(lm1)                #方差分析
    & C% ^$ U2 F5 e2 U7 i$ fsummary(lm1)              #模型参数估计等详细结果
    9 _5 l( G7 ~6 g2 P6 {windows()- g1 D5 T' [, w
    par(mfrow=c(2,2))5 B, A% x5 Z& [& Z9 p: K) A
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    6 T2 L1 A. h) L/ S1 S4 K: V% X- u$ r$ M7 m9 x/ S1 Y' V2 Z

    - j/ _; V) j, O9 Q. q2 Q  R1 B2 P3 Y/ r, V5 x  Y& ^
    + u; r5 C0 }8 N* v8 \; c' }8 f
    ##变量处理
    ' F% L; S& r# o3 `* Z/ o: O! k8 {
    # w7 v) F7 I; Z
    & E* w+ @8 W/ N
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    6 h# l+ e$ t* K4 ^- x3 X2 |  U5 R; T##对容积率的处理! O% Y# l$ g" w
    windows()
    $ X0 A* b- Q) @n = 4) _  S' N- o! s  X! u
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    6 I7 G! b1 u$ ^8 C2 j  Atable(ceiling(rong/n))                                                #容积率各分组下的样本数+ y. ~( ?. l, g* F8 e% C8 F
    ronggrp=1*(rong>n)                #进行二分类+ i% v, e) l2 l. Z
    #ronggrp=ceiling(rong/n)        * P' p( @0 E, o: R; d* x8 j0 \
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    , d! ]+ _( H' A4 [windows()
    3 m' [: l4 A" h+ |boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    4 B6 @5 d+ P% @# owindows()
    & y( ^* K" Q- p- C( _# P0 `par(mfrow=c(1,2))
    ) E/ J. P/ Y: c/ Qboxplot(rong~ring)                #容积率与环线箱型图" h. q5 F0 Z" F: L1 w) ]
    boxplot(price~ring)               #房价与环线箱型图 ) x2 x& v* [, }: n
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    9 m; y0 e& J4 e' S/ E+ Mlm2=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)- r! L3 ^* d  g* G5 z
    anova(lm2)                #方差分析
    % g+ F2 D# R1 b& D5 i& a8 Ysummary(lm2)              #模型参数估计等详细结果
    % G) r1 W% u. b% Lwindows()
    , G+ ]7 f: ]8 N; V/ ^9 ppar(mfrow=c(2,2))# v" w* v0 L7 Y. p
    plot(lm1,which=c(1:4))    #回归诊断; q: ~2 D! w# e, c# A1 U, U

    7 x3 y0 Y; W% E, w0 `' z
    # D1 S9 T' H) j: G# x
    ##对小区面积的处理
    , p* @- m$ ^0 F5 W" h* j" Gsummary(area)1 E* J: d- @5 X
    plot(area,price)1 I; S  ?0 H5 M/ b2 I$ _
    windows()' t" D7 t6 l0 Z2 T; W
    n = 150000
    / u) p) i6 P, H: M( h$ kboxplot(price~ceiling(area/n))                                                       
    . ?) i$ g, h" R; t" ~% j# Ctable(ceiling(area/n))                                                               
    7 }8 C+ R) F, n; ?2 G. a- i$ kareagrp=1*(area>n)
    / O2 [* Y4 y/ f$ V/ M" H! Htable(ceiling(areagrp))( G$ u9 R9 @- `" E5 t8 Q6 c; A
    boxplot(price~ceiling(areagrp))
    ' m  w  v+ T1 c8 _# |/ C#加入小区面积分组的模型/ W3 g4 M, ^5 d& H. R& s' b, B
    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 V1 F5 A# F( s% T6 `# tanova(lm3)                #方差分析
    . `+ @7 t6 B; ~" H1 Msummary(lm3)              #模型参数估计等详细结果
    $ ?( I. u) h" M! C8 Q; r* Ewindows()% E3 A: s9 \& d& a7 r
    par(mfrow=c(2,2))( i  Y0 @7 q& ~: J' z% y, N
    plot(lm3,which=c(1:4))    #回归诊断
    ; k9 ^1 ?" |( W
    ( Y# P% s! B% {8 ~/ O. [

    3 G6 j8 o; A2 [. q. F+ X* \; k1 ~# h##变量选择
    : N1 C8 d8 D' `; `6 \' D8 @; Q) t% J7 ]; J( t; N8 I

    " O+ p2 {3 G# n9 ^##AIC准则下的变量选择
    % I  L+ Y/ o0 Flm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    + Y) `( q8 ?/ c# xsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    ) q8 g3 ?* z. T3 S##BIC准则下的变量选择# Y+ P! r6 S4 J3 R" ^8 y
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    9 S. J' P/ c/ p7 I  y" \) ]summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节* S9 ~) |' [. Z2 T+ ~+ \, V7 j  S

    ! P. H/ ]$ U$ x; E% L

    6 n; O+ a, Y4 e  l, N( p3 C" B#选用AIC准则下的模型进行回归诊断
    / r  h1 r/ k: q1 Y4 @8 ]6 J7 w% Twindows()
    + c# s0 W! s; ?5 Jpar(mfrow=c(2,2))4 J/ g# ~8 \+ d8 ?% r  m6 d0 q6 \
    plot(lm4.aic,which=c(1:4))  & M$ W/ P, l. e' I0 I

    2 m7 x( @$ T4 J6 t6 T3 q- j

    " ]# K1 D. c# f+ N4 Q: @( T3 R/ R) T0 b, J+ m

    - p2 `1 i- v( n8 U$ k0 O##数据变换
    / v% h% ]0 e7 V) B- B! L* i+ x5 K8 X7 ?. m: ]2 D: D( A
      @, a+ h# \4 \  W. Q, K6 w
    #box-cox变换  M# t0 i' `% }0 G) g4 s. R
    library(MASS)$ ~( O6 v  t/ z7 o/ P5 }- ?9 V9 a& i. q
    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))
    : X% k# O( M# Y  R. i8 ZI=which(b$y==max(b$y))  #定位似然函数最大的位置9 ?4 S# z1 s0 Q: R' z
    lambda = b$x[I] #精确的λ值
    1 p% C8 H" e: e, r; Q# Q  t#λ接近于0,为模型简洁性,可以直接进行对数变换! i  ?4 O5 A1 X9 o: X2 P$ H
    logprice <- log(price)% L! J+ Y2 g; \! F' [+ O, p$ C3 u) k
    hist(logprice)0 F! `' p: T- X& b

      u/ w. O+ z( n0 V

    5 _4 v- n2 U4 |: u+ A- `! \##最终模型与诊断
    , ~  \# A5 O- ?( B# }8 Z6 Q  P. g% i+ X5 |+ F% b* ^
    3 g: d8 z; r6 ?5 \; k9 C
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    % `$ L& ?! Y3 _2 }, u$ @windows()
    * [7 X- W1 l0 C1 c; Mpar(mfrow=c(2,2))
    1 [+ L0 H- m  v. c& S; yplot(lm6,which=c(1:4))
    4 H6 e$ ?" ?/ K4 K  Oanova(lm6)6 M7 r) S) Q, [( l
    summary(lm6)$ L6 D0 L, D5 H; U0 A
    ! L/ _* `4 j# ]/ b# A' R. [
    + J4 C5 F8 p9 b: C0 a; o& `
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560+ q9 V) m1 x) i3 s+ I$ v/ J

    / A+ C: ]. {% W  _- F# k/ w6 W$ ?2 d$ N; {/ r
    : j  I6 j& B* q2 ^; x! Y
    % M" ^! ]* N) w+ a7 h; ^
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    5 Z) m1 P0 p6 y% N! O' k- Q7 S# b0 E7 l. m0 z+ E7 e; s5 \( w0 g; c% 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

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    . W% P% |. X8 h% q* k* m! T: @! j

    点评

    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 9 F, Y7 W' l  o/ H4 H0 X5 ^
    太好了,又认真的看了一次,发现自已差太多了
    6 T7 X- t3 K9 w( @4 G
    我每天会发一些好资源的: F  G$ a, `; {
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 6 w% m" j4 A3 |  }6 A2 T+ {# U8 g
    一定会认真的看看,发现这是R的,有python的分析没有
    0 l  ~" x% W! G" W/ B4 N9 R0 e# a! J
    有啊
    : A6 Y7 W' e/ c& D5 G( q
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-7 17:31 , Processed in 0.793912 second(s), 78 queries .

    回顶部