QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    3 f2 }/ l$ e0 k+ q$ l7 U) f这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    8 e" R3 {: m5 t0 T9 ?5 n) m0 t/ k行描述性统计分析,各连续型变量之间的相关关系如下:' O9 B" ?+ i; i& g+ b7 W1 L

    . D# `- c0 @- b

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

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


      f. }" e; o* c! @! u
    ' {% S6 _4 c- ?! d* N
    & x" ]+ ?0 S' `. X( ]* g' }9 w, m- G最终模型残差图:0 R5 X! H' m1 v2 y2 M2 T: O* b
    5 x- H' _/ O4 _1 e5 `& d# [* G
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    6 g# F8 r% J4 K4 z1 Z8 |& B属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比" Z/ N! L1 {: N- A$ s: f# X! o: t
    属性变量的具体影响在此处分析略去。8 i: U- C$ e3 d  b
    连续型变量的影响主要为:. E* ?4 o4 D5 _2 ^1 m
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    " L3 t2 b2 b$ H% M# k4 n1 v 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    5 K* N: ~$ Y1 U- Z# Q同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    . @( O( c2 z! n4 F( `* |2 p$ n 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    + W# y2 F0 O) V$ V. M4 v1 g7 B 容积率与环线之间存在着交互效应。
    ( l, ?) p* r1 M$ k5 nrm(list=ls())                                                                                #清空当前工作空间
    ! o3 [- J3 W+ \0 B" Ysetwd("D:/回归分析")3 b& b0 z2 w* D! b! U
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a8 Y/ N6 n* {3 o1 k
    View(a)- ^$ R4 B" w1 {( H7 q6 ]
    attach(a)) e2 b: n# D3 k8 @  p
    names(a)/ l7 h' U+ v. p5 q# G6 I

    / L0 l# Y* C3 F. z5 h8 h* U
    " B. t: Z) P$ D/ U! n1 ]
    ##描述性统计
      g7 ~4 A7 S5 Q1 }: T- h/ e! u- q  \6 O: O! E8 c

    ! L2 i$ j, [( I, T#未做处理的响应变量分布情况
    - P! v% M# i3 F) gpar(mfrow=c(1,1))
    ) H1 q0 f3 C; g+ Z; j, q4 \/ fhist(price)
    8 T1 k4 q8 q! ^) Z; g& g7 U5 }summary(price)        #查看响应变量的描述统计量
    : Y1 J0 }  ]; O& U0 j2 r# O5 n. ?#连续型变量描述性统计# L/ v: [4 M+ k* ~: _
    windows()
    ; A: Y# W% E# O8 h: E6 x0 F6 P" |pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    , \! G5 j8 U7 Q' `4 r+ O8 @par(mfrow=c(2,2))       
    4 T7 h, o" g: }& d4 A2 E' q6 G/ Bplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    ' q" @9 c' |2 s2 T3 p  Hplot(lv,price)
    4 L9 F$ E" J) l& |6 N. Jplot(area,price)
    - r2 W% P2 b+ i# Lplot(ratio,price)
    + I4 r6 f9 J* l2 Hsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    $ {% d' c9 z0 z3 N4 \# J& B1 ecor(a[,c(6:10)])      #查看连续型变量的相关系数) [* _% Q' ~) l3 \& g
    #属性变量描述性统计* ^$ q/ A. l1 z6 V! R
    windows()  D% |0 V1 U' e3 f
    par(mfrow=c(2,3))                          V7 x4 O' u6 x) \" l) q
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    % H+ J# T: U5 ?2 m( h' _boxplot(price~wuye)                                                                        2 k2 X7 x2 A& d% s' s
    boxplot(price~fitment)       
    ' m2 P% {( u! k# u, s5 _7 uboxplot(price~ring)        1 ~. R4 o( m6 W. |
    boxplot(price~contype)6 E7 ]5 d9 n( t9 H; l  S8 O

    + P* Y2 x. B& m
    * Y( K$ K2 Y9 Q* `9 ^8 E) {+ \/ D! U
    3 A$ b# I0 c) Z4 e5 j
    & R! s+ `5 s% r- q
    ##模型建立
    $ [( P6 X# W/ G' |# ?) ?& C: Q! P$ c8 Z" ]8 p7 i$ X9 }. \  H

    0 ~% s  }! ~5 W/ E#在方差分析模型基础上加入连续型变量" R. o+ S: G+ U# Z: T; Q& x
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    + h# G' s; |; m1 `/ A7 ranova(lm1)                #方差分析
    4 Z4 w& u" p0 {& O- ~& csummary(lm1)              #模型参数估计等详细结果& z& M( J) U- B
    windows()( Z8 i7 J/ M6 e" F, J6 q
    par(mfrow=c(2,2))
      e/ A$ W2 u. T$ m3 mplot(lm1,which=c(1:4))    #回归诊断做残差图
    & S2 [* N2 @. {* k6 d! U- m/ E" z& c  A' v

    8 U2 U7 \: I0 ~6 O5 b: E2 I; G1 Z" {4 V- }  F" O! l0 z( `- j5 m

    ; D+ ?/ h- h& r" ~* x##变量处理
    ( E' z* d* W) s7 e4 D) b! a4 X- h+ V2 m! S5 E- o
    + e' V, R7 W( E. T" |7 q1 M( Z- M" \
    ###对不显著的变量采用分组的方式希望能达到显著的效果4 o" @! }) y4 |8 _" Y; V
    ##对容积率的处理! e  u. g; J: F9 A+ W
    windows()
    7 S/ v4 C6 ^$ X  ]; [n = 4
    . K. V7 y0 D; E2 A9 e, uboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    , }- u4 G  `: B* n2 V! ptable(ceiling(rong/n))                                                #容积率各分组下的样本数
      Z2 X( I/ Y3 g  H, n% x- Tronggrp=1*(rong>n)                #进行二分类
    $ f; ?+ i8 p2 i6 m- o% ]1 c  R; z#ronggrp=ceiling(rong/n)        0 W& r8 B# Y7 P4 ]3 R* h
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    $ N7 Y& L( K! B0 T& O3 V7 m# Twindows()
    * r2 q1 @4 b( H8 ?! Cboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    1 f2 K* P- G" i+ b5 o% i7 r* E6 ~windows()# }" m9 t+ Z# K; z
    par(mfrow=c(1,2))
    & x5 \6 j0 c. V8 y: o% j) }boxplot(rong~ring)                #容积率与环线箱型图
    2 `  N6 p5 l2 m1 ~! ^2 b! a6 V" o3 lboxplot(price~ring)               #房价与环线箱型图
    1 u! z" ~! s$ g: T& j3 s#加入容积率分组和容积率分组*所在环线交互因子的模型# X/ ?+ z1 ^6 p' D* z' h# T9 p
    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)6 X( _3 m& l4 r& h
    anova(lm2)                #方差分析, L: b# W' j# n( z3 [% p# w) Z
    summary(lm2)              #模型参数估计等详细结果/ {: d6 y8 g0 y+ d( a
    windows()/ ?* Z4 p3 b5 z  {6 H5 P9 u
    par(mfrow=c(2,2))) m5 y+ w1 c+ N" M/ t& v# T
    plot(lm1,which=c(1:4))    #回归诊断
    9 t. J) B1 {4 U2 n5 t# ~
    1 H; }' Z. |! d) ^" O

    ) F! N  e) w* y0 c4 L) N1 v##对小区面积的处理
    , |7 ~( a2 R: a4 {3 |! n* g! W/ jsummary(area)
    : V" A3 Q& N( Iplot(area,price)# \$ ~. `" H( C/ H) e
    windows()
    7 K9 |6 `  t9 l, Pn = 150000
    8 \+ N/ p! t1 }* G$ D% f9 d( Lboxplot(price~ceiling(area/n))                                                       
    # M: `) o+ G1 `  T. @' ^table(ceiling(area/n))                                                                8 T$ w8 f3 N9 Y4 q4 B3 Q$ n
    areagrp=1*(area>n)
    * O* ?8 I+ ~, z: |: W1 y1 Mtable(ceiling(areagrp))
    - x: `2 g  W( O& o) R' w; R; U7 ]boxplot(price~ceiling(areagrp))( e  {# C$ S9 Q; w2 {! R
    #加入小区面积分组的模型, _( Q% o, ^) k8 w! ~1 b3 n2 R
    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)" _$ Q* B9 c0 Y" I( h
    anova(lm3)                #方差分析/ \$ G7 \& o* d
    summary(lm3)              #模型参数估计等详细结果: s; q5 H' q9 ^+ a
    windows(), K9 F& z7 O  H+ A9 }
    par(mfrow=c(2,2)): O* T9 j1 Q1 N& h" H& I
    plot(lm3,which=c(1:4))    #回归诊断  e/ _. d- Q- J  u/ T
    1 N5 I; j, k6 S+ |! z& s/ u
    + R5 T& [1 _4 l$ i
    ##变量选择% D" e# X, T8 I
    : g6 Z$ T3 `! k  J4 t
    6 Y, j$ `5 L% {6 B% E( R* S' z* z
    ##AIC准则下的变量选择
    / r5 a% e1 ?! B* Z' qlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    1 N: \; U5 A+ r( E: L/ asummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节$ A: x: H5 A/ l$ l6 `6 G" v
    ##BIC准则下的变量选择
    9 u8 u7 A4 j- Q- u( S* P, @lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic: f* Y0 C0 f9 |, E6 a# N
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    & W+ ~1 g9 |9 ?. Z( y. T9 ]5 C$ u9 M3 A4 P! f( b
    : [8 k8 j! L- m4 Q; `
    #选用AIC准则下的模型进行回归诊断
    / Q" X4 @) ]! o4 Y; q. r. Wwindows()
    8 c/ u! R3 U& jpar(mfrow=c(2,2))( A) r' A" f* l5 J: n
    plot(lm4.aic,which=c(1:4))  5 G4 u6 n* q5 s3 m$ \7 b- `
    0 \: S" ~# T+ P; j' V8 S7 }. t
    ( I6 b1 n5 f! ]/ w3 k

    * S; ?5 H; g+ p- G' f. W

    9 }" d2 F+ v  H4 ~& [##数据变换
    . Q) Z! `$ {6 N! t, E- m8 A
    4 Z& Q+ J) C% Z7 A: v
    8 J( _% N; r% k& d- X; U* Z- M9 Q: u
    #box-cox变换
    ) a. E! K+ }8 j8 klibrary(MASS)
    ) ^, I  m1 o5 o2 Ab=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))7 t6 B5 x0 t; N& |
    I=which(b$y==max(b$y))  #定位似然函数最大的位置+ _. ~7 J! z+ i+ d" L
    lambda = b$x[I] #精确的λ值0 y& N# X6 w8 b1 m0 s
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    " R, P+ _5 @0 t: o: @( n' Nlogprice <- log(price)
    . K+ l5 k% C/ w2 Thist(logprice)! f% [4 u7 O3 |8 D$ S

    2 T, J: \$ c. U+ [- P% a4 y
    ( d! L5 D1 h! G2 S! f+ m
    ##最终模型与诊断
    6 n4 l5 x0 g7 Y) J" _% \
    0 w" G- ~2 S9 j+ a" e+ [& X8 Q

    % g% \* I& }: `  v$ D+ q9 ilm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    / U6 q0 g8 n' A/ _0 C2 iwindows()
    $ }9 G( p5 p  b1 opar(mfrow=c(2,2))" w! r9 q, u4 u& [$ E
    plot(lm6,which=c(1:4))& E$ ?2 D+ Y' T0 e2 _/ u0 s
    anova(lm6)9 ^) S/ z5 `, I
    summary(lm6)% v' J2 C: W. {# Q4 P4 M+ d6 P
    7 `9 N9 \& j  D& _: _5 u
    - Y( |+ V" i' Y  Y' K
    请关注数学中国网微博和数学中国公众号,联系QQ 32437105605 Q8 V1 S7 C0 e- c3 g$ l
    ; x3 F6 `+ V. G3 T" K
    1 A8 E6 x/ h" X6 J
    1 S! @% y4 b/ |" h) f) F% H

    $ p5 i) w/ q" w1 H2 W# b
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    688

    积分

    升级  22%

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

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    9 A1 K' Y" ]" S. @  G2 S7 k5 X+ l5 r- q

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    % P* A9 @  ^( _- T7 e+ [" C# n1 B# P. w; b7 o+ X

    点评

    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
    & p0 P0 _" k# W+ y2 F# W& r3 Y太好了,又认真的看了一次,发现自已差太多了

    0 F' p7 S# e, k# x9 ~" f我每天会发一些好资源的
    : ^7 a9 Q9 J* \
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    . Z0 t+ S' B& B2 T) P  c: n4 i一定会认真的看看,发现这是R的,有python的分析没有

    9 d4 @: O. G8 w9 H" e& N有啊
    ( h- x# O; N, y6 V2 H5 x
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-7 05:53 , Processed in 0.741725 second(s), 83 queries .

    回顶部