QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    - P6 M$ I' O8 c5 F& d: P/ D1 _% o

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    0 H  q( ^, p" N& a( P! b3 l5 n这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ) m, U$ o9 Z: F, E0 F1 U4 H8 i行描述性统计分析,各连续型变量之间的相关关系如下:
    + h- p1 w" z+ X2 U  [' \
    ) o& E3 z, `6 a3 Y

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

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


    9 G6 d0 I& v% q: ]. h* f1 s9 ~: u% Y/ a
    ! Y' g1 L' l# y7 }
    最终模型残差图:
      H  I/ S' @* {5 j- |9 s- A( d1 b
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:7 Z! s. g! F' a% q/ h: m
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    , f6 ]7 d8 S+ C7 ]/ ~属性变量的具体影响在此处分析略去。6 d% G' i( b9 W! z
    连续型变量的影响主要为:
      [6 j' x  v) b: c7 K 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    , z- d* D: O% q/ Y8 p# Y# i 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;% V- y$ |" x5 a( w5 X& x: S
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:( w+ F5 v. i$ m$ J+ n% c
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    , q: o; S6 t; {- B( `  |" ?/ R 容积率与环线之间存在着交互效应。5 A3 h6 C6 l* z* l7 V  j: E9 W
    rm(list=ls())                                                                                #清空当前工作空间. w  K3 I- N, z) S$ ?; z2 }
    setwd("D:/回归分析")) q9 F* [3 s: M; f2 w' ~8 y* X
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    8 C0 |- g: y" C9 D: S! YView(a)
    & k, n  y9 ~; I! m7 g5 u% Oattach(a)
    1 ]9 O; K: ?" e8 ~names(a)
    - }8 V  r1 E# O8 [- S0 X9 a+ {# ?& a
    0 H0 y2 O, \3 K& l8 o
    + G4 I: x" m# K$ g! [
    ##描述性统计) ~2 ?7 ?8 a/ m3 b
    4 X( V$ Q- k3 M' X% R
    ' q3 E1 K8 l/ N
    #未做处理的响应变量分布情况8 w& l# ?/ Q: X" n4 w& u$ M
    par(mfrow=c(1,1))3 e& h7 h3 z! D7 i* p
    hist(price). v9 v+ b+ H# U' [) Q1 q
    summary(price)        #查看响应变量的描述统计量
    & O2 f4 e$ v5 j" }6 T8 T% r0 i#连续型变量描述性统计
    3 K& w) h7 ~# n6 b  [: Dwindows()
    $ o+ R. a- a8 a# y( Hpairs(a[,c(6:10)])    #所有连续型变量间的散点图+ R: M+ z7 `' m# E
    par(mfrow=c(2,2))        3 M0 m/ b4 u" Z) ?3 K6 F% H
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    % M2 B/ }  w' r  B& n/ Fplot(lv,price)
    . G5 h1 i% a- r7 \& I: u8 Pplot(area,price)0 w) G6 `% e, u
    plot(ratio,price)5 t' }) c% Z9 X( j6 j3 N/ N
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量8 Y# u3 k' P- G0 J. k  e
    cor(a[,c(6:10)])      #查看连续型变量的相关系数" N+ ], P$ Y5 K: M5 B* l
    #属性变量描述性统计! s' N. C/ T7 c6 V
    windows()
    9 v" d6 \. N6 S% `* s& v, P: Mpar(mfrow=c(2,3))                        ; [' s, S7 j# u" V
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图/ b/ K) V& P/ Y. m) z
    boxplot(price~wuye)                                                                       
    ) p6 k8 M/ F1 y  u% R- `4 D$ I7 Z2 Xboxplot(price~fitment)        8 w! g; x& x; w3 x$ w* k
    boxplot(price~ring)       
    # o" x* H) N6 s7 c3 C2 |. O5 Rboxplot(price~contype): E6 U1 Q' }1 Z- U* R
    , M) H9 p# n3 ], D$ H3 ?# W
    * n. M# W, ^1 y: f
    5 |5 O" K8 I, G! D/ U$ A

    ) _& W( `8 K" ]##模型建立5 L; M! g# |; R: t
    6 h4 k% C( p& a5 C, I- W

    ! N( e5 I7 b: }) Y#在方差分析模型基础上加入连续型变量, l5 N5 W, }8 {7 v. q5 J
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio). Y* _8 M. |( T$ j, H
    anova(lm1)                #方差分析
    ' O! v- Q3 |$ u2 t% r" n; J) c# Isummary(lm1)              #模型参数估计等详细结果
    3 V' G+ t7 D+ D- b% b8 W7 Fwindows()
    ' k; v2 f; \) {3 _( S2 j5 gpar(mfrow=c(2,2))
    0 N& |% U3 l, M  x. B  pplot(lm1,which=c(1:4))    #回归诊断做残差图
    * P7 e$ Z" t/ h' n/ ~) X
    6 B9 {6 o$ z  X9 P2 `
    & X: E" T8 f) R2 [$ J2 A
      T" q3 r* K6 S$ h
    - S4 g7 K( n, |* S  ~. \: F0 m. E
    ##变量处理$ d$ _$ s4 b% ^: m" \8 I1 l8 Q' y

    + H( f/ \9 N" w- e' e+ A0 G# @
    * ~0 P$ V& l' G' W6 }4 _
    ###对不显著的变量采用分组的方式希望能达到显著的效果) h7 b4 j* Z3 S$ A4 h8 o
    ##对容积率的处理7 J. q- w1 J/ O% B3 h$ ^
    windows(). s: \8 \5 `; I1 E
    n = 42 R* H, w- z, k
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    / j6 T+ j4 H# \( Z/ t- o& Dtable(ceiling(rong/n))                                                #容积率各分组下的样本数
    & q# j: S3 l' z& c$ wronggrp=1*(rong>n)                #进行二分类1 x' v, Y- M; R* `! |, y
    #ronggrp=ceiling(rong/n)       
    # X4 p, q4 M# ]" B9 }. j# Q$ otable(ceiling(ronggrp))           #容积率二分类下的样本数0 ?4 |0 h$ w! d# p, ], K' h5 g* q
    windows()
    $ [& s/ h8 j' E, x( S! uboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图% |* @) E, h8 |7 l* T+ [
    windows()
    ; W4 d8 W) W/ E2 {4 C' hpar(mfrow=c(1,2))
    4 X$ a/ {) ^8 g, d7 p* y6 w, uboxplot(rong~ring)                #容积率与环线箱型图
    ; [7 w+ @3 c  i; Q9 I" Bboxplot(price~ring)               #房价与环线箱型图 + Z1 N% r4 G( f+ O% ^% ^$ x& p4 `
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    8 z+ @- S9 e3 p9 r. S6 g6 R3 Vlm2=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 D0 c, k1 P, s3 v/ Y8 Y+ u
    anova(lm2)                #方差分析
    ; |/ [: [  l9 c$ `% O  Zsummary(lm2)              #模型参数估计等详细结果
    5 w- l- q+ [+ _9 E( Wwindows()) P+ l$ U. l4 b6 T, z
    par(mfrow=c(2,2))2 @8 b1 X& B( @5 l4 K- I( l( m- D
    plot(lm1,which=c(1:4))    #回归诊断
    . a% B! ]2 s/ m4 o* q! B
    ' I4 o5 t' I+ {* ]& l2 e

    6 P  \9 u! @* G  L# j5 d##对小区面积的处理# E) A! T! {& k0 `9 S
    summary(area)' Z- p; m" j$ W" K) p! T% O" A
    plot(area,price)! s1 y7 `. Q$ l  f. B3 g: g5 A( q) R
    windows()
    % ^3 ?' j2 m! H0 p0 m/ d/ Z$ N8 f1 `n = 150000
    ) U; u8 f0 \* j( Fboxplot(price~ceiling(area/n))                                                       
    8 d' @0 u3 W8 J) g0 p; Rtable(ceiling(area/n))                                                                9 a' q" B0 l3 D
    areagrp=1*(area>n)
    5 l2 ^- ~$ x; u6 S5 }9 N& Otable(ceiling(areagrp))9 }, j% J3 y, f: d5 f
    boxplot(price~ceiling(areagrp))
    1 j& X, G; e" d; i- F#加入小区面积分组的模型
    0 n3 L% r6 l% d! Q7 N  rlm3=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)
    ' ^7 f3 z3 v5 n4 z0 x6 [anova(lm3)                #方差分析
    % c. x4 b) q3 R- R+ nsummary(lm3)              #模型参数估计等详细结果4 F% j' ~' s! k7 q: t
    windows()
    , r# b' x, y( T! ]) R1 S6 Rpar(mfrow=c(2,2))) G2 q& U: H6 X( Z6 J. s, W
    plot(lm3,which=c(1:4))    #回归诊断5 Z* q6 ^2 f" W1 {1 j- Q) l

    , Q2 \5 z# j% Z3 B
    $ a3 Y6 u; v# G* A2 M9 |7 B2 G
    ##变量选择
    1 N3 N$ o! }. W# d( y& r1 d  a" |9 V- g( r& o$ ^

    8 Z* |! v1 K8 N; t##AIC准则下的变量选择6 o' g  s0 `, G. ?$ C
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    4 C7 L& z* S& R, r- w8 X8 r( isummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节0 u3 Z9 k1 ]- F+ r6 P
    ##BIC准则下的变量选择, B6 S' _, U  l# }0 @" i2 g7 @
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    9 p5 K# R& b2 H- I5 Vsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节& `* e* V" P' S% Z$ _
    8 o7 s3 p- S' Q! O/ }

    $ s6 B: Z) D( }# J. M#选用AIC准则下的模型进行回归诊断
    . Z) v$ N  T) L# N, \windows()# h+ F. ~( I9 ?+ r
    par(mfrow=c(2,2))
    6 |/ E( n9 r) Uplot(lm4.aic,which=c(1:4))  
    ! s# p8 J+ i2 @; r. F) w( I! W$ V* n9 [4 x9 Y8 x' v% U$ c

    ; Y+ Z1 X3 k3 U/ @6 D; [9 Y1 R( F9 J* W. z4 F% S0 Y

    * F' W. t# i3 Z! _# u* c2 }3 L##数据变换
    ! a( _) K  R6 R9 C' x( ^2 R# [# H4 d
    , l' F, I) V7 u- c
    #box-cox变换1 P' e5 \6 J& g5 R
    library(MASS)# F+ o  @( W+ E( }0 K
    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))
    * I2 ?1 ]" n* L+ K7 n( F; BI=which(b$y==max(b$y))  #定位似然函数最大的位置( @, r8 h# a: Z; K, B2 x7 I8 a
    lambda = b$x[I] #精确的λ值1 O: v- N5 o7 I8 b" n' X
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    ) x3 b: M) x# F" P) ?* k) Alogprice <- log(price)
    3 d2 g* `4 b$ [+ }" U' Ahist(logprice)
    * R6 }1 m, I8 I# I7 {8 n1 D( s# E1 `( D

    2 v' q1 U' p6 @##最终模型与诊断; w; `8 Y" @+ t1 `+ Z

    8 B+ d2 \& a, T5 K! T8 X, P
      \* o8 F& G0 M4 ^1 k
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)9 B* ], ~/ |) u9 j
    windows()2 s/ W' ?, z4 p2 n5 Q0 \8 `9 u7 w! I
    par(mfrow=c(2,2)). i$ }; h4 ^( H7 J  \% u
    plot(lm6,which=c(1:4))
    * @" ~+ k& a1 e9 R8 n: W' Janova(lm6)$ k! H* ?" G6 p  f. M$ [3 H
    summary(lm6)" t9 b+ q4 i( q# }0 R- m- S& g
    5 W& D1 B' A- S2 b8 k, J+ K2 p" h

    ) y0 R, q& l0 u请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    5 y5 r  H( N( M3 D3 R
    % A& |0 U+ Y  }6 ~: [

    ( }) }. J/ }1 q( [6 H- E. Z; R; G$ q* s  p$ s' g
    ' N7 E3 a5 M1 A, K; l( C- I
    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的分析没有
    # J9 ?) ^4 ]1 H% n2 O- `: g3 G1 y  U% k+ `' ]3 i" e! Z

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    2 O1 E  |& k: M6 g9 V
    3 h3 r: U( ~) K5 g' J" P' k

    点评

    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 ; n# A0 O( u8 ~* [/ s) i
    太好了,又认真的看了一次,发现自已差太多了

    5 j; n  n, W5 x) K5 s! B1 ~  N7 F我每天会发一些好资源的
    ' d" k# ]5 e- ?  r9 F
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 0 ?: Z2 N, V5 J0 H) _* H
    一定会认真的看看,发现这是R的,有python的分析没有

    8 S2 g; A# E) q; Q有啊( L& m% D: v! \, Y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-9-29 04:21 , Processed in 0.568603 second(s), 78 queries .

    回顶部