QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    : G+ j  Q8 u5 z3 ~1 k这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    - R3 P; |6 X  o, x+ v行描述性统计分析,各连续型变量之间的相关关系如下:) W& M. B* m" W
    " P  k" L5 {9 i( z. r" o

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

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

    + w6 t$ P9 ~& B; E  }5 H0 [

    % W1 K5 v" B) j- q) U0 S* g3 |( k2 g+ u) f1 ]6 h7 D- J& E
    最终模型残差图:
    ' ~, h  f$ Z7 C  ?5 k: w# x$ ^0 U2 E' f% B( T' y4 e) C
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:0 V2 x8 S  W4 H
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比/ G! i! H' k& Z! D4 M& _
    属性变量的具体影响在此处分析略去。, X4 i) q5 E* k# j
    连续型变量的影响主要为:" O6 \: P; R/ r8 F
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;* N+ m0 w' U0 |/ T- e; k0 R
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    7 `# W6 ?4 }1 h4 L( n8 l0 g同时,原本为连续型变量的容积率经过离散化变为属性变量后:- f+ C2 e- n( U2 k6 f2 s! r& ~( J
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;# a- r* {9 T# o
     容积率与环线之间存在着交互效应。6 F; ]5 M- w3 ]
    rm(list=ls())                                                                                #清空当前工作空间) \5 s% j5 y4 z, T/ z
    setwd("D:/回归分析")
    ! a0 q2 Q! d0 ua=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a) I& k6 e3 j# d. g6 u
    View(a)5 l# f* g3 y3 ~; a6 W
    attach(a)
    ' u4 d9 g2 X4 W1 X! F+ d- Q" Anames(a)2 \6 M* N5 W& Y6 D! C! W
    . e4 y% \3 m! N4 _
    / A$ |( B! u! E# @& Y
    ##描述性统计
    * Z% t/ x: }$ ?& K. T. @0 d
    / r* a+ F( n0 S7 F4 o, K2 j

    ) g; M+ T5 U6 V( l- j#未做处理的响应变量分布情况3 I2 S7 a8 O5 i
    par(mfrow=c(1,1))
    1 _& O  ]% `& M, Khist(price)
    1 y% v( g& N3 j( A3 Nsummary(price)        #查看响应变量的描述统计量3 k, d& X# r+ S/ s4 A. S
    #连续型变量描述性统计2 ^& T; u) L" Q& H/ b- G
    windows()
      _' O% C1 v$ B+ n' o3 D1 _pairs(a[,c(6:10)])    #所有连续型变量间的散点图1 N7 p+ Z7 C! e+ p
    par(mfrow=c(2,2))       
    4 @: e7 r1 s/ `plot(rong,price)      #每个连续型因变量与响应变量间的散点图* j1 k9 \; s! v4 y7 t/ N
    plot(lv,price)- }' H) c2 v+ ^. l0 V" U
    plot(area,price)
    ) D$ s* I( I# [" A/ `* q% [6 B9 pplot(ratio,price)
    2 a3 N' d# a: I$ n! R2 W$ z1 L3 T7 ksummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    / S( h: |& y8 N1 i7 ?cor(a[,c(6:10)])      #查看连续型变量的相关系数: ~. U, a( Y7 j3 X, k8 ~: v9 w4 [
    #属性变量描述性统计
    2 x$ X  o- b3 P) J, l/ O* Ywindows()6 F3 L: K  w: ^3 L& l
    par(mfrow=c(2,3))                        2 z3 Y+ _9 E3 ~
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    4 }+ I. j9 _+ W6 E$ sboxplot(price~wuye)                                                                       
    " {( \3 N, T; Y/ y) g8 p  cboxplot(price~fitment)       
    # `$ w' P* |, ?6 |6 L. y! tboxplot(price~ring)       
    * c: J' s$ t1 O" A4 W& s3 s: Z8 i7 Xboxplot(price~contype)
    & r; t, f. \. w) ^8 N4 Q, s8 U1 n  i+ W1 }6 f4 `- c* W
    # K. H6 J" q8 M$ ?( L

    ) O2 {$ ~$ q4 J; ~7 |* K, d

    - d1 ^; p  m& y- d, Q; }; {: [& [##模型建立8 ]( W% Z" x$ n
    # B$ G. U5 f% H. V4 |
    ) a" k( [. E2 j( A' Z  Y- x/ K
    #在方差分析模型基础上加入连续型变量3 k6 _, S) n3 r: g/ j1 Z
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    6 n" J* K: e4 l( o5 W, u# a. e- D. R- Manova(lm1)                #方差分析) o" d6 l( j' \' U  [& T
    summary(lm1)              #模型参数估计等详细结果
    # S0 \5 f# Z6 l! @8 B% z1 ~% \" vwindows()" p( `! N; ^9 ^0 G
    par(mfrow=c(2,2))! n! d* e$ p' }0 x
    plot(lm1,which=c(1:4))    #回归诊断做残差图, t+ C7 F( m* z) S2 i- a2 z

      o9 ~- a" k, U0 {% A! z: T& j: x
    . g2 B* k6 U+ ~

      c  A9 O, K3 ?( M
    % z9 L5 o1 p' m* {8 \% K
    ##变量处理
    ; M  z- `3 k! J) q+ j  I6 W* T  D

    ; I9 ^* ]+ D9 Z; p# E: Y###对不显著的变量采用分组的方式希望能达到显著的效果
    8 `$ M! \6 U% _$ k7 X8 I4 w; z) }##对容积率的处理
    3 `) c' ~1 j  r4 x: a. h' {windows()- p5 W( Z: Q6 J- ]  E
    n = 4
    - X( n3 T4 R4 t1 Zboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        / d( ^/ n/ B: t6 e
    table(ceiling(rong/n))                                                #容积率各分组下的样本数: i5 d$ ~8 S9 K% u# e  R! O' Z
    ronggrp=1*(rong>n)                #进行二分类
    # ~) h) k% J; M3 m% e#ronggrp=ceiling(rong/n)        7 K3 n) K0 N0 ~8 Y* o- N
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    $ y  _4 n& j- |1 s; ewindows()+ v3 I" L( c' @; {, u1 K
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    ( J8 H4 c" f! O* }windows()
    # q5 f+ N( C' R4 G( p' y& [1 lpar(mfrow=c(1,2))
    % U0 u- e& A- j1 K/ E& @boxplot(rong~ring)                #容积率与环线箱型图2 J' n5 H, m+ Y. l/ A  g6 o5 C
    boxplot(price~ring)               #房价与环线箱型图 ( G/ A% P7 l9 @7 D. R5 j
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    . T$ j; `' l: Wlm2=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)  Z8 m4 y9 q/ o
    anova(lm2)                #方差分析
    ) U) D/ x# w$ `% ~3 [: h6 V9 p+ W) T: nsummary(lm2)              #模型参数估计等详细结果
    " s5 _2 \/ H& S" `8 kwindows()
    ' D2 A0 z$ H" L6 Wpar(mfrow=c(2,2))* `4 d* Y9 u" y! w- |
    plot(lm1,which=c(1:4))    #回归诊断
      W+ l' A# E$ \* F+ \' i2 k/ |; F) R! _& d* \

    2 `' {4 s9 h) E. |+ F/ X$ R##对小区面积的处理
    % r) J$ B8 L  b) x1 u3 lsummary(area)
    - e6 o% ^& r! O. c0 Z  oplot(area,price); `/ x8 i. I; ?, r6 b+ @* |7 A( k% O
    windows()
    7 s2 R& m6 `4 t# B' r% ln = 1500008 Z5 A0 v2 o" @. _
    boxplot(price~ceiling(area/n))                                                       
    + o) m/ c- ~. Q& M+ v1 }table(ceiling(area/n))                                                                % d4 S# D2 y; a6 s
    areagrp=1*(area>n)2 d2 j" K5 c, n( y& A
    table(ceiling(areagrp)): \+ l6 m" i  m8 A1 |! s
    boxplot(price~ceiling(areagrp))
    3 ^1 T; n7 o: G. Z) r% k) ^' I#加入小区面积分组的模型/ t! C) h, u$ H$ Q$ j
    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 s0 |! {) Q; [1 t1 s- S- x
    anova(lm3)                #方差分析3 t! O# h4 s% a' `- D  e
    summary(lm3)              #模型参数估计等详细结果
    $ t% d3 g0 q5 o4 w! xwindows(): L/ s  u3 W, B2 c
    par(mfrow=c(2,2))) h/ s; X5 _8 G  g! l
    plot(lm3,which=c(1:4))    #回归诊断+ K$ j& G+ K! h. \$ r

    ' h3 C% p8 x4 h/ Z' m+ Q

    5 X( u# M+ F0 M. R$ E, k9 [##变量选择
    " Y) ]2 {4 M6 r9 o" d# N2 m
    ! h7 D  G) U. ]! ^

    / k- u( c! S3 a, ~##AIC准则下的变量选择) H# x/ O7 j2 u. r7 I
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic6 V: [4 m! |6 |* y7 p
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节9 j2 s' r' v1 Z! ~6 z+ [; [: A
    ##BIC准则下的变量选择
    + |, Y' n# W% [: Jlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    $ D4 s/ V; f& }* r. K+ Usummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    : D9 D# I0 V# D' N) v
    6 M5 X$ F, D6 v$ U) j
    ' W+ w/ f$ j  }. U* f
    #选用AIC准则下的模型进行回归诊断
    * i! r8 G$ K7 M8 H0 K1 y$ `windows()5 t: I  N' U) r1 K# h
    par(mfrow=c(2,2))
    $ a( t4 n6 u! g/ `# A5 Qplot(lm4.aic,which=c(1:4))  
    6 E3 m% y& c6 Z( K8 f0 @" Z' z3 e2 U$ ]' A/ |: F
    : e. M4 L( C/ P2 o& D; U

    5 V% {3 `" ^- t- R/ E- s! K( T
    + }3 U; _9 ^- ^0 t
    ##数据变换6 b( s/ U' G5 m1 b7 P7 e

    / ?" o& @9 @8 u8 H) L# x$ |

    * D; N$ e. \& E; @; X5 ]  y/ y#box-cox变换$ l. t( ~9 E9 C/ b$ \% E
    library(MASS)$ @& ~9 ~3 |* f9 ?
    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))* l1 V0 N0 w$ g  A
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    5 D* C( |* B& v3 Rlambda = b$x[I] #精确的λ值# S# u& w! N5 I
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    ( I3 N6 ]2 L4 w8 o& wlogprice <- log(price)$ @6 ^5 y7 m( _6 G' l* w6 f
    hist(logprice)
    , Y# g" N4 M0 f+ |% h; A
    / N) z3 Y' r/ B  v  `6 A
    : g3 `5 O7 q% t
    ##最终模型与诊断
    $ l$ y& {, z, K0 q
    2 T2 X) H! ?, p5 L7 F2 C' x# l3 ?
    7 v; u" _) w, M( F& L  K4 i
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    ' P3 r& d  {* r  |% ]) v# k2 kwindows()
    / y6 \8 U7 u5 Q0 j  e7 [par(mfrow=c(2,2))/ ?$ a, n8 t" z7 x) [3 I
    plot(lm6,which=c(1:4))
    - L* s( }6 X: O& `: ?7 Fanova(lm6)1 @! w" g8 l! m" M  z
    summary(lm6)
    ' X' n4 `) i# I# l  c0 H- s
    % t. J" x, S1 x) O: M8 }7 O- f6 O/ A% h! j) v2 ]
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    + r3 W$ w' e0 s- L  M1 M1 |  c
    ( [# `/ Q( T+ T2 i: m3 y
    5 g- m) U/ ^7 \) L+ F8 K

    4 ^1 j' V5 h8 i, `: v
    , G- X2 {" P. m" ]" ~% O
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组: 数学建模

    群组: 2014年网络挑战赛交流

    群组: 学术交流D

    群组: 数学建摸协会

    群组: 第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有0 E# b4 [0 b3 P( u0 ?( J% K

    - a' I: K5 J1 ~

    点评

    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的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组: 数学建模

    群组: 2014年网络挑战赛交流

    群组: 学术交流D

    群组: 数学建摸协会

    群组: 第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了1 ^$ ^. x2 d# N( z7 f, |  @- P

    % N, ?9 ^  B# s/ _% B

    点评

    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 $ x6 C" ?# V* r/ K- t
    太好了,又认真的看了一次,发现自已差太多了

    ' i% D) \% V, y/ b/ b$ Y7 `( L我每天会发一些好资源的
    5 L6 K& s% ^% W% m6 I  F
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 / x  f8 Z2 L' J; r/ [; Q
    一定会认真的看看,发现这是R的,有python的分析没有
    8 `% [; W8 ~! ]
    有啊' Q6 O( V% [: B9 T- f8 [2 M* ]
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-23 09:16 , Processed in 0.343677 second(s), 79 queries .

    回顶部