QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    4 r8 N4 X. \. f) I  P

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    : d6 _! a9 @$ [0 D  f这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    * o! f3 y6 s! R9 q! F
    行描述性统计分析,各连续型变量之间的相关关系如下:' P) p/ Y* ]9 u% i4 l/ k2 L
    0 M0 \; @$ R9 H8 N: J+ z

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

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


    - l1 B7 {, N' X1 Y5 a$ l3 z' r2 B+ e0 _* d1 P7 {( F- W# N

    + e# J0 B7 ~+ h2 e# ]最终模型残差图:
    7 ]& R; w) I- W% a8 f- ?: V  @% G; j- I# A3 I
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:  B$ C/ X8 t# j+ q# A4 X
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    6 `/ ^3 _1 i8 Y属性变量的具体影响在此处分析略去。
    8 m; C, t3 N6 W) L8 W# \连续型变量的影响主要为:$ {8 d5 F1 Q7 g7 U3 A
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    ' o% a3 {" L9 J: h 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ! g+ A/ @5 j; A) g3 e  O8 L" P同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    / Y, \! n! ^! E. ^; d 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;# X0 z4 k6 L/ z3 H3 y7 @
     容积率与环线之间存在着交互效应。
    ' _* R+ M# h4 c; B/ ]rm(list=ls())                                                                                #清空当前工作空间
    ( l) a' S/ ?# ]2 H$ Gsetwd("D:/回归分析")
    . q9 g/ C( m8 w: q5 j. w- y' ma=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    & g5 C4 T# l# E+ H5 {# p5 SView(a)
    ' Y4 T& ]8 A( aattach(a)5 O* D7 q) l( h( f( p* w
    names(a); o% b4 V8 Q3 ^* d. e
      h1 \' y6 u" ~: i2 I+ {7 c; t

    * e% |4 o. ?- n+ n$ L& O) S0 m##描述性统计: {/ ~' `* P4 u' U

    % V% c5 j& U0 L7 _+ Z3 Y1 w

    3 ?$ T( s: ~( D. Z#未做处理的响应变量分布情况
    4 q, u3 _& }# e9 opar(mfrow=c(1,1))
    5 H4 e5 f  `0 t/ D: s1 \# fhist(price)
    % K9 H. p8 G0 h9 p8 w) Gsummary(price)        #查看响应变量的描述统计量
    ' y( n& F9 ]/ c8 u5 v#连续型变量描述性统计! d/ o+ l& }! f6 ~9 H/ ^& g. A* X
    windows()
    * F2 ]" o, ]- Z  _+ t# cpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    $ k4 M9 D# [: Rpar(mfrow=c(2,2))        , p6 O8 L7 t3 a/ l8 m* u5 d8 q
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图9 ?" S: W8 L8 f- v2 W; j0 C- k
    plot(lv,price)
    . W3 J1 [: ?" o; H2 M: C- T" jplot(area,price)
    / T1 m1 {( ?4 h6 [( ^$ Mplot(ratio,price)
    $ C9 O2 @* ?; H, [summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    % @& ?$ u: u8 Xcor(a[,c(6:10)])      #查看连续型变量的相关系数
    . F+ o* S# z) Z#属性变量描述性统计
    : t1 C) `0 q* }0 j8 I2 e2 gwindows()5 [" i, M* W6 J7 d" R: }
    par(mfrow=c(2,3))                       
    - x% h" o* k3 [, Q9 rboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    . u- }% l/ H4 r9 `7 I9 B1 w# Eboxplot(price~wuye)                                                                        ; ^; `* n8 }" x0 ~( I
    boxplot(price~fitment)       
    & g/ i+ d# z& e+ h, A) [boxplot(price~ring)        2 l/ \3 W3 i* O, D' |
    boxplot(price~contype)
      {% l# P% w- I- [4 M% E. v$ Q+ [2 a- ?# p9 u) R3 ^3 j$ R  f  V& n
    , T# A+ Y# j& H$ ?

    ) {; a' i8 C% W2 E
    # F5 c; }6 M0 E" B
    ##模型建立  n0 ?4 e* w: C& Z$ U  a7 |

    % J7 R: s5 \9 R% t/ Y  H

    , ^+ j  P1 F( c, \  |#在方差分析模型基础上加入连续型变量) P0 G$ ?) M: Y7 [
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)1 w. \- v/ y" b7 P5 ]* D8 N. R
    anova(lm1)                #方差分析5 r* E9 S* ~  t( }7 f5 K0 m  e% z
    summary(lm1)              #模型参数估计等详细结果) h3 X2 h; U3 m1 H
    windows()
    0 S  J8 L8 r3 T, rpar(mfrow=c(2,2)), b& d: i, \+ n- a
    plot(lm1,which=c(1:4))    #回归诊断做残差图
      f3 p& y) d( |5 O" z1 @+ \" ]$ W" p/ I, g2 r& v

    ) P6 q2 G6 g/ Z# ?( E" {
    " W9 S% r) S" L" b( g5 [+ r

    6 ]& o) F  v/ j! g##变量处理! G3 V$ W2 H5 F2 A1 }
    " [4 S6 g$ h# c; o

    / i  m8 I( r% i5 K( t###对不显著的变量采用分组的方式希望能达到显著的效果
    9 M/ N- S) V: F+ _  V& E##对容积率的处理
    + I7 t; M# P0 lwindows()
    9 |# i4 e& B3 T) ~: qn = 4& S2 Y( q/ s* A% U8 s$ m
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    : ~; q1 i  ]& |, {# A# stable(ceiling(rong/n))                                                #容积率各分组下的样本数6 k7 P1 a8 R! v9 p* N% K
    ronggrp=1*(rong>n)                #进行二分类5 W0 u- S! j, o! Z& V. @/ X
    #ronggrp=ceiling(rong/n)       
    2 s! x% P# a# g9 }table(ceiling(ronggrp))           #容积率二分类下的样本数2 o3 h( T, b  H6 a0 @6 ^
    windows()- ^" [8 H. c. Y7 W
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图* q  _5 y  a/ d5 \7 F
    windows()
    $ k4 T# X6 ~" L& N: zpar(mfrow=c(1,2)); ?1 V- t+ @9 N
    boxplot(rong~ring)                #容积率与环线箱型图
      `: `, j( q) D1 M/ k: }: D, F* ]boxplot(price~ring)               #房价与环线箱型图
    3 E/ b7 q7 D' s- ^8 E0 g6 X! \#加入容积率分组和容积率分组*所在环线交互因子的模型3 C5 [4 E3 C  s# R$ S' O
    lm2=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 A0 |! A, Q% `; a# \: L5 [anova(lm2)                #方差分析
    % l1 k2 i% v" E$ w. ~summary(lm2)              #模型参数估计等详细结果
    ! w3 r2 s$ R) L4 j" Uwindows()
    ( M' I9 b1 B. G$ E: D' A% r: }' Qpar(mfrow=c(2,2))2 x: x9 J& b. |& L2 C. e7 ~0 P/ u
    plot(lm1,which=c(1:4))    #回归诊断4 ^7 b( j9 Y. l9 ~0 [, j
    3 ?2 ?. f, d" ^9 T4 T- U9 F: q$ p
    * G- @9 o) C1 R: p1 ~
    ##对小区面积的处理
    9 x) ^- Z: H1 [summary(area)
      i: s* y9 b; ?" \( ]plot(area,price)
    * U' @5 N- t) G4 N/ r& ewindows()
    0 {4 n5 f- v. Z4 e5 f7 D) @8 u# z. Xn = 1500008 l- v; _, F( r1 i1 H
    boxplot(price~ceiling(area/n))                                                       
    1 R* t. j$ O0 ]table(ceiling(area/n))                                                               
    5 n$ r. f  r9 g3 o) rareagrp=1*(area>n)
    , {/ j6 K4 i( D/ P2 Etable(ceiling(areagrp))  @5 R2 x' X. J: v1 K
    boxplot(price~ceiling(areagrp))2 x3 _6 s! h3 O0 S  Y- `
    #加入小区面积分组的模型  s! }2 @- I' B  V( r) Z- Q
    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)
    5 @4 p2 t( O8 e5 ~3 u" Q4 Ranova(lm3)                #方差分析
    - [6 y& P  J% f& D/ L& \, @summary(lm3)              #模型参数估计等详细结果6 u/ N# F4 B1 q4 Y
    windows()
    : _& g3 ~# a# L" x8 I# O# Qpar(mfrow=c(2,2))% h+ i. P" D$ X# O* t7 E
    plot(lm3,which=c(1:4))    #回归诊断% l, T% |2 Y1 H: ^9 B& ?( v, t

    7 Q, ]* i  }6 C2 w& l" A
    9 y& N( @5 [! D# Q
    ##变量选择7 w$ b# y5 B' D+ X* e. g

    / @2 i3 c3 G  j1 J% u/ x& @  j! y
    ! C4 K: H5 t8 C6 Z! T
    ##AIC准则下的变量选择! R$ k( A( O$ H
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic# n; O$ e( n' I, {' n8 a' ^
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节, ]1 f; l9 E2 ~1 O# L
    ##BIC准则下的变量选择8 V$ _4 a' r8 _# M9 M
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic1 ^. S3 W- T; a% D9 ]7 E
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节  r. U( K. P0 w: D0 \: N' C5 D" u0 P

    ) V5 z2 h) L. _# L

    / r+ B: V; R0 T" L8 M9 V#选用AIC准则下的模型进行回归诊断. y+ [: M5 Q& l3 ]" {  Y) M
    windows()
    $ F( Y- n( o' _6 I* e6 w% Dpar(mfrow=c(2,2))( ?+ o3 K, C2 F: Q; f
    plot(lm4.aic,which=c(1:4))  6 ?" y5 J; T$ C# d
    : M0 S" I3 N! F- s* y

    9 Q# f9 U8 `5 j" C0 e- O$ e0 X1 a' E$ ~4 F- @: V& H/ _1 k# _. u0 c
    - ~% R$ F1 K7 l
    ##数据变换: A' S; v  n0 d6 ~+ X
    - t8 O2 N0 t  H" H# F
    ' K/ A, w2 L. m$ ]4 s& ^, Z% z8 U
    #box-cox变换
    : N2 G2 l1 {( p1 Hlibrary(MASS)
    ! }% K7 l% l- J+ \' Z5 z! a: b2 qb=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))
    0 A+ d% s3 X: D+ J) oI=which(b$y==max(b$y))  #定位似然函数最大的位置( e# h' [- w0 I
    lambda = b$x[I] #精确的λ值8 @( J, x% Z4 r+ P( U* X
    #λ接近于0,为模型简洁性,可以直接进行对数变换2 e; {+ @8 Y- a0 I9 _* u
    logprice <- log(price)" O6 w' {0 r9 ]
    hist(logprice), ^" L9 B# {0 R+ Z
      L: I, E# T" {4 c: D2 w
    ( ~3 z) ~8 }3 m. S% y
    ##最终模型与诊断5 R* m" y! I3 G1 L# i
      k% T$ Q! q5 {* Y7 [, O

    & r+ I% B1 ?! ylm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    ! V  U8 G1 P+ L. X6 c& K5 g$ t* k* uwindows()9 U# ~% [6 p: m4 |3 l% _
    par(mfrow=c(2,2))
    # K# ]  c  v2 ~, t$ t) n; Kplot(lm6,which=c(1:4))" W  L1 x9 k5 B4 `% z  `
    anova(lm6)
    3 n0 X, K+ v. X) S: vsummary(lm6)
    . x2 H1 l2 I4 R, Q) l7 ]- `6 [3 C) F& @1 {) E
    4 ]6 B* ?! k, D
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560. `- F  A5 K/ I6 D# X& g

    0 A! O9 n6 u8 b3 {4 L
    ; c( M1 h) m# ~/ a
    6 V' p) x  `4 {" t
    # y% O2 C% ]' ]6 E0 R
    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的分析没有
    , u4 Y% q( t( R1 Y7 z1 \2 K
    $ k2 R: h. @3 [' b8 X* v$ C

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    0 P1 b' ]  t) ?) J6 v9 \1 d/ n$ f" P% i" C% S( W

    点评

    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 8 _5 ?' d7 a! A( u2 G
    太好了,又认真的看了一次,发现自已差太多了
    9 e: @% q3 c: j" G1 K, ~+ l
    我每天会发一些好资源的3 C: }8 u! R7 i/ y) k
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 0 O7 A0 f! }$ z% Q! @% Q
    一定会认真的看看,发现这是R的,有python的分析没有

    9 n( m1 x& o# C7 ~* B/ N有啊
    . S* e: e7 G+ |, I$ ]$ X
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-12-8 21:55 , Processed in 0.602680 second(s), 78 queries .

    回顶部