QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    " J2 _+ I# [: e5 p( g  q. Q& C

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    0 D0 G9 q" X( h! P& H! x% h) I这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ' ], b# ?8 n6 o行描述性统计分析,各连续型变量之间的相关关系如下:
    ) [% k  r5 o# \* X4 I. G$ e1 q1 u& G) V$ h7 i5 d

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

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

    ; _" f" D% L( `/ t
    4 x6 }$ P% |7 u) g+ E
    % t2 y4 X) ~2 s- {4 [' q. ^
    最终模型残差图:
    2 h: M& M5 Y% {6 [) F8 j3 Y6 Q, E2 x! D# [) f2 v
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:# ?  ]" M0 d, X* F0 A4 Y
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    & w2 U! d3 `) w5 z属性变量的具体影响在此处分析略去。
    . `  i7 k! S3 y* a# m. l连续型变量的影响主要为:
    : o" Z% ?1 `% x8 V 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    - _3 ~8 X4 v5 r! v9 o4 i" x 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;' W4 q8 U. b4 Z4 {7 ~7 u- [
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    1 u8 C1 a+ t  }! C 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;0 H# l) r+ f4 N
     容积率与环线之间存在着交互效应。: H; ~8 _7 }2 x, t0 x
    rm(list=ls())                                                                                #清空当前工作空间
    . t7 P& P! X. y! |setwd("D:/回归分析")
    $ A: U3 X$ H7 V: u; Ka=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    4 r# M4 y& ~# p8 @View(a)
    $ N3 q5 F  B" ^9 F9 e3 i" W7 Yattach(a)
    ; c/ V% j% ~0 b$ G9 B% H1 ]names(a)  |8 B( E' w% ^+ u9 ?- f2 p3 S/ ]: ]9 V
    * S9 l. q. @5 s+ w( a0 [, q

    , A) F' ]" m/ _7 O$ P##描述性统计
    " U3 V- r; o# h4 o& ?$ ~2 H/ L# n- h. ]$ }9 |) ?; n3 x

    . @& w8 ]( @4 A, a#未做处理的响应变量分布情况
    : Y0 G! M0 K* R1 h+ \par(mfrow=c(1,1))
    3 R) P- R; X& ghist(price)
    6 x- `* p) N- ?0 m! e. {summary(price)        #查看响应变量的描述统计量5 r0 v7 I; c2 j0 m! e- Q8 X9 }3 C
    #连续型变量描述性统计
    * M" ?: e$ d4 _) y/ [/ n- _windows()8 E/ J0 Q/ q3 d1 Q5 X$ C
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    0 P1 B8 K+ W( lpar(mfrow=c(2,2))        ; k5 [  [1 y# X# `, R. p4 @
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图) Z- L, j- V6 m7 {- _' P7 I
    plot(lv,price)# a" Y+ P) o0 o. Q5 o- f) Z
    plot(area,price)
    6 A7 Z' X5 K- R& a1 w0 b  t) {plot(ratio,price)
      o6 D9 p4 b5 }4 `/ v4 I# Vsummary(a[,c(6:10)])  #查看连续型变量的描述统计量4 G8 J( q- p# H/ ]
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    % c: h' a) `) D1 L#属性变量描述性统计3 e! b$ G8 H  A* o2 m
    windows()9 o/ S! W+ P* \9 ]( b
    par(mfrow=c(2,3))                       
    & P, m# c9 k% @. j3 Y/ Vboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    , e3 l! d! G3 U1 ^7 v3 @boxplot(price~wuye)                                                                       
    4 X7 O1 e# E" ^boxplot(price~fitment)        7 w, K$ ^+ _( s+ W
    boxplot(price~ring)        ( {! L+ I# a: c" l
    boxplot(price~contype)
      \5 b& L$ ^/ G$ C7 n/ y' K" `4 X

    0 P! B& S; G0 j: @2 D- B( r$ }5 c- o8 ^

    ; B" s! Q' I4 D##模型建立- u8 P+ B1 V# y# A/ {5 {

    7 j) y7 c- T6 z' B1 Q
    $ K2 q5 l8 S+ C8 q  f, d( a! J
    #在方差分析模型基础上加入连续型变量
    ' r% c2 [4 ^/ T7 A# L% x2 olm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio). ~. m6 P% E$ |, K2 X* Y
    anova(lm1)                #方差分析
    ; A& d5 U9 r6 ]. [- J' b- _summary(lm1)              #模型参数估计等详细结果
    8 `8 C1 B& k4 R; e' z' M% _( b; `windows()  Q$ a$ ~3 G. w. _# m% Z
    par(mfrow=c(2,2))
    1 Y; j) S; N6 e8 \$ W- yplot(lm1,which=c(1:4))    #回归诊断做残差图, S+ e* ?  ~+ U& y

    6 D3 t% ~: i6 n+ f

    , `, z$ ?; @+ `! Z
    ( y* _5 C; x" q4 q3 }

    0 s7 d! B7 v) B##变量处理
    9 V4 D- F& X3 z) D) t' a5 O; {4 z
    ( W, [% K& S- Z# Z- V5 [) [
    " s1 q2 \/ K! ]' T% u4 ]0 Z
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    0 G! @' N: q, A' M2 A3 l##对容积率的处理1 d! l4 E6 f, A
    windows()3 |! E& n. ^  ?* |; i4 e
    n = 4
    : N) p$ g7 R4 V0 Y* \4 f& ]boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        & k) s- \7 l# N$ [, }' W% e) E
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    - C" E5 F  Z8 G# y3 p! _* ~$ Wronggrp=1*(rong>n)                #进行二分类5 ~1 a, }- j+ j5 ~* k3 p0 H" x
    #ronggrp=ceiling(rong/n)       
    ! Z8 F; o; k# Q7 Y6 D( X/ S# z. {2 stable(ceiling(ronggrp))           #容积率二分类下的样本数
    % B3 a' W0 W$ g: R- `: Mwindows()
    - K. k8 _' A5 T2 Cboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图4 G) m8 p4 O* [) |9 H9 o) L
    windows()0 P3 X! d9 U: O
    par(mfrow=c(1,2))
    7 h/ R7 k2 J3 \% Pboxplot(rong~ring)                #容积率与环线箱型图* d: s/ B, v% q9 K9 r/ d7 I. p
    boxplot(price~ring)               #房价与环线箱型图 " M/ o1 E' L, \. V; W* s% j
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    5 p# x/ H* y& h2 {: T& V& [% V9 vlm2=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)
    ' c" t6 H$ c& v$ Z# r. S* canova(lm2)                #方差分析
    1 o6 t1 j, C- msummary(lm2)              #模型参数估计等详细结果* c" r4 `1 {7 t; A5 d7 s+ _
    windows()
    4 i/ ~& v9 [/ O9 upar(mfrow=c(2,2))
    : q& G* z9 R) Q4 ~$ r  zplot(lm1,which=c(1:4))    #回归诊断! R! L  ]; |5 R5 V2 ^( ?
    6 D! J6 s" C& [+ `2 P& W* O/ t8 u' q
      y/ w6 z; f& Z( R& ^- C$ E3 D
    ##对小区面积的处理; P5 a! B1 l3 n
    summary(area)
    + W5 U9 g+ W) `plot(area,price)
    , u, f2 F. a- T9 Fwindows()/ o9 ?2 N% O% l, Y1 i: L1 L- v( L
    n = 150000
    , O2 N; _6 n% ?/ I5 Q" cboxplot(price~ceiling(area/n))                                                        2 D6 w0 ?+ U- n" A1 N$ ]
    table(ceiling(area/n))                                                                5 V" G! B) b" W) c
    areagrp=1*(area>n)3 c% W8 {5 W7 L/ j  ?- ^- U% Q
    table(ceiling(areagrp))
    " C! g( `* t! Q: g2 Cboxplot(price~ceiling(areagrp)). G9 y: A7 v0 h2 `) Z
    #加入小区面积分组的模型; i  @, I* o9 N6 Z% F5 V8 y
    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)
    0 w2 b1 y. r' o! @7 ~) qanova(lm3)                #方差分析9 Y# p% l. }) ?
    summary(lm3)              #模型参数估计等详细结果5 ~" Z  G0 Z0 e3 ?
    windows()
    2 v. e% O' b: ]) o3 F" P- @par(mfrow=c(2,2))
    5 r6 X" l! f- k$ c. @# Wplot(lm3,which=c(1:4))    #回归诊断) d2 I: E$ P& `& R% n1 X0 r! W

    5 j, @+ Y0 w* s- \4 H) ]

      O. m7 K3 Q0 w8 v##变量选择
    0 `/ t3 X6 \$ Y0 x
    ' V9 H8 h$ B. E% ?
      |  y: c( [# d) y; |. F0 g5 }
    ##AIC准则下的变量选择
    , `, A9 w9 R0 R: Y) flm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic/ |/ S( D# B0 y; e: g8 k
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    , _4 h. v5 {+ M% Q0 Q; B##BIC准则下的变量选择: D6 h% T4 `" H% n& u$ H7 X) x
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic$ S1 o7 e" M; B5 M  v2 K
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    6 [2 K0 a9 ]/ A4 y- k& _9 p4 K
    4 i( O7 X* ~( Y3 R' ^# K
    " m5 |7 m$ I/ U9 |/ Z* }& Y; F7 R
    #选用AIC准则下的模型进行回归诊断
    " N/ H  L1 B, `5 R* f# N8 T% p- _windows()8 O0 C6 W  L1 }+ l( K5 P
    par(mfrow=c(2,2))" |) N. n% Z8 @6 ~7 Q
    plot(lm4.aic,which=c(1:4))  
    8 E  @+ d( P- w
    7 F% S$ [1 D# ~; u- Y( q

    8 b$ y! h0 _0 i0 m) t! o
    4 O8 c6 N: |' H: B& H  J7 G2 n

    " M/ V) {  w8 ~4 x) I. m( ?##数据变换
    - Z- D: @& r( [/ t5 x+ w% x! u- j# t) w/ C  t; K

    / f% |# c8 e* F* K  v& E+ |* W#box-cox变换- Y( Y. h1 y0 B3 U6 J* b9 a
    library(MASS)9 ^8 w. p6 ~0 n6 j4 m6 F, W
    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))
    2 o* O! N3 C1 z& JI=which(b$y==max(b$y))  #定位似然函数最大的位置9 l# ]8 v5 O0 }+ _
    lambda = b$x[I] #精确的λ值
    " x* z$ v+ P0 ^#λ接近于0,为模型简洁性,可以直接进行对数变换# [( K* M" ]2 Y' C) k5 @
    logprice <- log(price): ^' ~/ ?( m6 Q0 l7 J
    hist(logprice)
    6 s7 [# X4 N* l5 |+ o$ t% Q3 K+ ]. X) i5 l5 \+ h% k
    1 T" P# m9 C+ \1 x1 @/ r+ f
    ##最终模型与诊断
    0 J" e3 i0 ^: {. Z
    ! q% \2 P: _! u& V, z* Y

    3 i$ J, Q; o) J; C* tlm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)3 p3 L) ~3 k; f2 p4 n
    windows()
    ! i$ B* }3 ~/ ^6 E. g. ]par(mfrow=c(2,2))0 C3 d# _' S, [5 Q; u! a. L
    plot(lm6,which=c(1:4))9 X! ]& I' x1 J$ i; o  V1 B0 h
    anova(lm6)# |( c: c$ R8 n5 k9 A- }4 t- v$ i
    summary(lm6)
    ! k( f+ r1 M$ G& L& ~8 t
    % `6 g) X9 [" f' z) [2 W7 u
    # C0 a/ Y% U: e- y" p1 ^, c9 h请关注数学中国网微博和数学中国公众号,联系QQ 3243710560  `1 c$ g$ X; w, B! p' x# x

    % N0 _. U7 m& E( g. {& d3 A% x$ I+ r- M+ |
    5 X$ f7 P6 r# z" W/ }4 x( v
    & h( P/ I( C6 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的分析没有
    & B! e9 K0 k+ X( P- a
    1 w) m$ A8 I  x- e, k! d) j+ J

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    9 P2 Q: }, F& B/ Y! I) ]1 `5 G6 w5 f
    7 H3 w9 @8 b1 j3 S7 L4 q

    点评

    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   o3 f/ U8 y. ~2 Z6 @7 U$ @! a
    太好了,又认真的看了一次,发现自已差太多了

    % o0 w& Z$ y4 V, P' Z$ ^1 C  z3 I  _我每天会发一些好资源的
    " s$ f. ^1 F& _% j& Y4 J
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    2 ]& p& J$ `( R6 m& e一定会认真的看看,发现这是R的,有python的分析没有
    ) P4 C, u3 N% @& [
    有啊
    % r- n! I6 f% B  O/ b0 ?
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-22 14:57 , Processed in 0.448563 second(s), 79 queries .

    回顶部