QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析0 H) D( d, b: O0 u3 c1 f) @8 P

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    * D' b1 N2 t! l+ ?7 l这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    : k# y: q2 P; u% q; s) e. H9 n
    行描述性统计分析,各连续型变量之间的相关关系如下:: y' U- V* y) g; f2 N
    & d' C* _$ h" E8 Z6 v1 E

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

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

    5 J( y" j5 Z! h6 d; X! R: v
    " I* z. i6 p- |/ x) D; U

    ) Z4 f) e( q2 h' _最终模型残差图:0 Y: p" _, E2 q/ i0 v
    7 E/ F$ }: s" u8 e% d! M1 x
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    4 p' f% ~/ B% p9 u$ N! Y' B4 C2 s7 d属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    5 k; R: V* d7 O6 `. o& B属性变量的具体影响在此处分析略去。  ?1 h" O* o* U: ?, Q3 r
    连续型变量的影响主要为:
    : ^5 t8 F5 K$ |  } 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    : a& J2 r6 ?& u0 i7 X6 G4 ? 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;1 `7 ]  F1 N8 Z( v  f
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    ; T# g# x/ s' Q# y, h6 y/ ~ 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;/ y/ `, C! c% |5 {4 f& R+ h, k
     容积率与环线之间存在着交互效应。
    " }7 t& u$ B+ ^3 ~0 x" `5 r% Crm(list=ls())                                                                                #清空当前工作空间
    ' L8 o- J- B; i0 G1 m7 Rsetwd("D:/回归分析")
    ' }  O9 E! q! ~! T8 sa=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a' p6 U( b/ \0 N
    View(a)+ O( t6 B- t/ O, u- }* }
    attach(a)2 d3 X1 @1 w/ f6 Q5 _, J; `7 ^3 I
    names(a)" K. o- C: z% A+ v! Q

    6 a0 |+ p1 G! _

    7 B4 N. u. I- A8 O3 h" A2 b+ E" i##描述性统计7 L8 t1 z9 H" \# Z) Y( ~
    2 g$ c/ U+ t3 D( z/ L. H) g( T

    ( c! U+ G/ Q1 D0 s/ F/ }#未做处理的响应变量分布情况' D+ C' K3 D% N8 {; z7 y
    par(mfrow=c(1,1)); U' E( N# Q: V  Y# R0 e2 s; }
    hist(price)
    8 a: F( ^2 Z- A! J9 Wsummary(price)        #查看响应变量的描述统计量9 t( _2 Z/ E% L. K5 r5 M
    #连续型变量描述性统计
    # X9 l% I% Q" o2 Q& t% l- ^& T+ u) Hwindows()
    ' x1 X4 G: W" d: m2 }2 tpairs(a[,c(6:10)])    #所有连续型变量间的散点图" X4 v* Z/ i, k, q+ d! K# z
    par(mfrow=c(2,2))       
    . x) t/ M8 a# h6 |' qplot(rong,price)      #每个连续型因变量与响应变量间的散点图0 t# Z  o/ \# N
    plot(lv,price)
    ( ~9 P2 {/ ^( ^6 V# qplot(area,price)5 U; Q6 y; S; E9 O0 c. s
    plot(ratio,price)
    3 |( m. Z' a- m) Q) Msummary(a[,c(6:10)])  #查看连续型变量的描述统计量* G; ?# _, J8 k9 a3 Z- H
    cor(a[,c(6:10)])      #查看连续型变量的相关系数# C% Z. t7 `$ P: a5 r  J6 B
    #属性变量描述性统计# L" y* v1 F; k
    windows()" {6 ^2 z& i8 \0 I# h- i
    par(mfrow=c(2,3))                          X8 g: {) ]4 u
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    ; @+ `5 ^1 n) _! b8 r$ Y0 lboxplot(price~wuye)                                                                        : x! S0 j7 o0 t9 B5 a6 J
    boxplot(price~fitment)        1 i$ T8 i. \. R6 g$ J1 ~
    boxplot(price~ring)        7 B( {+ }( a5 c/ u) P1 x* J) C
    boxplot(price~contype)
    1 H# b( p2 H- e6 ?# C9 j1 \; c3 ?: E8 q. H+ ^+ B9 O

    - K: }# j' Y1 B/ `( f/ P- b0 |' m) ^7 a7 _$ ^

    / I4 o8 A  F, A" U/ u, L) F, j##模型建立, U% B) h1 z! |" G2 r

    / E4 Y: Q' ^) X# E; _3 e& d& F

    # `1 s0 Y- {' e) \. N+ `) O9 @#在方差分析模型基础上加入连续型变量/ V  [/ C. P7 U% q6 `3 G
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    3 u. C) W1 w1 _( Lanova(lm1)                #方差分析
    2 A, \. y0 A* msummary(lm1)              #模型参数估计等详细结果' e* F; Z7 y" d8 ]4 i& l. J
    windows(), ~, b* x# L" S. l/ M: i/ o
    par(mfrow=c(2,2)), X5 W  n- F, v1 Z7 @6 F! ]7 a) I
    plot(lm1,which=c(1:4))    #回归诊断做残差图* I, k5 P/ E1 d* G: ^1 M
    $ D* v, E2 K  }% E0 {1 ?

    1 E5 h, S& G% Y3 ?
    2 q$ B0 f! q; X  g" N: C

    " ^1 B8 ^4 l: {7 m, @##变量处理
    $ w" |: W% k. Q4 B
    $ p6 _" _2 c9 w/ O  D6 g
    $ {3 _2 l( W- I( Y0 p) t+ S
    ###对不显著的变量采用分组的方式希望能达到显著的效果" G- v0 i: s) i
    ##对容积率的处理
    8 s8 F8 x$ t8 H/ f( a1 Iwindows()
    ; J. {0 ]* Z2 A9 Y4 X  o; V$ ]n = 4
    6 s+ W" @% N9 \8 D0 Rboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        . u. ~: ~$ S( o( U$ x6 d. @) z
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    3 l! Z' u" P5 m4 lronggrp=1*(rong>n)                #进行二分类
    ; G1 L2 K% ^! k6 j& C#ronggrp=ceiling(rong/n)       
    " v: `% _) B0 ?- F  W" ~& ztable(ceiling(ronggrp))           #容积率二分类下的样本数
    + x7 q# F# ~8 [7 W' O) Mwindows()
    ' g3 t" v  n/ g" V, J' c0 [' Yboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图3 d, r3 h# A1 f5 T
    windows()% N5 Q7 Y6 f+ q' C& @
    par(mfrow=c(1,2)), R- l7 `; B: u4 a; U, l
    boxplot(rong~ring)                #容积率与环线箱型图* |5 O6 J3 E8 i$ ~( D$ W5 X* d
    boxplot(price~ring)               #房价与环线箱型图 & ^0 Y2 s3 X# w2 p" W
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    5 o" b/ [+ D, Xlm2=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)% i. p, I( R8 T% p, c( q' w8 @
    anova(lm2)                #方差分析
    8 q( ?2 Y2 N( P( O& t/ Esummary(lm2)              #模型参数估计等详细结果
    " i: H, K& i- n0 T% k' Fwindows()$ O, n- Q; z6 H2 x% t. c2 a
    par(mfrow=c(2,2))/ G* _/ Q( G1 l- M9 i
    plot(lm1,which=c(1:4))    #回归诊断" y. X. r: w  L! b- s( s2 P# x9 k& N
    0 P; {, n! Z& A" @- k
    * F! z' p4 |  u* Q. y! I( u# w
    ##对小区面积的处理- |! _2 Z$ y* i1 {5 N
    summary(area). n5 i* x! Z% ~9 h" `
    plot(area,price)' C, }9 r* H* h+ M
    windows()( G# k" ]7 l# y* ^/ m
    n = 150000
    , p/ v2 ]& p5 y& Tboxplot(price~ceiling(area/n))                                                        - E/ ?8 L" ^) ~: a* f' O! ^
    table(ceiling(area/n))                                                                $ M- ~* Q& H$ h9 Z
    areagrp=1*(area>n)
    : [- d# A) J- ?5 Ctable(ceiling(areagrp))
    - H3 U9 K8 S1 n2 Oboxplot(price~ceiling(areagrp))
    ! G# B/ h* W; w# R/ E#加入小区面积分组的模型
    - p0 \9 V% _% Llm3=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)
    / |! b; ^6 f- @, d; ~/ @anova(lm3)                #方差分析" K+ n; M: V# j8 {" Z/ v6 C
    summary(lm3)              #模型参数估计等详细结果7 [# ^# E) ^+ ^, ?
    windows()
    * ?' ?1 r' l1 [" ~2 ppar(mfrow=c(2,2))0 R; Q) D% \; L' J( c4 v2 Y
    plot(lm3,which=c(1:4))    #回归诊断
    ' W0 a8 L8 \7 Q( J+ S* E4 D, x/ n% n. f
    1 \8 a7 }7 f9 {; k; l2 Q
    ##变量选择
    5 O: Q  i2 L9 S5 i% N! N# j4 c
    5 E' v, J4 j' h
    " p8 b& O5 b- C4 A. v0 t
    ##AIC准则下的变量选择) u3 u0 i* N- t4 o3 J2 P0 Z
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    0 W9 t; v, v3 d4 t5 U/ z8 x/ Rsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    ) s1 C4 U4 }& t4 `2 ~##BIC准则下的变量选择
    . j5 _5 t, r/ J( u1 C  y: P6 L, Rlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic3 k! s* Z+ L4 `6 g  [) ^  V# Q
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节2 q$ s# F; {3 _  k7 ?

    9 Q4 U: L8 X) ]: N3 I4 R
    : Z7 v5 ]- |4 y9 T* V. a/ ]! G
    #选用AIC准则下的模型进行回归诊断% r3 t+ y0 i7 z/ I. o* g8 Z
    windows()  I" J' F) |7 a, J7 z: X' a
    par(mfrow=c(2,2))
    9 i4 Z2 m. K2 c9 Z4 G% e+ Aplot(lm4.aic,which=c(1:4))  + G+ q, Y6 h) F9 |5 n9 J/ G
    5 s0 u6 F# w, U/ P3 N8 \7 ~0 G

    8 R# c* y7 V' T: Z& H# `+ O! ^0 C& B5 S8 x! n0 l; U

    / ~2 A8 j1 x( i##数据变换- p% @7 H# }5 q$ q
    6 }4 X+ |7 ?& J6 Q5 Y7 U

    5 y3 P" Z% A) D( o, u% t( m# J6 n, g#box-cox变换
    * G" z+ |* P* Wlibrary(MASS)
    + L- U6 l1 t# Z! @0 U1 T; Ob=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))
    * E! x8 q0 Z. b, z. B0 |5 p" pI=which(b$y==max(b$y))  #定位似然函数最大的位置! C" z! P; ^, K) E. [, j
    lambda = b$x[I] #精确的λ值
    5 L) u: i9 l5 l# h  u; @) F#λ接近于0,为模型简洁性,可以直接进行对数变换' I% H* t/ U( ~9 s8 x/ B" N$ G
    logprice <- log(price)- P# C( k4 P7 f1 v% N% u
    hist(logprice)
    $ _0 x0 G/ \/ L% ^2 J( p4 E7 [' V3 M: ~# o
    3 z+ ]) x. h# _
    ##最终模型与诊断
    : F. n) d! [' g  i4 n4 N( L1 L! S/ E% l" ?, E$ }( A/ t
    : R7 A: L5 X8 a9 J; h- k
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)" q* N3 ?+ v% `3 Q; t6 V
    windows()
    % Z2 j1 s- C' u- O9 A3 wpar(mfrow=c(2,2))$ u8 H' C  O( v- X( \8 F
    plot(lm6,which=c(1:4))
    , h% _' t1 |0 S  k  }( vanova(lm6)
    % t1 H* P7 q/ C9 h* V8 [summary(lm6)
    9 X1 ]9 D9 o2 I' M+ b2 s/ I* ~
    ) S7 O( X: Z* N1 o" [
    , Y6 |% \* S( w$ N8 r6 U请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    % f9 @/ z: P4 _9 n8 F% {

    4 L5 I1 o1 t' k0 K, f0 ]) g; m$ p, Y
    9 D: b  e1 K7 P& Y1 H
    6 t, r) X: G4 _  w
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有, C. Y4 a8 R3 Q1 n, ~: T" u2 ]# o
    - ^" i2 {: C7 R6 I

    点评

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

    使用道具 举报

    sjlxdn        

    1

    主题

    2

    听众

    155

    积分

    升级  27.5%

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

    [LV.5]常住居民I

    国际赛参赛者

    回复

    使用道具 举报

    9

    主题

    14

    听众

    685

    积分

    升级  21.25%

  • TA的每日心情
    无聊
    2025-8-2 10:45
  • 签到天数: 696 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ( f3 M) N* }3 h) ^3 Q! f
    & @5 r3 g3 n  \; [. j

    点评

    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
    * E- v) \) E( P太好了,又认真的看了一次,发现自已差太多了
    0 b9 O4 C0 p% t( r0 ~7 {" E
    我每天会发一些好资源的
    3 B8 w+ a' y, V2 {* l
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    $ G4 t1 U0 S- T! N0 {  D6 a" d: d一定会认真的看看,发现这是R的,有python的分析没有
    7 d! z' _) ]- E4 @9 Y( K4 ]
    有啊0 G* C) y. K2 F! w) V0 P
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 14:24 , Processed in 0.526591 second(s), 78 queries .

    回顶部