QQ登录

只需要一步,快速开始

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

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。5 O- g0 u6 }- N) N" O9 x* L
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    # H6 m+ [2 a& `3 _/ g+ T) d行描述性统计分析,各连续型变量之间的相关关系如下:
    ( N; S2 k! i% m& P& ~- t) }6 z+ N& e' n. ?

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

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


    : i/ a! X( i; B3 }7 x
    # V' Q) M) Y4 z. e- J
    : @  c* o: d( A; O6 A最终模型残差图:6 d4 B& q2 {. [% L: [
    4 L+ r# X, W1 Z8 m0 n7 K. E) @
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:8 E! C* _' C$ ^7 v) d) D
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    & o/ t/ E! p$ ], l3 J/ g9 ^; V: X属性变量的具体影响在此处分析略去。, X5 h" l& h1 M' |8 I9 Q
    连续型变量的影响主要为:
    + w, c6 [& b9 ~% f# }& `; e 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;! m# G; C; M" b. a3 ^7 A
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;3 H* t, P9 O' `& L- h3 d
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:# f) x  m: o% d' a7 z
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    0 {0 ^3 G: t# F8 g% u 容积率与环线之间存在着交互效应。. o" m% C2 T2 X+ k* y
    rm(list=ls())                                                                                #清空当前工作空间( m. H: U- p& Q8 f3 l& X
    setwd("D:/回归分析")% }  Y$ `, ]- p( M
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a2 |6 V& ?2 ~9 i- d
    View(a)
    % K: w, N9 f  a4 F' {5 R+ D  ^attach(a)8 u9 k  F% Q: w; E  [0 u; _
    names(a)
    4 ]. ^* S  @+ i# g( m* u- n0 {, \2 ]  F5 v8 p
    ; P8 m- y* {9 _9 |  k. l+ `, G
    ##描述性统计
    . l- ], n3 c1 S. K
    8 {3 f8 ]9 d- x$ r
    + q9 _# |2 {7 ?7 v9 P* D2 d
    #未做处理的响应变量分布情况6 v5 {; T9 [7 L( t. ~
    par(mfrow=c(1,1))
    / ]* B9 J4 N* L+ N* t5 n+ D; K+ q9 Ihist(price)* N$ P' z1 _2 B, [; Y+ L7 R
    summary(price)        #查看响应变量的描述统计量
    / T. M* W2 D* i: U' e#连续型变量描述性统计
    $ D8 Q' v1 R" u( T6 k  m* Y  ]windows()+ i8 ^. m0 |7 l' B& |& Z  ^
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图1 O: g# X! u& R
    par(mfrow=c(2,2))        5 ]4 T4 @9 C2 M, |: S
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    / R3 t0 t" a+ D3 ]# v7 t- uplot(lv,price)
    . i  M* B9 P" t5 I/ [plot(area,price); d0 _  `' U. o+ S' Z8 b+ ]; m
    plot(ratio,price)
    8 H3 W$ S2 e2 }# ]summary(a[,c(6:10)])  #查看连续型变量的描述统计量, c$ J! q" q4 v6 k3 ?
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    ! r. a# g5 Z, `( F#属性变量描述性统计
    ' ]6 _: `- @" j2 _* R% i/ mwindows()3 C4 Q7 e/ [1 F* \2 }6 v% |
    par(mfrow=c(2,3))                        % @& O8 s) q' C* ~
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图5 H2 i% I0 w& f% r( H
    boxplot(price~wuye)                                                                       
    9 P4 g& t/ Q0 ]4 a, h5 Uboxplot(price~fitment)        3 Y- o# A/ P. S+ @, L' ~7 o
    boxplot(price~ring)        , }4 d0 D$ d7 F& _
    boxplot(price~contype)5 r! U4 ^- O5 V: L( U: o3 ?6 H2 I  O
    * Q' x; v" x* b  {) E7 m
    8 A2 f: H  N$ S. @, l+ h

    0 t4 S# D, S7 E

    $ B1 H2 z$ j/ g0 E. l$ w5 Y2 p##模型建立
      w! d4 g7 {7 a* ^/ |& ^' h% n! b! v* t* p4 f6 |" x# U% Z
    " W' v: [2 M$ N' |
    #在方差分析模型基础上加入连续型变量5 B( U3 X: ~: q/ q
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    5 D7 U1 ?  Z- l' o) aanova(lm1)                #方差分析
    ; b$ U* z; z2 I$ \summary(lm1)              #模型参数估计等详细结果
    , e* ]+ @; M6 v0 twindows()
    : m8 t& M/ ?5 i; A. qpar(mfrow=c(2,2))
    7 Z- _0 U3 u" d9 a, xplot(lm1,which=c(1:4))    #回归诊断做残差图( ~& o; P3 F3 ^7 e) X

    ' }4 Y0 h0 P9 I" M) x4 I+ }

    & }1 v2 V1 t1 e1 n
    4 {' ?) C. ~3 g! [2 G
    , ~5 v% q, X2 J6 i/ a
    ##变量处理  b5 \) W2 \3 z, S' Y2 _5 [8 w9 V

    3 }0 ?$ G1 j# m

      r! d3 s' C4 M( p: T& y###对不显著的变量采用分组的方式希望能达到显著的效果
    2 A" x4 X4 x- ?( C& V: E/ f# _8 v$ K##对容积率的处理
    , O. x$ u2 l  C& T8 X3 `% [windows(); G3 s5 Q. G+ s4 p+ g2 f. c
    n = 4; F4 X, \  H1 f. x; y2 C
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    - [% i& S  Z  i, {table(ceiling(rong/n))                                                #容积率各分组下的样本数
    6 O6 \5 K' B( y& G- w8 g# ?ronggrp=1*(rong>n)                #进行二分类; Y# b$ ?$ ]. U4 P" t- J
    #ronggrp=ceiling(rong/n)       
    6 V) M2 |# n4 ]+ X. U6 b+ _table(ceiling(ronggrp))           #容积率二分类下的样本数
    . n' {* J, c! c' U. @9 \* L3 Lwindows(), s: R$ {- K/ x( H3 Z" c
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    & B( A0 v$ X1 `4 V# K& qwindows()! s2 w  F3 d/ ]; M" w. G; _. g
    par(mfrow=c(1,2))
    ' P. d: @9 I3 Eboxplot(rong~ring)                #容积率与环线箱型图' F+ t+ ]/ C4 x, e1 ~. f
    boxplot(price~ring)               #房价与环线箱型图 ! _0 E8 D! U7 L! b& @5 k
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    2 ~+ Y/ P. G! X3 \! U/ c5 O* Nlm2=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)
    . {' _1 E* E6 `- R2 ~: xanova(lm2)                #方差分析
    : E1 y9 J  e& S1 o4 N. D) \summary(lm2)              #模型参数估计等详细结果2 k9 B, Q# {+ B
    windows()# D  s! t: a* h1 y
    par(mfrow=c(2,2))5 z6 n; U4 O5 k2 N( U6 c  ]" t( }
    plot(lm1,which=c(1:4))    #回归诊断5 ~" j1 C4 {' u- e
    2 n# L3 w6 a8 o  x# j! J

    5 l  v  y% V% S##对小区面积的处理
    ; h$ m' \- x/ [* hsummary(area)5 O; R. O: \- `; j
    plot(area,price)# n0 h+ w2 o4 S
    windows()4 p" E4 M# v; \* i, _# e( R' J
    n = 150000# f5 R5 t2 A' l
    boxplot(price~ceiling(area/n))                                                       
    4 W4 t' z$ e" W: h" ptable(ceiling(area/n))                                                                " \% x) @4 s. X2 s8 G
    areagrp=1*(area>n)
    + b8 S  y5 K4 q8 o, E! o- S: atable(ceiling(areagrp))/ `, i/ N9 D; T# @+ A/ [( W
    boxplot(price~ceiling(areagrp))
    , N. j. M9 Q2 }2 l+ s7 Y  W- E1 R; T( G#加入小区面积分组的模型+ a9 i/ {6 w  O7 A+ n. \3 f
    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)
    6 I+ k2 C4 C9 i" m! \anova(lm3)                #方差分析
    ; I0 d* l. D7 c5 \7 @- Osummary(lm3)              #模型参数估计等详细结果
    1 {; N: I* r( V8 D, p3 _: B9 e3 g! mwindows(): j4 @' j0 i+ m" B( ]1 M
    par(mfrow=c(2,2))
    ' I. Y) A/ B9 l2 W% ?plot(lm3,which=c(1:4))    #回归诊断) F( ~- ~% L2 T$ ?2 o: R5 j
    & o3 l. P3 Q7 H

    / C% B$ L/ j; g( _$ Q. m# u% F##变量选择$ a# y# K5 Z% C: }( d, X
    * k- z9 K4 K. x' i- ~6 z. n

    2 ~2 n. v! C: y5 a$ f$ j! v##AIC准则下的变量选择  t* `0 K2 J$ E6 S
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic+ v/ |, s3 e% e9 S' S
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    3 M! l% h" d2 r7 g, u##BIC准则下的变量选择$ E7 A6 N! i' ?' l
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic3 f" O2 u* A3 k; g3 y" y8 T9 S; ^
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节5 s" @/ a2 w) v/ H+ @9 j7 W' J# D

    0 o& S6 `; h" F3 ]+ V" j

    / Z, I9 C: c0 A; n#选用AIC准则下的模型进行回归诊断% y# O9 |/ k1 s- U# L: R
    windows()
    % I* I: G9 l7 ]+ Q; X* bpar(mfrow=c(2,2))5 l7 z4 d1 B( M+ t
    plot(lm4.aic,which=c(1:4))  
    " d7 c$ i: ^4 X; n2 ?7 D& g7 B+ o5 c/ S- F
    3 c2 D- O3 W& G" j! U

    % w$ V0 z" n7 `2 |" M/ S7 T

    9 C0 A( Q: ~# [, S2 h##数据变换! |' T* P1 v# n* J8 F  m- T

    ; D. @  i' H9 ]  ^; `: c! j2 d) V

    ; I* E/ h' D( j" G8 }#box-cox变换6 V% L! I0 f+ ?
    library(MASS)/ |( _5 p& o5 |$ j) m
    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)): A" D6 B  y! ]# T" Y
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    4 L5 A" `7 D0 E! j& M. q, l( |lambda = b$x[I] #精确的λ值
    $ K" |/ Q; @2 l#λ接近于0,为模型简洁性,可以直接进行对数变换: O2 O  l( ~, b2 a& u; y% }' r
    logprice <- log(price)
    ( G9 W8 A/ r( ?' c- }. \hist(logprice)
    1 m; H  R  l' F; k8 g
    & O3 b$ j% ]5 G/ F3 O* M

    . f6 H  [3 S1 p- B6 {& i##最终模型与诊断$ s  G6 }! C) M! f$ Q! Q

    ; x- {8 m0 S4 H* s1 X; b9 H( L6 u

      [" o. `2 c+ ?lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    6 b  V8 o8 u) ]: j# H9 ]$ Jwindows()+ H# x  s& B! {( F0 A! ]( Z4 H" ?- {
    par(mfrow=c(2,2))5 R! B0 C8 m" [
    plot(lm6,which=c(1:4))
    " R( e- h( ]8 p+ Wanova(lm6)
    5 G& n, [! X* R& @- C2 msummary(lm6)  ^8 t/ L7 ?3 J! z" K: t, b

    , t& e5 W& l! o' j% o
    4 U% J3 @2 b' c请关注数学中国网微博和数学中国公众号,联系QQ 32437105603 Z& u% T1 H: x/ J4 m

    $ u& r; v3 D9 W7 D: b2 M5 i% x/ \% t. g5 z, Y* h
    5 D' [3 j- [1 n4 l

    * O' R$ l  T  w5 o0 T
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    0 `) `- f( g, N$ r/ N
    " e. M, u- z& |8 A' ~% m

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了) \( g. ]$ b6 D$ G4 e( T! p1 u
    ! G& D, v4 |% E0 p6 P" E

    点评

    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
    7 p9 I% ]- S9 d; A太好了,又认真的看了一次,发现自已差太多了
      K5 W# \$ D( L6 D- D
    我每天会发一些好资源的  U) ]* u9 t. b) Y9 O1 h7 |' o/ B) `
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 2 Z9 t) Z6 P) p
    一定会认真的看看,发现这是R的,有python的分析没有
    & f: _! a* B$ ^0 g6 f( j7 x
    有啊
    / s& A7 q* c) D) T; O, ]% \
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-5-9 21:52 , Processed in 0.665278 second(s), 78 queries .

    回顶部