QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    - S4 W& M! f$ Y# Y7 Y3 g

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。0 Y9 i5 Q9 K; o- W! J0 a* ?/ u
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    / w5 q) E/ Y8 K' Z, d7 B+ e. L
    行描述性统计分析,各连续型变量之间的相关关系如下:3 }* ^; ^9 V) y! A8 X1 W2 @

    " n$ f  m1 u, t) o

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

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


    ; D: }5 E% r- b, ~. t; j& n4 B9 r% O3 M. L
    ! y$ ~4 e& w1 j! p% S  Q
    最终模型残差图:
    % o$ @/ x. H/ q6 |& Q/ D' h4 M$ ^+ L  F
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    , l( J/ C( R" D- m0 J属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    5 e6 e3 m% B" B, z7 ?属性变量的具体影响在此处分析略去。
    , M# i0 n9 [( ?& U- p- {连续型变量的影响主要为:
    5 [! I; U( z. q( \0 R) j 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;( a- v% \0 k1 ^2 M' U6 f: v
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    2 o3 B9 R. D4 U  S7 q8 y+ K同时,原本为连续型变量的容积率经过离散化变为属性变量后:2 F! v1 x- s/ V+ r( x; i
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    0 Z" C  z, H3 z1 {+ V6 S+ ^ 容积率与环线之间存在着交互效应。! K0 N' x, r5 V* `9 Q
    rm(list=ls())                                                                                #清空当前工作空间
    8 z/ Z! o. G. S; v$ _* I: s7 Asetwd("D:/回归分析")( \+ }, l) s) T  C" S2 }4 C: @
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a8 u) h! _3 p/ J% n0 J* `3 Z% P
    View(a)* a; q) ^* Y+ Y* n0 a2 o5 W* q
    attach(a)9 w$ {4 \9 W! d5 g: K- s4 F1 p
    names(a)
    " T* ~- B2 A; O
    & d. J8 m; P) H) a/ T
    % u: L6 A2 E/ }  r) Z
    ##描述性统计6 y0 e9 {) J# \2 s, a3 Q

    $ |9 }2 _- I3 |9 Y; d" ~* q" D
    + w, F6 ^& P1 x9 k  m2 Q0 r1 s
    #未做处理的响应变量分布情况
    3 @" Y& ~5 f( i4 i. {' C) ^par(mfrow=c(1,1))5 H0 w- h$ y/ @6 t$ y
    hist(price)
    ; J. y8 G$ B& Q9 Asummary(price)        #查看响应变量的描述统计量/ _+ Z7 a4 P8 A% r: o& S$ W
    #连续型变量描述性统计+ `4 s5 j7 Z0 Q# L
    windows()# U  U) [' F( s8 w5 P! R% `
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    , j  I; t7 K; C, O+ F4 V* b6 wpar(mfrow=c(2,2))        2 f8 `' h: |/ A
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图# Y5 P( S1 ?9 z! U7 h0 d' |$ k
    plot(lv,price)5 O8 c4 ^2 K& n2 N
    plot(area,price)
    8 W1 i3 |" S3 y( ]* _0 i0 F8 lplot(ratio,price)
    ) u4 e$ n) m/ e4 q. ~- ^' Usummary(a[,c(6:10)])  #查看连续型变量的描述统计量, h! ~4 O# i7 n8 X8 C
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    7 h* \  a- D9 X# Q. w+ D  q# C#属性变量描述性统计9 v4 k  Q' v, H8 k+ c
    windows()% L* I$ N3 o# l& B7 J( ^& j, c
    par(mfrow=c(2,3))                        - `$ D  f0 Z, p" A8 S) [
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
      K" w0 J! `( Mboxplot(price~wuye)                                                                       
    ! G6 e8 C6 c1 U/ D8 Kboxplot(price~fitment)       
    1 s# A1 R! L) g, p/ q5 p/ d& Rboxplot(price~ring)        4 z) o; ]- X/ Z% ~7 M4 f& j4 b
    boxplot(price~contype)0 }3 P1 J% Q. K; e7 f

    9 j* w& i& w3 `$ I+ \
    ; `- c' U3 i; t0 }/ O. F7 z7 e, a

    : {3 j+ s3 L, ^( C5 L' R

    5 K9 `. F& J' v! Z) c##模型建立
    " I( B4 V9 u( B, Y( H7 q1 j% n5 Z- W
    6 L9 `/ ~, f$ [- B/ e, r9 u9 f8 K
    #在方差分析模型基础上加入连续型变量
    1 O+ s4 r# M# U/ [1 `' [lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    - K- j& |9 S6 N  F8 j# V% ~# Ganova(lm1)                #方差分析
    & h( d) V1 u" O4 Vsummary(lm1)              #模型参数估计等详细结果
    ' Z1 u- d' t# ?7 w' }windows()
    - F$ _/ g- r7 p7 m+ o$ c. |1 Zpar(mfrow=c(2,2))- b1 C9 c3 h$ ]. P
    plot(lm1,which=c(1:4))    #回归诊断做残差图, o, a+ A- V% `( \: u2 e
    5 T, {5 Q' a. {
    % ^9 t% e/ U* r: c0 Y9 z  Y

    ) q# F3 i& o$ n; O, M* o6 K4 ~9 Q2 {
    ( _0 y  o/ D9 W8 h- q6 B9 b5 |
    ##变量处理
    ! ~5 d9 P0 O5 `: @! {7 S0 i  e3 |" |/ i4 X* B

    2 W- X3 }4 L. N; `# U% m###对不显著的变量采用分组的方式希望能达到显著的效果  d2 N6 H8 }- u
    ##对容积率的处理7 |3 M! s1 [' x/ ~! f6 f
    windows()
    6 y1 ?6 p& F0 ~; s0 o- P  W) [9 gn = 4
    * ?) ~5 U3 T2 D" k9 Jboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        8 x) P$ u- l% A: k2 V
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    2 b: Z# d3 S6 o! B0 x. R6 pronggrp=1*(rong>n)                #进行二分类
    : F: R$ |7 I0 G9 E4 e#ronggrp=ceiling(rong/n)        ( r, ~6 }; ?9 T
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    0 `/ o1 ?0 n6 awindows()
    4 x4 a0 e. m% m: R7 ^boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    2 J( F3 u& [- _' J. y, J0 R* B  E4 _windows()
    : S8 u! W. L9 _6 O) D( |par(mfrow=c(1,2))
    # e6 [7 u# J  h4 aboxplot(rong~ring)                #容积率与环线箱型图
    ! k& o& Q; ]* {8 k) J% zboxplot(price~ring)               #房价与环线箱型图 & i4 D+ ], T4 i: b5 v
    #加入容积率分组和容积率分组*所在环线交互因子的模型0 E3 v2 O2 |. t5 X" N7 ]- Y$ j9 M4 z
    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)
    - J; w, P' \( }$ |$ o% oanova(lm2)                #方差分析
    2 c/ S! |" u  x- f/ w! Isummary(lm2)              #模型参数估计等详细结果" n0 }0 @9 T# g# R
    windows()- \+ K! z/ e" R% U4 S9 d# k
    par(mfrow=c(2,2))* p9 b& r" x" z- P
    plot(lm1,which=c(1:4))    #回归诊断
    0 X- v% l: j$ I: d" A
    + L" E2 \# Y% T- W9 M0 O: d

    - F1 y' u- h; h" i: X2 v2 ]4 Y##对小区面积的处理. e: X9 n: d' \) g# s" E5 y
    summary(area)2 Q# [$ A4 ?  J' R7 h
    plot(area,price)% g  m/ j) T  \/ y) U  }8 l
    windows()
    6 Z9 |8 h6 z+ L% I4 R* Q' G1 An = 150000
    . V  ?4 e, B7 [, E; Q/ p5 p( {; kboxplot(price~ceiling(area/n))                                                       
    / f6 ?2 @: \$ A" V1 z! Otable(ceiling(area/n))                                                                5 `9 b% S+ ~2 P7 _: R
    areagrp=1*(area>n)$ H- [) K' d  _8 T" f
    table(ceiling(areagrp))1 ~# L" L& X2 W- J# M
    boxplot(price~ceiling(areagrp))% w- O. Z- ^: c) u1 x6 X4 w: m
    #加入小区面积分组的模型
    9 r: H! H( I9 ]. e6 C& Llm3=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)6 W: S5 Z) R2 p- q
    anova(lm3)                #方差分析
    . `5 `# f% ~# {/ U, a7 Osummary(lm3)              #模型参数估计等详细结果
    , q( D- E2 m3 o, H4 F. S- Iwindows(); F4 J4 {) l" P# t7 d% I
    par(mfrow=c(2,2))
    ' |) h3 p, H- ]' i) [4 ~! @plot(lm3,which=c(1:4))    #回归诊断' x- F& N7 A# Y) o& Z
    ( N5 x) V1 P- i* a4 i2 B
    - e  L! V1 r4 {4 F# Y5 e( @  N7 A" B
    ##变量选择+ x& T- d* b$ G) U: M/ |

    + z, B3 ^" B+ v  u- [9 C

    + N7 Q  e7 ?4 B8 S2 g* Y, t##AIC准则下的变量选择  p: [0 b+ e% P
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic6 [; ]0 n! c0 q- X) ~
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节* z2 }6 l- W- u5 J' ~
    ##BIC准则下的变量选择
    ; j" X4 _* O# R; |! n) J; w% Xlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic: f+ l3 b1 [& ^/ G2 r6 i6 a
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节# `; _. Z6 [$ h% _
    ' j2 G  C' {. k3 B& f) k

    $ R0 R& \6 i; m#选用AIC准则下的模型进行回归诊断
    3 K+ V/ Z  {  u' Q# W& W% Swindows()& y& @3 }. l' |( O  B3 u
    par(mfrow=c(2,2))
    ' L: K- M0 A7 u1 |5 Yplot(lm4.aic,which=c(1:4))  / U! N" T% x. i% T6 `- E" \0 u/ v" ]
    9 b& z! q4 j8 N# i. G) `8 [

    ( Q; w( J  P+ |1 ]! N9 E. ?+ x5 A5 G/ |" W! r* u; P- W* y6 ~/ E

    ; K6 x( W( Y$ p5 k##数据变换
    % \7 i% h3 K. z8 x9 `' x& W# g  r, v% |% }* z+ g9 P* `0 p# g
    1 K3 R" _7 D7 s8 }8 V+ f4 y$ w% L
    #box-cox变换; ]' w" K( y( ~0 [: G
    library(MASS)
    . H( z6 Z' x0 X; c* I9 N8 m7 P) hb=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))
    3 n6 ~4 P# W1 t! k! g9 iI=which(b$y==max(b$y))  #定位似然函数最大的位置
    1 ?' h+ L* G0 J$ L+ elambda = b$x[I] #精确的λ值" b4 ^9 h0 k. |
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    9 i7 g  d& |2 t8 k! z* O' q2 Slogprice <- log(price)6 l" i: [8 j& U9 X
    hist(logprice)  a& d1 I+ ?$ _# U# E

    ; d5 Z9 s7 R9 G% E9 ]5 o* ~
    + E% p4 }0 R/ ~
    ##最终模型与诊断, A' K* g8 I# a9 {: `# V+ N$ h: |

    4 I7 n7 n/ k3 M7 G! ^* S
    3 }0 e3 a, ?) W) v& N4 q
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    - N) `% \# w0 U! Rwindows()& G& \7 r$ R( l7 C
    par(mfrow=c(2,2))
    ; s% A% j. L* g) ?# D, Rplot(lm6,which=c(1:4))" S" y2 d& W& u0 t
    anova(lm6)( Y$ n0 o. K0 @8 w6 h
    summary(lm6)3 J5 f' D% I- {- x( \! Z
    ) U! n  i  o5 |
    , w+ Y& E6 ^0 c0 d6 ^
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560! n; {4 D9 b2 `2 _/ z

    . v# Z/ h) S3 {, l+ s" t0 G. m* s

    ( y2 |4 c4 J% W0 u) f+ u0 J1 X  N' i" J1 M+ m
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    ) Y3 m: e; S* T( c4 x- R/ D9 y) }一定会认真的看看,发现这是R的,有python的分析没有

    % T# W* D. `. `- E+ S- J有啊! g% B, q# H2 r; h( |1 \7 u) `: O
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    5 _' Y- [9 \6 N太好了,又认真的看了一次,发现自已差太多了

    / t! G+ ]2 Y: {4 H/ e& h( }% }我每天会发一些好资源的
    * e$ u& `6 m0 c2 w8 J- L+ A
    回复

    使用道具 举报

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了% [1 B- e/ K# F& R- H
    + G$ j& g* F. \: Z. v1 h% v; r  ?

    点评

    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的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有3 ^2 \) G0 b, \/ ^
    ) A0 R! L6 c' _7 v( T/ E

    点评

    1047521767  有啊  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-22 04:30 , Processed in 0.944574 second(s), 79 queries .

    回顶部