QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    / k" b' m( Z% v0 K2 @

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。1 P- q6 g; N' u: o0 b# E6 [7 X
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ( g. c+ `2 \7 v2 X. ?1 T# N1 c
    行描述性统计分析,各连续型变量之间的相关关系如下:
    9 Z9 f- J8 [5 U1 i$ ~3 d. ~0 r' b1 `* H$ [" Z3 Y/ h# M8 B8 b

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

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

    8 W3 K( f0 ], q8 Q

      H3 ^& x) `9 R0 O4 j
    7 n/ p4 p6 q9 M, d4 O  i最终模型残差图:
    / Q% K9 h/ k1 I3 C. m
    0 g+ g. @8 N2 G- ~$ u
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    * Y  L9 K2 y3 a# a1 s* n/ ]7 D- P属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    ; @' z( t) F; p; u- Q- s( D9 e8 I% G属性变量的具体影响在此处分析略去。
    4 ?4 Y4 x9 K0 b- N3 C6 K( A( \连续型变量的影响主要为:
    1 p, c/ w3 @: u$ P- B! |/ F' I 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    ( L: U" V2 b0 Q9 T6 J+ F 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;7 X, T0 M0 f% V+ }9 |1 T, `9 u
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ; Y2 g5 K( Y0 h+ _$ z" i" b 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
      n3 c6 \& ~- K9 ?9 S# e% i3 ~ 容积率与环线之间存在着交互效应。
    ( p6 d7 o/ E1 [% f  Irm(list=ls())                                                                                #清空当前工作空间
    ' I9 E$ Q. N6 M" ~: ~+ csetwd("D:/回归分析")( B8 m: C8 q9 T5 J0 {
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    - m/ D+ ?+ P1 y, s6 gView(a)* _+ `2 s2 U. m9 W0 T8 S
    attach(a)
    6 F! n: R9 C: k( h) ~# O9 M( tnames(a). ]; X; _& K, }2 A3 c+ O

    - f$ I$ w/ C# @" ~9 {9 e  R- ~
    & |3 w- F1 d: l7 G
    ##描述性统计8 W! F3 n; U, F$ K" D2 n
    % y. E; O0 F6 [. n* ~% l

    3 w7 o; R2 m" b#未做处理的响应变量分布情况
    % e% D+ A+ _0 t. ^3 f3 Lpar(mfrow=c(1,1))0 H3 |5 N7 K$ B0 F/ F
    hist(price)
    0 k$ l2 T/ V! x" D# nsummary(price)        #查看响应变量的描述统计量* Q( a$ z) b7 w* j+ S8 Q
    #连续型变量描述性统计
    / K& ^8 e; m3 u" k/ pwindows()
    ) ]% E2 I8 ]- a: ]pairs(a[,c(6:10)])    #所有连续型变量间的散点图0 g& i) q% a4 [
    par(mfrow=c(2,2))       
    ! s6 o& q4 S5 D/ E. Qplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    + t+ R3 V2 c7 Q. i( Eplot(lv,price)! c" q6 d' I( b9 i9 H2 f4 c
    plot(area,price)
    3 e  g9 w2 P  R* \plot(ratio,price)
    * n7 z* R* U( Z! X* ~) n/ osummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    8 ~2 B# g0 S5 P9 _4 r, u' Kcor(a[,c(6:10)])      #查看连续型变量的相关系数
    ) d1 i. @' l8 Z8 b! Q#属性变量描述性统计( v. j3 b0 g& _8 S. ~
    windows()
    5 C- _4 k! b. M+ i0 ypar(mfrow=c(2,3))                       
    4 u9 @+ O+ C- A1 Bboxplot(price~dis)          #每个属性变量关于响应变量的箱型图* C7 ?' S% h1 U2 P
    boxplot(price~wuye)                                                                       
    8 H- m0 f3 K: y! iboxplot(price~fitment)       
    2 \$ H- O* w6 `boxplot(price~ring)       
    % g- F- R# i; x. b3 v- Nboxplot(price~contype)% s6 E/ }7 ]6 ]- c8 V! s$ o8 v
    ( i3 t* S$ ~1 `4 Z+ F

    7 y5 p5 p2 ?- V
    ; R% P& C; N4 `4 s

    + m! P0 T. ]  x7 f##模型建立
    ) |7 x7 I: m8 {! ]% D. \. s
    # m  e; S  _. k- T; _7 b- X5 P( U

    * E& h* e" h) z' `#在方差分析模型基础上加入连续型变量
    : V* r2 x; D3 C# G0 c+ alm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    9 I! t: |4 G; ]  t# Oanova(lm1)                #方差分析
    2 y5 O$ n7 v+ B- P% i: H" dsummary(lm1)              #模型参数估计等详细结果0 `* L$ J+ ~' Z) n
    windows()
    4 k$ ^7 R$ B& x- U: mpar(mfrow=c(2,2))& Q  O$ _3 Q4 J& |/ j
    plot(lm1,which=c(1:4))    #回归诊断做残差图. R$ p' I" d" q2 g" ^2 V  V

    / S! o$ X+ K, {, t

    $ T2 _: R) w$ [; M$ U# p
    5 e/ i- R- d" @7 w

    + ?0 V  }' b: l3 v; A##变量处理
    7 ^" n8 N. `* U# a& L" f! z3 y2 x1 Q7 |1 l! u1 s# q& q) q
    ' t: s1 E8 A: e. ?, b
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    " {8 U% X3 F0 q3 a  w! A##对容积率的处理2 k! ?- f: f5 F" Y/ a  i
    windows()
    ' b( N, T* ~) q7 S( p% Hn = 44 @7 J0 Z  ~  ~  \
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    ) ?' J. Z; z7 [" D) @table(ceiling(rong/n))                                                #容积率各分组下的样本数$ I3 [+ x! x1 T3 F) ^4 e
    ronggrp=1*(rong>n)                #进行二分类
    1 o2 V' j& D' J6 C# \#ronggrp=ceiling(rong/n)       
    $ }4 T2 A/ B: jtable(ceiling(ronggrp))           #容积率二分类下的样本数; |5 {* _' a) ?1 R. o
    windows()
    0 t9 i5 z( r. A% }, P8 Jboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图8 ]) M6 K( t$ j& q4 F; O6 m
    windows(): `* j  Q" ^; G, y7 o; y2 o
    par(mfrow=c(1,2))9 D" t+ q: A0 r' m3 c* U
    boxplot(rong~ring)                #容积率与环线箱型图- _* j- T8 i8 W( |
    boxplot(price~ring)               #房价与环线箱型图
    2 C, B8 I% ~/ t4 H3 a6 Z#加入容积率分组和容积率分组*所在环线交互因子的模型
    . w3 Z9 _9 V* l6 D2 }0 E, K3 `4 Jlm2=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). k- B) a/ P, _" f5 e9 c
    anova(lm2)                #方差分析+ i& @1 E* l+ P: C
    summary(lm2)              #模型参数估计等详细结果
    5 T8 q% n5 }& h( m, iwindows()
    ) W8 _) \, q& C' S# j! @2 Fpar(mfrow=c(2,2))8 o5 s3 X! x9 `: A; V; {
    plot(lm1,which=c(1:4))    #回归诊断
    ' v+ j) R3 W) N0 `1 L9 r5 B/ p& U  Q9 \

    0 P$ `& N  k0 j1 @( V& P##对小区面积的处理
    + ]1 W& D4 Y. n8 Psummary(area)
    7 c. s0 K. x* _plot(area,price)
    * o# m3 o( `1 Y- ywindows()5 h8 E  ?7 s) }* t
    n = 150000
    2 \& a7 i( O3 E/ J: P8 ~3 mboxplot(price~ceiling(area/n))                                                       
    4 o. r  n3 ]- O: [$ P1 stable(ceiling(area/n))                                                                ) w4 C/ L: @0 \$ V! Y4 E% `
    areagrp=1*(area>n)
    $ y: m( s- j5 |6 K6 ~* H- Q9 K' {3 Ktable(ceiling(areagrp))1 Y) W6 R5 O( P
    boxplot(price~ceiling(areagrp))
    : C/ T" F( m# S+ a' u#加入小区面积分组的模型
    , _7 |8 M# \1 V/ ~$ @; w! Glm3=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; Z2 q1 \& v
    anova(lm3)                #方差分析
    % H6 E- E9 u7 y3 [( x, }' X! _summary(lm3)              #模型参数估计等详细结果1 i* y1 m" T' L: T  z
    windows()
    4 A) `7 e7 I" m( G; ?+ Ppar(mfrow=c(2,2))4 W4 [$ l9 j4 ~0 Z6 ?: C
    plot(lm3,which=c(1:4))    #回归诊断! _; V6 }* T3 N' K! l& `; {5 v

    ( U+ j8 R6 }' E8 U9 v: A# j* F: b
    3 Q3 ?7 W1 E' s2 ]! k+ [  t4 |% V! n
    ##变量选择
    1 I, c* m8 n, k% g  H6 ]! f$ h1 G, j+ `
    ) x( \6 Z% s& u& m
    ##AIC准则下的变量选择# c+ Q; _, A+ ]8 m
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ Y0 O1 t, q1 r8 k: Bsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节9 I, q7 v9 O# Z1 M' Y) ]8 g/ `
    ##BIC准则下的变量选择8 @/ @8 m- O8 z9 a" S+ I; G- m# s
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    # q. \& e1 g1 f6 rsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节- M( G- x: Y) l3 T, b7 I6 A
    8 d/ s* E& f/ H1 Q
    : c$ m% f( O+ l* _0 j- N( z
    #选用AIC准则下的模型进行回归诊断
    * s0 O7 {7 X! }% l/ d0 U& Rwindows()& _, F) M9 J, x' y6 T6 y$ S; @
    par(mfrow=c(2,2))
      f3 R5 p( k1 t. t& cplot(lm4.aic,which=c(1:4))  - K5 p5 A/ j/ p$ D2 M# ^8 B" I

    2 d& D( C, _# g+ }/ _$ D: K
    ' b& I% ?, k1 p. j' f0 M( i4 r

    5 d8 Q5 p- |/ z8 S, b8 C( H
    5 G4 q* R$ k" K
    ##数据变换
    9 v2 B  D: ~* u: n2 m- ?% r9 P% V5 ~& ^4 _( J
    / j2 y7 ~# X7 j3 R" J
    #box-cox变换
    " M+ d" c4 l7 r2 W4 A! p* Hlibrary(MASS)
    7 h$ m" S, x5 _1 i( Z. F/ g1 Tb=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))
    % q) u% a2 o0 k  B" n. a4 {( z; pI=which(b$y==max(b$y))  #定位似然函数最大的位置
    5 H2 K! r# |  f/ ~lambda = b$x[I] #精确的λ值
    $ ^* m5 F+ {/ s7 u. A8 C/ y% a8 Z- q#λ接近于0,为模型简洁性,可以直接进行对数变换
    : g0 b* \3 g, l, ?- wlogprice <- log(price). Q1 ^& A( O( Y0 s4 N8 V
    hist(logprice)
    & n0 Y: H5 N( L' ^/ q4 o1 Q: j) z$ N. A' Z
    0 P2 A; B1 E+ z# O) h3 I! x
    ##最终模型与诊断
    $ j$ o9 ~6 U9 M/ e+ B( R8 U0 z8 _2 A% U" v! q  r
    ! Z4 _' b& y- K* f5 Y
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)" `- T+ _( K2 d/ E. j, X
    windows()
    - X- _. f+ a* zpar(mfrow=c(2,2))
    1 m( n. S* F6 S6 fplot(lm6,which=c(1:4))% g; Q0 Z, b8 f1 w: o& Y8 D3 H. z
    anova(lm6)
    # J+ K0 @0 G6 ]/ R$ z/ Q. Bsummary(lm6); h* v" D6 e" y
    ( F1 I5 C/ I2 a+ @/ s* R

    6 n, P5 [& s: P$ S' l0 f* n5 X请关注数学中国网微博和数学中国公众号,联系QQ 3243710560! r  g! s3 m8 k/ P

    : S  N- N- Y- T' x$ X% {/ H+ e& H" {1 D4 U* @
    0 q# \- D3 k! I1 E
    - I5 \- _5 p, u$ F* k4 W8 j
    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 o7 b" S* S  y" r! D  B/ Y

    4 V* K2 p$ b4 H$ t, N! u' @

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    / l4 q2 O$ G* T; r3 a% m) m, j- O+ x0 s5 k, A

    点评

    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
    ) c- q2 r" v- ~& {太好了,又认真的看了一次,发现自已差太多了
    + `/ x) c1 v; R3 Z& a# H
    我每天会发一些好资源的
    . y! O2 E4 L6 v* `- M
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    * ~; x/ |+ `1 x一定会认真的看看,发现这是R的,有python的分析没有

    . z& N0 M" z8 P; i- _有啊+ T5 q/ ]/ Q) W# M* S
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-12-29 03:15 , Processed in 0.789748 second(s), 79 queries .

    回顶部