QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ( L7 Q! K5 l6 i$ @9 o: }  k

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ; }# b" q1 b7 J( V8 ?4 v) r这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    & O2 z! T' x# y行描述性统计分析,各连续型变量之间的相关关系如下:; v9 c  M% ^/ z& s! E
    7 ?+ p9 \  U! m( x1 f. {: u

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

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


    9 Y+ B. k+ N- N. j, W( S2 ]9 s, W6 x8 g: M$ n# ~3 m( V
    ) V/ o9 E- C  X8 {
    最终模型残差图:
    ' W( r/ F6 r1 l3 ~3 q  @1 C4 n4 M, ~7 m) p: d
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:3 r: k, L% w" [- E
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    9 b$ \$ X4 E0 t2 u2 b属性变量的具体影响在此处分析略去。3 t( s% j; O2 V" x: @
    连续型变量的影响主要为:2 Y8 B! A# V& V/ z0 M+ {$ K; Y
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;  d* p6 L( ~  ~8 A7 U( z! G1 F: E
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    9 T( _8 L" Z/ F1 ~9 a: c. ]/ o; s9 B同时,原本为连续型变量的容积率经过离散化变为属性变量后:7 U5 P3 |+ o8 P$ u3 `, H
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;/ B" z" F, l8 G) @( W
     容积率与环线之间存在着交互效应。( g% V1 B% C8 j( O9 ]$ h8 ^
    rm(list=ls())                                                                                #清空当前工作空间6 F9 Y% Z- ^) x) w4 y' J1 @2 M
    setwd("D:/回归分析")& G2 S8 g9 {  O8 K; ?/ a: f
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a& u0 l% S. u3 {$ ^
    View(a)/ @+ w" U7 U9 t/ E. y
    attach(a)" j( z7 Z; E- p2 Z  u/ [
    names(a)
    # ~# ?: Q" m$ e- c2 ]% e8 I" i9 V$ O5 l) \7 h3 I/ k' x6 P

    & |7 z4 [+ y# @3 \7 ~* P##描述性统计
    : H- K; f6 ^0 }& G8 g4 L
    " N+ c& E6 |) |' w% v
    4 w* E' Z$ q* A! s$ T9 r$ @& |
    #未做处理的响应变量分布情况
    . A0 D. ~2 I* @" w! s" mpar(mfrow=c(1,1))  Z" i1 T% O- S4 C
    hist(price)9 h: U9 x' b# e
    summary(price)        #查看响应变量的描述统计量, \# B) U& h4 C8 T& b
    #连续型变量描述性统计* h) I0 i( I! F* [% z
    windows()
    2 e- V, W$ a, b2 a) d! hpairs(a[,c(6:10)])    #所有连续型变量间的散点图9 q( J( _' s: R! F  g- ~- |* L4 F
    par(mfrow=c(2,2))        - \3 W/ j. J! M7 [0 J. D1 _/ ~
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图. ~9 o9 N  Q% P' k. H0 v6 K5 k
    plot(lv,price)
    4 P4 V  d2 y! }/ X4 V! Iplot(area,price)
    . g. ~6 F3 H+ y' |2 l8 Q5 {; b; Vplot(ratio,price)  n3 t; U# Z1 z  F( O* U
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量# c' f1 G0 r, \0 V: g' \! D
    cor(a[,c(6:10)])      #查看连续型变量的相关系数' e$ ^- D* L+ M+ V
    #属性变量描述性统计  e% b7 r8 S; C8 B* J- m
    windows()
    % m, G1 w# ^+ {2 a+ Xpar(mfrow=c(2,3))                       
    , b& a# [7 K+ Z# E. ~boxplot(price~dis)          #每个属性变量关于响应变量的箱型图0 s, D$ s9 A1 j( _- n) {4 |1 T
    boxplot(price~wuye)                                                                        5 P* }3 _; @" v3 x5 s5 i2 p, I$ Z
    boxplot(price~fitment)       
    2 j) d$ n" x9 ]+ \2 v( @boxplot(price~ring)       
    , ^* [# c4 }& d# _9 \boxplot(price~contype)3 A, B1 I' `( n0 G# |

    - g0 D5 A6 X- d$ ~' g
    + h2 a3 e% L! }) r  j; s

    " Q  h0 V" g( b) n8 j# S/ K

    7 Q5 ~( M1 d4 c2 S; E##模型建立
    . N/ A; j8 r! g1 g: C; _* Q& s& P( T1 H7 l
    0 s& T! x. C* k; f8 P& s
    #在方差分析模型基础上加入连续型变量. |1 ~7 @9 ^$ e$ v( m
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)4 o$ ]! T" }0 C" ^9 i
    anova(lm1)                #方差分析$ X  q! l% N$ B8 Z, q7 d5 f
    summary(lm1)              #模型参数估计等详细结果
    / y% A  l+ G. Z+ O' W0 M6 R' qwindows()
    4 s+ S" B1 b2 ]: spar(mfrow=c(2,2))
    ) o) ?9 t' C! d  d) M  Q- ~5 v* Eplot(lm1,which=c(1:4))    #回归诊断做残差图
    2 r% l$ G* q% L6 m/ B2 T
    ! k; t2 `- }3 u4 f# A" t' m9 u8 K
    9 T, K- K7 \7 J/ H: q' ^

    # b% {/ s. v( ~1 _  E! D% Z0 `% w3 o

      }( \, c9 U) F7 `; {##变量处理' X4 [) ^: O$ K, X
    8 c) b, s: D' m$ i- g# x
    / Z# O0 n9 u8 s
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    8 a2 F6 u# r, ]6 n( K, ]; B##对容积率的处理
    3 E( b4 r/ q9 T9 p  y( owindows()3 Q, n9 R/ C0 c* U
    n = 45 Z! N4 p5 G& K' ^
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        7 U# v# v8 u. R6 T6 m8 G- u! Z
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    3 S0 \+ i* k* }& o  `  lronggrp=1*(rong>n)                #进行二分类
    , e. ]+ g; D2 t  C#ronggrp=ceiling(rong/n)        . p- E* E  S' k
    table(ceiling(ronggrp))           #容积率二分类下的样本数( ?7 p2 Y3 D$ D$ C7 E0 P7 m3 F
    windows()5 n7 ]$ T  c# V% g9 y- M
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图" v0 W$ f! ~5 W& N3 S. t8 V2 ]+ r
    windows()6 z7 R5 P. T+ W& k: q  V# j
    par(mfrow=c(1,2))8 n# w* f: K$ n
    boxplot(rong~ring)                #容积率与环线箱型图* V1 _6 z/ U  o' U% f" h% I9 }, @/ d
    boxplot(price~ring)               #房价与环线箱型图
    7 g4 \+ S& Y0 n) ~5 K' N' E#加入容积率分组和容积率分组*所在环线交互因子的模型% c7 d& Z  Y1 [  |$ q) X0 E
    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)2 @2 u9 R, o. F0 A+ N3 I( z/ l! x  D' T
    anova(lm2)                #方差分析
    2 @6 [" H3 M( b, B" n1 {summary(lm2)              #模型参数估计等详细结果) x- O& G9 L; D7 m
    windows()
    ! A6 m4 |) |/ Y! q& _par(mfrow=c(2,2))
    0 G) E% l# `" ~3 T. z7 g# bplot(lm1,which=c(1:4))    #回归诊断
    ) d- @) Y1 ?  x. O
    ! M( c7 ?2 x- M( H

    8 M7 c% y' j8 ?/ T4 R; U  g8 K##对小区面积的处理8 Z, v$ |5 e( \8 s
    summary(area)
    3 Q* r, w2 Z4 T2 \! Aplot(area,price)
      |4 n  d( }" @& |/ S' ?windows()# L9 K  r; \8 e- o
    n = 150000
    # X- O2 a4 |( [, M" ~# y0 R  k! `& sboxplot(price~ceiling(area/n))                                                        2 J6 X* f. J+ f! v$ [$ r
    table(ceiling(area/n))                                                                % j  B0 Z, U8 f/ M
    areagrp=1*(area>n)9 w8 h: I5 f% m6 D' \* l
    table(ceiling(areagrp))
    3 u3 r7 |# q/ x' d) E) pboxplot(price~ceiling(areagrp))% y% x1 b/ U) U' R
    #加入小区面积分组的模型
    ! ?6 h& K3 O, B5 ?9 P' {8 a- Flm3=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: j2 r1 H! @1 E$ W% w7 R' j- yanova(lm3)                #方差分析3 E) Q$ @4 `+ N0 B( ]  r2 J
    summary(lm3)              #模型参数估计等详细结果
    , K; E1 K0 [  d* B% {1 |) Kwindows()
    3 _8 l3 L; q. d8 L% P$ r/ Ppar(mfrow=c(2,2))
    . f( ]4 G8 H4 F" m+ jplot(lm3,which=c(1:4))    #回归诊断
    ( X8 l2 F* X' k5 h& _$ O4 A* Z# j6 {. \, [& c& I  ?7 s& J& F. b

    6 ~2 J0 ~9 d& a5 v##变量选择7 J3 q5 w; H, j2 Z" b$ f
    " H/ k; _8 [3 U& D, N. ]  N) x1 S+ B

    & o- o8 Q; y8 E; E: D1 k$ N" ~' U3 C##AIC准则下的变量选择
    4 X; W, `0 n/ s! glm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic' m3 c' y+ m! v$ y: x& C& C
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节+ g3 `& F  m( L
    ##BIC准则下的变量选择, z# d# p5 b0 p2 i* z! P" Z  \! ~0 I
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    " E5 w  @8 O; @; Isummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节: U! B. \$ v. E1 R# T1 J
    7 n0 I. L, a3 I. z

    5 K" d4 O' K$ p8 ~#选用AIC准则下的模型进行回归诊断( j& W( s$ u. F  X/ ^
    windows()
    , u$ _& j9 T  {  Y7 N6 R' H+ I* V  J1 ppar(mfrow=c(2,2))+ w3 a- d' {% q6 L" M! R/ Z
    plot(lm4.aic,which=c(1:4))  8 j/ q0 \8 |# w' ~/ `, ?- q
    ' _* _' O3 V7 g3 u" G4 c9 @

    7 H' t7 c+ z; x4 Z8 n' ~/ V" z- v9 M

    8 |7 T  k  K  v3 R##数据变换
    % A  B& Y$ {) J
    4 Q. f, V6 ~, I& x  \. B- L9 [

    ) }: w! O+ o0 W! u#box-cox变换
    4 o! w( u: Y! W: }3 s) ?+ Clibrary(MASS)
    % }8 M5 s% L+ `5 n4 ~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))" g" b; b/ }. g
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    * l( k+ s9 \7 E3 K( C/ zlambda = b$x[I] #精确的λ值. m3 S- O0 ?$ r# L5 O' s
    #λ接近于0,为模型简洁性,可以直接进行对数变换  d1 J. F0 Q% T5 S7 X- M' C
    logprice <- log(price)
    2 S* T0 V, X  ^+ u9 _  jhist(logprice)8 x3 Q, Z0 r+ M) q) I  R/ ]

    " {- a) }) D7 o1 s: r# f) F8 e, Q

    , E; K& l1 q  H##最终模型与诊断
    * b2 Z. e. D% ?- g4 P4 s. u. E" d0 w( h3 y1 Q; c7 ^; p2 o& _
    , r5 E5 c+ L  b. }
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)& ^; R" E( G9 w+ @. v+ u" u+ Z
    windows()
    , d) q* H+ B& @- w/ K0 ~; _par(mfrow=c(2,2))2 t' f, F+ ~; i& l6 a' r( @/ @
    plot(lm6,which=c(1:4))+ [6 o" d+ l% L! r: X1 m
    anova(lm6)
    . j3 S) n& U& x* osummary(lm6)# d- X' |! w) C
    0 t' K) N5 k; b* `4 F
    / r# i  l. Q9 u# @/ o" h% D
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    9 K6 S5 L2 A# T& f) d; F

    1 P- j# r; s% M5 M3 Z+ {
    9 D4 e6 B( l  d* T3 h2 b+ _. G" {/ n% y" n. g9 o4 ~3 H- i( v
    9 ]" I! h6 D0 w5 l/ y, E
    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的分析没有
    % z* q8 T  Y9 S, L8 F. Y6 m) Y! ]) s+ T* d. }( l; X

    点评

    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 s5 d9 y# @' i

    # N: p" W4 o: w8 e' L" |

    点评

    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 + A- [, H' W3 b2 g0 w4 {- z8 s8 k
    太好了,又认真的看了一次,发现自已差太多了

      G( \% X2 ^( M2 h+ Y3 C我每天会发一些好资源的; J- t6 W9 O! M) h7 L+ u
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    : J1 a* U' P4 n2 ^1 b一定会认真的看看,发现这是R的,有python的分析没有
    9 S2 m+ D9 ]" A& e) R
    有啊# c/ Q% Y3 m1 G' o7 ]) m7 Q7 d2 ~) R$ h
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-21 04:18 , Processed in 0.500576 second(s), 78 queries .

    回顶部