QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析' l1 a/ W- E/ z7 C- s$ x+ D

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    " w4 v& t, G3 o; w; y这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    * l9 U$ \$ u5 y7 ]/ M
    行描述性统计分析,各连续型变量之间的相关关系如下:
    " n7 I) T/ z+ d+ Z; n" u8 d1 M8 i' a$ y& c

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

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

    " ^6 ~- I1 `9 Y8 x6 b+ S
    " v+ h% t0 g; q# U+ v8 b$ N( L

    3 }/ C+ O  \6 B$ j) H# I1 e最终模型残差图:/ c  B% G9 t2 Z3 x6 z! M9 |
    $ V* X: V) H4 b) K  i
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    ) J0 j; D# J/ g2 v5 ?* T5 D属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    ) ]" u8 o" \9 w& v1 s, W9 k; d属性变量的具体影响在此处分析略去。
    ' M% ?1 y' F, @连续型变量的影响主要为:
    * T# C' t; o1 `) N% s 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    ( f" J, F* p# I* @$ H  { 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    9 {7 Z; V1 s7 T2 k/ n6 {同时,原本为连续型变量的容积率经过离散化变为属性变量后:1 m& P, G7 q: I0 \% f/ J
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;& @+ |6 p4 v& C' D& |
     容积率与环线之间存在着交互效应。  ^" i; t) |5 ^: Y' P" N
    rm(list=ls())                                                                                #清空当前工作空间
    2 ~- `" a* d( s6 h- Q" I) o. Vsetwd("D:/回归分析"); F' h5 o* O$ E6 w1 r  M6 I7 L
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    4 O/ s2 n9 f/ x: J4 cView(a)) l* D, h) J  T
    attach(a)7 F& h  W" H- [) T9 E8 c* E$ d
    names(a)
    " s$ h' Q: {1 h8 k3 F9 u" e& U/ e, V0 ]; q% Y0 R
    * p* G6 P; e! m  z% x& p" b
    ##描述性统计
    # n' i" ]  o0 S( S- o. O
    ) ?9 @: I- N. g+ i5 N

    % H! o$ t7 |! \1 K#未做处理的响应变量分布情况# v* b2 _. l8 [
    par(mfrow=c(1,1))% f& a; u0 ^$ @- t& A5 ^$ j
    hist(price)9 M+ P9 C5 O' u; \2 P& B" o, p
    summary(price)        #查看响应变量的描述统计量
    ) j+ E" z6 r2 \7 Z/ s8 h) \! Q#连续型变量描述性统计
    8 R5 [  L6 I( e+ @2 g1 E* Owindows()' L, d: ~1 ]  E( F" ], o' ]6 x; ^8 I/ e0 R
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图7 y& |9 C5 i! e
    par(mfrow=c(2,2))       
    ! s& j" H# g+ g, B) a7 y% ^plot(rong,price)      #每个连续型因变量与响应变量间的散点图0 B9 }" s1 N* h. I4 h
    plot(lv,price)1 g6 d/ \- Q7 G* N  y- ]
    plot(area,price)
    $ ]8 c7 u1 P* a# I" {plot(ratio,price)
    3 z( n9 v! a' @; hsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    $ j  ?6 g% E8 J: Fcor(a[,c(6:10)])      #查看连续型变量的相关系数! j# V/ T. P  \
    #属性变量描述性统计
    $ q6 x; Z9 u+ t9 k0 j0 ]1 ]4 twindows(); C1 T3 |* o7 Z. n
    par(mfrow=c(2,3))                        + ?( V* g1 I$ j$ ^' `
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    1 D+ w+ y) V# X$ D6 y1 ]5 Jboxplot(price~wuye)                                                                       
      f) `8 _- ~. N( I/ Q+ Mboxplot(price~fitment)        8 @% Q5 b2 Q7 W, K( C: |
    boxplot(price~ring)        ! d, K1 c% y9 ]) e3 h; ]4 l
    boxplot(price~contype)
    # U7 n$ }) p7 _0 B# l4 K  V# ~5 h/ A
    ' h0 C2 w* q6 N. H7 y" m1 b

    ( j  K' h$ u( C- v6 f2 Q$ F
    ; U& k. q* F% [( |, O
    ##模型建立
    * b$ H( i2 l; R5 b/ s! w. a6 N
    * k9 }1 n: G; N; C

    : h- w  I  k0 a! v#在方差分析模型基础上加入连续型变量
    3 e1 J9 i9 X4 L% x$ m9 W9 w3 q2 g% Qlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)% |- K' N4 W4 I8 f4 _! Q7 E
    anova(lm1)                #方差分析
      F- U5 D5 ]4 O1 ?! F; P+ ]7 qsummary(lm1)              #模型参数估计等详细结果
    ( V8 j* S1 H- ^/ q! {3 j5 R  awindows()& r: ?+ ^0 R" I
    par(mfrow=c(2,2))' P6 |3 K2 f9 `, D" j" ^7 z
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    2 A+ B& y7 m  b( ]- W; M" F2 ~4 v" b3 k  a! j

    1 J3 @5 }' J3 \0 B6 z1 s0 H7 g+ P" h, Q  k- v2 [

    ' h! t+ Z/ l4 n; k5 r  q4 J##变量处理0 y' k. C! t1 C  e) A
    : E5 H2 M! h1 z
    4 \) A( W6 O; h% w' c( g
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    1 p6 Q+ s6 V1 \5 M0 ~' G##对容积率的处理/ Z( H! J! u/ v3 h4 J  k8 K
    windows()
    : W! [" K% S! l, `% d+ O$ Bn = 4
    ' ]/ M; S/ M3 W+ x' y6 Rboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        2 H. B% Q& q) P4 {) H. ^; ]
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    " H  l  f) \! F3 ~  l  m: v. |ronggrp=1*(rong>n)                #进行二分类
    " R; x5 {! G) V3 B* \" n#ronggrp=ceiling(rong/n)       
    - n: ?" U4 a& m4 U7 rtable(ceiling(ronggrp))           #容积率二分类下的样本数4 R% t3 A" ]$ |
    windows()
    - p! ^( A7 U, W+ W" G+ Dboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图! W9 ^0 T- o5 |1 ]3 N
    windows()/ n6 Y7 Y4 ^2 Z$ k+ d
    par(mfrow=c(1,2))* N. R' l1 l8 ?3 h/ S
    boxplot(rong~ring)                #容积率与环线箱型图5 d' B; b# W/ Q: e2 N5 p
    boxplot(price~ring)               #房价与环线箱型图
    - s% _& U6 X3 O7 v0 P! {#加入容积率分组和容积率分组*所在环线交互因子的模型
    - ]+ Y6 F5 a2 b9 y4 s4 Zlm2=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)
    5 j; i2 K0 b& ~" r( r% Z% Lanova(lm2)                #方差分析
      L$ Q4 G! m6 ^* m& @, J* Ksummary(lm2)              #模型参数估计等详细结果
    + e5 g$ [) t, z$ t* s, @windows()7 j: h0 B0 p; M% D* ?* \7 V3 m
    par(mfrow=c(2,2)), l$ |8 V5 ^& X: b: n, n2 e' A1 a" j* Y
    plot(lm1,which=c(1:4))    #回归诊断, b& A! g' v/ j2 `' [, n" q
    5 A2 u+ N$ U4 g4 O* m6 S+ Z, I

    ( k' Z0 O3 Z$ x& }+ `##对小区面积的处理  N; L6 N3 q4 p1 `- A6 w$ E
    summary(area), O0 q" {5 |! r) P0 Q6 n
    plot(area,price)
    " l4 ~! b/ E) G  _windows()
    9 G0 b2 e) ~* J3 g" Wn = 150000
    % f* o; p6 ^7 T: ]0 x; v$ lboxplot(price~ceiling(area/n))                                                       
    / I2 J: G7 K" ntable(ceiling(area/n))                                                                1 p' s( Z" @7 P+ |# D. Q; a, I
    areagrp=1*(area>n)- s( H# ~( i% m, K
    table(ceiling(areagrp))3 i* t6 E, P; b
    boxplot(price~ceiling(areagrp))
    ; _( o5 S% [( v* [$ F#加入小区面积分组的模型
    3 _0 o2 r: x$ E( Q( T, e3 q, V* Plm3=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)$ `/ k/ @+ ^* V: [
    anova(lm3)                #方差分析
    2 N2 @( J5 `6 Y% e2 Y9 Y" Esummary(lm3)              #模型参数估计等详细结果
    / m% _0 w* p6 Z4 p8 x+ [* X. wwindows()# q( w5 Y1 ]1 t; E3 [) |/ q
    par(mfrow=c(2,2))
    2 ?1 K) [  d, s0 }0 m8 J' W9 ?7 `plot(lm3,which=c(1:4))    #回归诊断* K; T; G0 c% c! y

    # `4 L! m. Q; D9 G

    8 O# `) b6 S* I, [1 y8 b##变量选择4 |; S1 W% z. j  A! H3 b6 Q! ?

    9 R6 x. H/ F7 q6 p

    2 u% ~, {9 t: y' z6 Q  ^##AIC准则下的变量选择) H; b& b9 L! n9 C8 f; s
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic# B7 ^7 r0 |: h2 ]3 l
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节5 [2 N) J; b- g; S- ?9 G
    ##BIC准则下的变量选择. ?/ d) \8 d' [) p. y: s
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    ' x; d. n# Q, A5 Q# F0 Vsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    7 F! L  e2 w  y8 i
    7 S+ B8 M' O9 i/ I7 l
    ) N8 ?  t( v$ B5 Q! r" `
    #选用AIC准则下的模型进行回归诊断" C2 ^0 [2 Q0 o( `) N# u
    windows()* t1 v% h2 H4 D+ o! h
    par(mfrow=c(2,2))0 I* r, q" P0 R% ], J
    plot(lm4.aic,which=c(1:4))  . @1 m1 o8 p% Z6 ?: j+ @$ ^$ {

    . x4 ]& s4 H! r  L1 K: J
    , m$ ^  {* E: g

    1 h' t4 d' o# X
    9 L* v: l2 ]7 N+ t6 x( t6 B
    ##数据变换! g: u2 S( ]/ f
    ; D# J8 \/ O* u  H- N
    . R' `" B  e% E# m3 h
    #box-cox变换
    : I% _6 d' e1 p0 G( i; Flibrary(MASS)" S4 O# K# f' {9 l5 }
    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))
    - ^1 j& n2 @0 _I=which(b$y==max(b$y))  #定位似然函数最大的位置
    ! y- V# X" x( Klambda = b$x[I] #精确的λ值
    . x/ v" c6 p1 ?3 r#λ接近于0,为模型简洁性,可以直接进行对数变换
    1 V# b& A8 i2 F5 P& a( `logprice <- log(price)% W; @9 S* F; \# s' q. f
    hist(logprice)
    0 m1 q3 F% W- R/ K0 s! M0 Z2 ]0 I; r0 }6 a8 r( A4 U9 R
    3 r" |7 y) Q! i
    ##最终模型与诊断. P+ m  \0 g" d; y
    : K/ }/ N- _. o$ Z
    ) s6 o! Q: A  Q# s4 x) L9 _* X7 u
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    3 C& s: L8 k/ r! g2 V6 G* L9 Swindows()2 V. {2 J1 F# r' w
    par(mfrow=c(2,2))
    & K1 X1 O3 p8 ]( y: K. _plot(lm6,which=c(1:4))9 e: M& g2 ?$ ^6 ?$ S3 W0 C8 Z
    anova(lm6)
    1 ^. P+ |; ]. P- g0 D7 V4 m' esummary(lm6)
    6 G& o/ `: C# Y6 T) ^8 J
    4 J3 p2 Y, t5 H$ r' x1 K+ G! }2 ]/ I
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560) U3 D" K: z3 m2 g3 x( u
    / T. }, [1 e' \, Q

    2 |7 J" A: W  _6 C) ?1 y. B8 p7 m1 Y2 h7 L, b" d7 a- T
    # W0 \* @2 w, T7 u) _. z& r
    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的分析没有
    # X* V1 Q  M% f2 O- Y0 d! n" ~( W) h" h# o! H

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    7 |' e+ P" c: E" C4 J* z" K0 }# x7 j6 {/ m' S  R1 k6 A9 G; d

    点评

    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 + ?8 }7 B  V5 u! M3 \( @5 R4 Y( |
    太好了,又认真的看了一次,发现自已差太多了
    6 Y6 K3 c' N8 X0 M- m( k0 s
    我每天会发一些好资源的
    4 E+ T+ Y" |' `5 M9 u
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 * |- P' b% m& [( F
    一定会认真的看看,发现这是R的,有python的分析没有

    2 {6 {/ ~0 E2 q4 l, o3 ~# q有啊& U. l  w) m. H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 07:12 , Processed in 0.702429 second(s), 82 queries .

    回顶部