QQ登录

只需要一步,快速开始

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

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    + p) |; B+ F+ S. d2 t3 _( Q这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    * E7 q4 n4 C' R
    行描述性统计分析,各连续型变量之间的相关关系如下:
    0 f& W% J, [) s% D3 z7 @
    * F# n4 C8 g( T7 j  T. B0 z" m

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

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


    ; o4 ^: e) ]. h5 T8 Y; s1 w1 \
    # u/ E& @6 v  H+ x6 q5 L. C
    ! K0 o7 M/ z0 Q3 @最终模型残差图:
      h+ C- S" b. X# y! K+ Y1 Q# ~, q8 B3 ?; D) e0 s/ x
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    " q, m2 M- q4 G3 \属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比0 X1 N* Q- Z/ R% Q: l
    属性变量的具体影响在此处分析略去。$ f4 Q1 T5 V9 @
    连续型变量的影响主要为:
    7 S, g/ l* V, \1 p) U 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;8 u6 }0 V0 k$ t2 K$ h( U- H! L6 E# G
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;' A+ R4 n' u) i, l0 a0 Z" b" t) e
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:7 s5 K- S2 W1 q. S+ v
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
      y4 y  @. y( a4 ]! b3 }# y 容积率与环线之间存在着交互效应。
    ( e3 K7 }& H+ o$ srm(list=ls())                                                                                #清空当前工作空间
    : R- q; O* k' g1 osetwd("D:/回归分析")
    - c2 X) j# v# N! i2 z* v/ {! o) Wa=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a4 \1 x# C& J$ d3 s6 i
    View(a)- a1 Z& b$ o9 M6 i2 T
    attach(a)
    ( @7 e9 {0 p' R: @  Enames(a)
    9 p1 q6 H& B0 S# I* \7 [1 t$ e
    9 K" \# y" i# w7 G- _6 C) Y

    + W) b( @3 T* Z9 Q- O5 K##描述性统计: }0 {' ^1 G. S; O/ z4 [( u
    % p9 G0 c9 r" l# N
      ~3 j" G: C) h. z9 F8 `1 l
    #未做处理的响应变量分布情况
    9 x3 b7 F) f( Q* G- k0 C2 z2 opar(mfrow=c(1,1))7 j# \3 [3 H1 I' I* y9 k
    hist(price)
    , T/ L  Z8 s* r4 ~: L. Gsummary(price)        #查看响应变量的描述统计量
    9 T* k! s8 X9 N' E#连续型变量描述性统计8 o9 J9 T2 V, o9 k  `9 |
    windows()) C% C, V) ^9 @; m  ~0 D" M5 }- }
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    - Z! v" t, c6 Y( M! @par(mfrow=c(2,2))       
    # \; I; o+ Y: O8 E4 ^- q$ }4 p8 dplot(rong,price)      #每个连续型因变量与响应变量间的散点图; A$ w. t( z, i2 Z9 N% W
    plot(lv,price)
    2 P8 O. Q! W/ x2 ?1 \1 y) W; e- ?8 Cplot(area,price)2 P6 I  f2 B7 w# i* ]( n, {9 _& P
    plot(ratio,price)( u# z- ], C" Q1 t. n
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    1 t# x, Y$ Z1 V/ a/ fcor(a[,c(6:10)])      #查看连续型变量的相关系数
    + |4 _: A# @* z7 Q( j7 B3 p; ?8 {, G#属性变量描述性统计
    * t: r1 e( q4 ^' F8 O+ D/ ^windows()
    7 J* X% j- p  e* o3 Xpar(mfrow=c(2,3))                        ( M5 _: u4 B& Q' N" t
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图9 m5 ]) x! G* W8 Y
    boxplot(price~wuye)                                                                       
    5 _5 U# |& q* s1 B& f+ iboxplot(price~fitment)       
    : M4 [. `" E4 U9 rboxplot(price~ring)        : S. b1 e( V' X0 X9 H! L  K9 n  M# L  q
    boxplot(price~contype)3 K2 }  U" m1 w6 e3 U! i
    + x! @6 M) M8 l. f3 U8 L
    2 b3 }  m* O) ?2 ~6 Z: Q$ ]

    : [8 J; h6 g6 ?7 B5 w; k. x
    " y7 J7 V# T4 ^0 b) Q
    ##模型建立3 |$ d7 R, ?$ M1 I, z
    : g' z$ w$ m. T' b; W

    ' P% e, Y6 w: I- k# n% f#在方差分析模型基础上加入连续型变量/ b. X0 V2 ]7 _7 G* V( Z
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)8 ?, I" f$ T5 W2 A1 m  _
    anova(lm1)                #方差分析, u. J5 l- H5 `. |
    summary(lm1)              #模型参数估计等详细结果9 G2 @6 ]/ e5 C' ]4 ]$ G
    windows()
    7 U4 h4 W& d0 v0 d* I5 ipar(mfrow=c(2,2))0 [9 y: v3 E5 Y* g7 b( j
    plot(lm1,which=c(1:4))    #回归诊断做残差图4 l$ q/ u4 O( o8 W6 ^" t

    7 c4 E. d( I# _2 Q( `$ M3 d" c, M  N

    * y& G7 {: S6 Z% e- a1 H8 f3 p+ X! |4 v' f5 A. E) a

    ! n0 O; O9 @8 M7 P1 _- Z% y2 Y! d4 E##变量处理
    : M- M( a3 l  F4 H+ J* n4 z& {! H7 v, A/ S  `7 I) M

    ) A3 h& A0 {0 C$ W  n" l###对不显著的变量采用分组的方式希望能达到显著的效果
    $ J, I- R6 v: W  D. m3 h##对容积率的处理# A0 {8 k# V/ d$ y0 ~& r9 Q( z9 ~
    windows()
    , s1 r( ]& Z* An = 4$ i! X, w9 o' Q% w  t8 U8 a. I
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        7 R2 l+ P' d& D
    table(ceiling(rong/n))                                                #容积率各分组下的样本数/ m( w2 s( ~  n4 P" \
    ronggrp=1*(rong>n)                #进行二分类
    $ B* X. n! `6 }1 W" o% R#ronggrp=ceiling(rong/n)       
    . H& [1 a5 M0 M4 c( p0 Y, B7 C; Rtable(ceiling(ronggrp))           #容积率二分类下的样本数" P; y) h5 y3 Y% P9 r
    windows()
    ) T0 e$ `4 ], b- l% u1 M: F) aboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图7 l' G9 c, A6 \9 G4 o4 E) w7 W
    windows()
    ( }  Y8 f' I& S0 u3 B4 @8 opar(mfrow=c(1,2))
    ( Y' q% [2 h+ x9 `0 k+ Hboxplot(rong~ring)                #容积率与环线箱型图
    1 }9 G! R* |( A$ b" G' Mboxplot(price~ring)               #房价与环线箱型图
    0 X( ?- A2 o$ T" T8 a: E. y  }+ J#加入容积率分组和容积率分组*所在环线交互因子的模型
    4 x6 E& ~4 n7 p9 A2 ?1 flm2=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)
    ; W" S' T8 K: i+ c4 u0 k# Manova(lm2)                #方差分析
    % g! b* J/ A3 V9 wsummary(lm2)              #模型参数估计等详细结果
    1 J9 D0 `0 v. a) C8 M( zwindows(); p+ i' I* q7 D, y) c  g
    par(mfrow=c(2,2))( j# }+ W( w+ d: t+ G( p! b! y: L
    plot(lm1,which=c(1:4))    #回归诊断4 s, @1 K4 V% i' a7 g* I
    3 M/ Y$ H) A/ p& e6 M

    ' [) O5 ~) c5 N( Y. B' l##对小区面积的处理
    2 I- m; a, }" L' j6 [) Y# C6 c$ T+ esummary(area)6 z8 O* D- d" X7 a
    plot(area,price)9 [# p1 N! z+ s; A6 V
    windows()
    ( C5 R; W6 c( k. N# sn = 150000+ k9 v3 p8 B8 O/ Y9 {" i4 K7 ?; J* K
    boxplot(price~ceiling(area/n))                                                          a8 n; x1 Y% _( c% w+ f' n
    table(ceiling(area/n))                                                               
    9 o% H# _: k# e) V6 i: B& H7 oareagrp=1*(area>n)
    ( d5 d6 j! u- }1 M2 B: B0 C& [table(ceiling(areagrp))
    , w: @1 w4 K. j* Dboxplot(price~ceiling(areagrp))  X! `$ Y; c% K
    #加入小区面积分组的模型7 d- I. ^3 Y" [1 H
    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)
    # [3 d* A4 R3 E9 K5 T% xanova(lm3)                #方差分析
    . ]7 Q+ Q( f7 M; I: Z4 xsummary(lm3)              #模型参数估计等详细结果
    * P* D1 n2 i  rwindows()2 h' _7 m& `$ s& u& U
    par(mfrow=c(2,2))
    1 C1 F6 Z# q- _  w) z; l: bplot(lm3,which=c(1:4))    #回归诊断
    9 r+ j& h) \! F  k3 |. B4 E  T2 Q. ]" Z0 [

    7 Z- u) V' F- X##变量选择
    - p( C- [/ U. L  |" c2 x6 W" S
    ' v, v0 Y: Q# Y' H+ _- e
    " V3 _2 `$ H1 B8 F
    ##AIC准则下的变量选择& F4 v+ }" u5 A+ Z2 Q, I4 X$ c/ ]& D
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    3 g/ A6 z) Q% ?4 gsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
      {6 P; t/ S5 M/ w% b##BIC准则下的变量选择- h4 j# d$ B$ _
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic% |0 r, e6 o8 L; ^
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节) t- X  q0 E: Y, I$ ^* _  C# S

    8 ?! b! n/ O5 J* x

    - t$ g! l) I# S. e& \#选用AIC准则下的模型进行回归诊断
    6 f; ~/ X: C, Q1 {windows()
    ! w7 ]: v! x2 E% p- @2 Q% Bpar(mfrow=c(2,2))
    4 M. L" {4 D0 i' B4 B0 W- Wplot(lm4.aic,which=c(1:4))  : ?3 {, R9 H! {
    4 c) ^, x' l; \! w* w" g

    , p; X, Y  m5 {( ]5 W) f3 n. z, c$ E1 z8 t& G' Z

    / g9 f, x, {& B0 Q##数据变换% q, X- A# U2 N3 W! L0 f1 `
    8 o1 }/ S4 ?, g- ^0 N% l
    9 N% [2 T5 @/ X5 x: _
    #box-cox变换; d( n, f! U' t' L& g1 b
    library(MASS)
    * @/ L! ?# |, h: q1 gb=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))6 ?& T$ v) V# E8 e
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    , }3 @# B2 _5 i# b; m  t0 slambda = b$x[I] #精确的λ值" G& \+ x1 J2 g8 f
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    2 k6 j7 u$ ^  A/ J# H+ @* rlogprice <- log(price)3 Y5 P' C3 y8 y
    hist(logprice)0 M; d, }  Y& k, H2 {

      P2 `( H# B. b  `( l- I5 r

    0 a; h9 W# P' |4 l0 e' i##最终模型与诊断! S: L6 w8 L8 v  M: b

    . A9 d" S& ^6 A' \1 v) U5 ^* ~
    ! l7 h( j6 N% C: T- P
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)- q% E$ x" h8 V  s) p0 d) i1 Q  b( W
    windows()
    3 d! i" E8 P$ h4 N) ^- Epar(mfrow=c(2,2))& Y! @0 q; L( ^9 c2 \/ L0 D" Y
    plot(lm6,which=c(1:4))
    $ M7 R: h2 X5 z4 d/ m5 S' U# V! yanova(lm6)
    ( r* Y  z( F9 E, ~# T) psummary(lm6)4 @0 v9 _6 _/ j1 Y
    ( C4 F* [# B0 @, c. _& f
    & G! v4 X6 c" G& ]7 N! J& m6 C5 H8 a& Z
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560# k/ J9 E2 s: Y# I, E$ {

    1 ^$ O; @& b) L! R
    6 \( x/ S* m# ?' l6 n/ d
    . w; y7 y" q5 g$ q7 P
    - c0 p' u& j$ j: x
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    613

    积分

    升级  3.25%

  • TA的每日心情
    无聊
    2024-4-27 16:17
  • 签到天数: 628 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有5 ?# o  f- ^! S) `

    8 H5 @+ t5 i3 S

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    无聊
    2022-2-19 17:40
  • 签到天数: 30 天

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    613

    积分

    升级  3.25%

  • TA的每日心情
    无聊
    2024-4-27 16:17
  • 签到天数: 628 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    6 w0 L& s" u  J5 r# J1 @% P
    5 ?; }0 U' G2 Z6 Y/ v# o1 E$ G2 h

    点评

    1047521767  我每天会发一些好资源的  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18
    . v% p8 o- N8 C& m) V0 Z! s5 y1 Q太好了,又认真的看了一次,发现自已差太多了
    ' ^# h5 e" _/ v
    我每天会发一些好资源的; c" h" R2 v- n* A+ L3 F% t/ Q
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    ' E, C! y# `& n4 {一定会认真的看看,发现这是R的,有python的分析没有

    8 h( b- `/ Y! C( O& Z1 g5 R0 T有啊# q2 B  ^+ s+ T, [
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-4-27 17:52 , Processed in 1.001898 second(s), 78 queries .

    回顶部