QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    6 F! H2 g4 G* j: z, o这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    # S6 O4 u8 X5 G/ v$ b行描述性统计分析,各连续型变量之间的相关关系如下:
    $ \  C7 [$ \- o/ [- H8 t& r/ U% X$ D9 U# V( P- v3 P$ s; `

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

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


    . k% Y# C, [+ I+ m
    $ B! h' \2 o" ]- v' [
    % G& y6 H% V- w$ a最终模型残差图:
      w- D) b) Q+ R( _% E
    5 q' v2 \! |) y% ~: O
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:8 u) z7 R" q' C: A$ j$ `9 Z% S" @
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    4 }% Z: X1 E8 I2 i属性变量的具体影响在此处分析略去。
    ) h/ u8 q. l' q. c  |7 H连续型变量的影响主要为:
    3 l+ |. S) Y. o1 s 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;3 f, T# t* I+ T) G  C
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    6 D9 R: p: C& }7 e+ _4 c/ V同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    / p# q4 m1 A7 L3 K9 H, N' H; ` 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;3 e0 [+ `, C* D
     容积率与环线之间存在着交互效应。
    + Z, k6 i! Y7 u% e) p: [rm(list=ls())                                                                                #清空当前工作空间! c% Y: O9 L6 G/ H
    setwd("D:/回归分析")8 I" l8 X3 p1 A5 d# E4 p
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    6 R7 N9 ^  D( ^View(a)# a7 U; o6 K6 g& S3 c7 f
    attach(a)
    + a* w3 \( t+ K1 U; K, r& Qnames(a)" d6 l0 R* F* Y8 q/ Y' t: [, A3 N
    3 L' i6 X0 A& q2 a" r

    5 m: Y0 v# P$ k+ f##描述性统计. C- l/ u2 `9 [
    : Z7 k( I+ B1 Y9 {. O
    3 Z* d# Q+ j3 o
    #未做处理的响应变量分布情况
    % V5 a. z: w1 {) ^# n+ Z& |par(mfrow=c(1,1))
    * L) R3 d  B. Z, Fhist(price)/ R8 ]( E, b# {: j$ d" z2 Q
    summary(price)        #查看响应变量的描述统计量
    7 W( ~% o3 J& ^  k. X9 Y4 B% f#连续型变量描述性统计7 e* @$ ^% f1 ?+ m3 g" w
    windows(), }5 Y9 R3 S  c* }. o
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    6 V3 g3 R4 T  y/ wpar(mfrow=c(2,2))       
    * m9 i0 H% Y9 ]plot(rong,price)      #每个连续型因变量与响应变量间的散点图& x, m! O, A/ b" P7 x' U
    plot(lv,price)
    # M$ t4 Q5 z5 z3 G3 x+ h; B% S; gplot(area,price)* {; T% i& W% Q' b7 y% G1 e1 x0 M8 ]
    plot(ratio,price)  p/ S8 e! j* H5 n: ?0 _
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    2 l7 V9 g% s# d9 T- n) j' @cor(a[,c(6:10)])      #查看连续型变量的相关系数5 X' R, L4 ]9 b  c# Q4 k
    #属性变量描述性统计
    + c4 c0 d5 F' [% B7 E# {! Wwindows()) T4 U! _, h# r+ Q
    par(mfrow=c(2,3))                        1 b  f% H+ h+ u. D: w& }% l, G
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    . i) W$ y( E, s" E9 c2 P8 V1 M4 H6 ]boxplot(price~wuye)                                                                        % m% m, I# f, L) F$ }
    boxplot(price~fitment)        $ |5 M! M. V% w, r
    boxplot(price~ring)       
    ; Z2 l) n" v/ _& h5 Iboxplot(price~contype)
    & E9 g7 l, b; R5 J( V
    " O0 z+ g& I* U( _( C: S. x. D

    1 @$ C: y- s. K: k/ h8 U
    * v8 v! ~0 z8 D; W; n$ n; ~& R
    3 X  Y+ g- L) @' \; A( Q
    ##模型建立
    & d3 N  C  Q! G" Z; R3 w% |0 U
    3 B. I4 O/ H3 Y. {, W; {' O
    2 r) q3 T. ^3 c: Q" |
    #在方差分析模型基础上加入连续型变量5 B$ p0 W( M6 u4 a5 U; |" f8 I
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    0 t. d5 k0 A  l- canova(lm1)                #方差分析
    . u0 O* Z6 _4 L6 b8 v, C- c) Nsummary(lm1)              #模型参数估计等详细结果
    . D* t) O# ?! X0 \windows()8 S8 l% n- s- [! ^. V0 D  R4 [6 p
    par(mfrow=c(2,2)). x3 t, I3 i5 U" c
    plot(lm1,which=c(1:4))    #回归诊断做残差图- S) j2 o; C2 G9 K. U/ H/ o' N
    ' d% C9 V/ y+ S6 j9 |0 n3 p
    $ V/ o, j' m, D
    ( Q4 _* j" n8 o

    0 Y. M, o4 ^8 Q' ~0 M0 d( w& T% z##变量处理- D  O8 F6 y' \
    % W; @& V, H! J% B; K

    ( l: U7 O) ]+ Q: o3 U  `- z9 }###对不显著的变量采用分组的方式希望能达到显著的效果4 U3 L+ e, o3 C4 B% C& L  q" Y
    ##对容积率的处理
    8 n; f3 C+ m# J% v7 Xwindows(). @0 N! W7 Z' }
    n = 4
    / R6 f- ]. z" M* |/ f! Eboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        4 B! v% l5 u4 h
    table(ceiling(rong/n))                                                #容积率各分组下的样本数# A3 F4 g' Y! b: B
    ronggrp=1*(rong>n)                #进行二分类" `" |, K9 a/ L  m, p8 V. \! v/ z8 ]
    #ronggrp=ceiling(rong/n)        , _, y/ J. b' O3 o/ P- k
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    8 h! H! ?6 t7 t9 h0 y! Cwindows(), D, ^0 e) I8 {4 A5 }
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    . q" @6 ?) D( f, f2 K/ n4 Gwindows()
    5 @. e) \! q2 W; hpar(mfrow=c(1,2)). p3 e( F' B+ I0 k" `
    boxplot(rong~ring)                #容积率与环线箱型图5 l/ X/ _( S* \3 B' S+ M' z
    boxplot(price~ring)               #房价与环线箱型图 & n( g- k5 Z* t3 n: u" i
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    6 Y$ `+ H0 Q8 Mlm2=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( O" b- m( L0 L9 V/ Q
    anova(lm2)                #方差分析
      d0 }7 s# g0 hsummary(lm2)              #模型参数估计等详细结果# F7 M: i5 ]) ~& J# N
    windows()& Z3 I5 o8 b. v
    par(mfrow=c(2,2))+ m# u0 s0 r. C7 M: {) i/ _8 D
    plot(lm1,which=c(1:4))    #回归诊断- O, u# H5 p$ \8 k
    & z* |2 e4 z7 [1 [" y
    - l& ^7 T7 Z" g' X! `$ A5 w* b! l
    ##对小区面积的处理
    5 P2 [' J& m+ N3 z6 B; y3 csummary(area)
    ' S/ U3 D  X% P% p0 b2 G0 |* ?+ Lplot(area,price), j" }! I& h/ x' l. e# }' f
    windows()1 }# w4 @9 e0 \
    n = 1500001 s- x$ f. s* _7 `' I5 o
    boxplot(price~ceiling(area/n))                                                       
    % W# c$ e; K) \" q! k" E, Etable(ceiling(area/n))                                                               
      Q& [4 ?2 L; q" b7 _8 Z( B4 @areagrp=1*(area>n)4 z) H" i+ k* x: s1 J9 n+ O
    table(ceiling(areagrp))
    . a5 Z2 J6 j* J2 V/ _% F; T8 Kboxplot(price~ceiling(areagrp)): `5 D. O& p! i7 N) z3 S
    #加入小区面积分组的模型& }( n' K  U2 `$ @& K7 P$ @
    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)1 O4 ~2 ?2 M0 b4 e( p0 x4 n7 c, i
    anova(lm3)                #方差分析5 s4 ^: S# D, N$ Y" S* p1 f1 ~
    summary(lm3)              #模型参数估计等详细结果
    2 Q' E5 k6 K  \9 [windows()
      q2 _8 g5 F+ e; f4 q+ ypar(mfrow=c(2,2))
    / p' n: m0 M3 F% {$ g* {plot(lm3,which=c(1:4))    #回归诊断) X  E  l4 l( w# e4 P6 ?

    : m0 k8 \, D* }" q0 w2 n

      b7 b" x! \1 n* n5 E& ?##变量选择' V5 U# E* b& i/ K

    / C, ?4 D% C# I: Q& n* K

      a; E5 l% l) {' F7 u- M##AIC准则下的变量选择
    & ]: p! ~2 s6 |! \" E4 u5 ilm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    5 s4 J& c3 F& [  V  ksummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节2 o2 |8 A3 J' A. \. H; @8 G9 B
    ##BIC准则下的变量选择
    1 s8 L  T8 g! o- `+ ilm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    : f8 f* S- A- W* u& isummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    : O: t/ U0 R% z( `" H, X+ |2 f9 n, W. C3 K/ @) e4 `8 [

    6 A; {" l. x# S# L. `  H' s#选用AIC准则下的模型进行回归诊断' e3 O/ u+ _- i8 V* i
    windows()
    3 S! [0 {7 [, o+ \4 [par(mfrow=c(2,2))
    * x4 v4 b6 M2 O' u6 k. G/ vplot(lm4.aic,which=c(1:4))  . B1 n( `* y* q2 Q# H  f( `
    ; Y) J: T& a4 O3 r( \
    , m" i7 Q  F* y5 |1 t% i* L0 z7 k

    9 Y0 u+ w# \* b: [% H2 {# }

    ; a# d% S  Z2 _2 M9 L8 K##数据变换( \0 n* Q' T7 X
    1 H% ]+ k. o/ b! U3 H% ?" ?

    ) I8 e( w- h$ k/ d/ p4 \#box-cox变换
    : Q- d/ J& p9 J5 h4 j- q  e5 \5 ylibrary(MASS)
    7 h7 H* ]0 t' j5 j: Kb=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 a4 [9 J2 x- Y% D- _I=which(b$y==max(b$y))  #定位似然函数最大的位置
    & ^' q$ j' I$ Y: Ulambda = b$x[I] #精确的λ值$ |0 a8 ~1 \4 H
    #λ接近于0,为模型简洁性,可以直接进行对数变换( z( v# s: s. Z. F
    logprice <- log(price)" u$ M& g( I6 o$ c+ u, b$ @
    hist(logprice)
    2 i1 Z* c  i& Z/ ]+ ~+ U1 i) ?2 s
    6 n% n( D1 z) @% p" ?& `
    ##最终模型与诊断
    $ t, y, @) U- x+ f- T  X8 f1 M  |3 E9 p* G9 i" Q5 `

    + O0 m2 i6 ?! a# r' `& w# A! @lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    * Y; g) E  i# k+ kwindows()
    + T" G  Z3 J+ O7 o9 \/ ^5 F- w4 Q+ bpar(mfrow=c(2,2))
    $ k. w( H8 u: J' W% F2 b( I3 ?# ~plot(lm6,which=c(1:4))$ a$ D% X( r5 ~# _. ^
    anova(lm6)
    - m/ P4 n; C; isummary(lm6)4 d2 y3 U& L3 E& C$ {: ]6 M0 V
    1 E( q1 d5 t4 ?1 e' {8 X

    + o+ `6 P. h& S: X9 v/ R请关注数学中国网微博和数学中国公众号,联系QQ 3243710560( U+ Q/ I5 l+ s1 A/ ~6 W

    % ]+ e' _$ j/ c* u! v) w" g" |- D5 ^( P7 _; m" _2 T' V

    " V: {3 R& ]8 _" z0 R/ \: ?$ T: K  m0 s$ |& B1 _3 l' t: t. l
    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的分析没有( \* j; g! V: ^) i( v+ ?  x

    4 Y2 I2 c4 [/ B0 U4 A7 P

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
      }& s; L6 ~  D+ \( |( [( Q# A6 n, \- S) @4 T

    点评

    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
    - h9 h6 _& J0 `/ B6 G太好了,又认真的看了一次,发现自已差太多了
    , D. w# U2 R- N% J  v
    我每天会发一些好资源的: @2 |. [. ^/ C! V( s
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 ; v  B. o* A0 K. V% a
    一定会认真的看看,发现这是R的,有python的分析没有

    : i; _% L! T0 X" m' W有啊
    3 m2 C& v5 E5 V/ q. N/ s( A
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-7 02:10 , Processed in 0.513881 second(s), 78 queries .

    回顶部