请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3559|回复: 5

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    发表于 2021-10-27 14:50 |显示全部楼层
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    " A5 Q. F& z0 u/ o

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    * P- Q, J2 m) d, Q  K这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    : `' _. j1 x: I  l) \  y0 Q行描述性统计分析,各连续型变量之间的相关关系如下:
    * R( B) H: O/ ~* ~! b4 P$ q1 s* p; A$ h! Y9 L: Q6 s

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

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


      R2 Q4 h3 s3 {5 O* ]7 m+ j
    $ d2 b" v! H# c2 J4 t8 W! s* }1 B2 L, K: o
    最终模型残差图:- C4 {* U1 v0 r4 t" `/ s

    0 o( P3 B7 g6 U; Z2 Q/ k2 e& q
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:- ~1 P) d. [9 N! W8 \1 W( A" K
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比' B; S; b% [3 t8 q; t
    属性变量的具体影响在此处分析略去。% B! t8 w+ X3 t, J; R
    连续型变量的影响主要为:
    ' j* t, n( n2 c# `# { 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;1 `. W( A! V5 d* m
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    0 }( U+ ~1 N7 a: q  B4 M+ I同时,原本为连续型变量的容积率经过离散化变为属性变量后:3 N$ O% t; t3 j: ]# \7 V
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;1 C, P* H& O; h' ?' G' W
     容积率与环线之间存在着交互效应。
    3 @9 a" T5 l" d/ _- B; G  Z+ |0 \rm(list=ls())                                                                                #清空当前工作空间
    / R1 {2 P, N( @# n7 gsetwd("D:/回归分析")
    " c% `1 u0 ~; B9 K  z: l. ua=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    " L$ o+ p8 _! u& Y% L% L" B5 l: R$ }View(a)
    # U* L" W! q. ?' }$ b2 Nattach(a)
    & O  W) ^+ ?$ v: ~names(a)1 x. K3 A; _/ [1 G: @
    8 I! a' O. r4 e! U

    ! ]+ M3 Q- L( c, C1 z##描述性统计" V) c8 r9 w) z/ H1 A, a2 Z
    ) `: D4 A$ l( I

      Z! M' Q! U/ f1 b/ {$ r#未做处理的响应变量分布情况6 ~( g4 A4 ]: f) {" ?$ p
    par(mfrow=c(1,1))
    + r7 E% k' h! c6 E; rhist(price)
    2 n; ~  O% @& v4 x9 k7 J- Y3 o! O- qsummary(price)        #查看响应变量的描述统计量1 u5 \( F3 Z, u% s6 m( W; y' f
    #连续型变量描述性统计$ j! U) x* r, s( U; A* z' X
    windows()
    " s7 \7 _( O# Y9 K2 [/ o( Hpairs(a[,c(6:10)])    #所有连续型变量间的散点图4 H* F8 b4 ]' ]" |) c; u
    par(mfrow=c(2,2))        " @( O7 S/ o* {% Y
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    2 d+ F% Y. g6 c! d: l  E2 |plot(lv,price); l1 Q8 B; d( k( |+ U& A
    plot(area,price)# {: L8 e% h0 X* f' X" }
    plot(ratio,price)
    ( d0 j2 X) U4 z0 zsummary(a[,c(6:10)])  #查看连续型变量的描述统计量( K; X4 h1 V! p: T4 e+ A( ^
    cor(a[,c(6:10)])      #查看连续型变量的相关系数* W, h+ F3 r. L
    #属性变量描述性统计. [. f1 m& n- Z  Z  n# [
    windows()
    : Z# M1 }4 S  X( h& i% Lpar(mfrow=c(2,3))                        ( ^/ |$ f6 T3 h. U5 P' {
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    " ]( b8 g7 G2 Gboxplot(price~wuye)                                                                        ) m6 g5 z' q7 _3 g
    boxplot(price~fitment)        8 p; t1 q# \3 O- W5 H# q
    boxplot(price~ring)        6 ?! K3 l1 k0 }$ R9 q7 Z4 j
    boxplot(price~contype)8 w! n3 ^/ c' b6 ?+ b
    2 j( G6 Z6 J3 Q' G" B2 W

    + \, G2 j7 H2 J+ \1 @  P1 Y# s% y3 L' t3 D6 J
    1 [2 J$ h+ }! z3 z" o& l
    ##模型建立
    3 R) g/ U4 n& a# A: ]
    9 f/ s# t, a. j* r

    ' m7 ^/ e! i) P& R- e#在方差分析模型基础上加入连续型变量- c# S; B/ c8 s- c
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    0 i6 X1 Y( S1 ~# L: nanova(lm1)                #方差分析; h$ m' b0 M  l- w% r
    summary(lm1)              #模型参数估计等详细结果
    8 V9 J4 s1 d) Y+ s8 S& B6 I" T' ewindows()
    - Y, X! \) Y6 Q8 g+ E5 `par(mfrow=c(2,2))1 K2 }0 R6 i. Y3 X6 n% c/ ^9 d  ~
    plot(lm1,which=c(1:4))    #回归诊断做残差图8 L5 s: i: W1 H5 U* c# L
    8 B' a5 P/ q" ~! V
    + j6 U  e# X. h

    $ L% `9 K( H: M; b6 T7 M5 ~

    - f0 [: u* K. ~, f3 g1 P##变量处理1 H  F5 b: l( x; X+ C) f) L( H
    . f0 e" N# L* }& Z! A5 n: M
    7 X/ _0 c7 A- L+ `8 b$ F
    ###对不显著的变量采用分组的方式希望能达到显著的效果$ y1 l( [, \" m& q, i* l
    ##对容积率的处理
    6 ~: z4 N  O9 s$ `6 T( ^windows()
    " r) h( `! @) n- Q; M/ O- vn = 48 D; e! H8 @3 m3 k$ m* [* O  A: v3 c
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        - Z% B* j3 o$ W/ c5 i
    table(ceiling(rong/n))                                                #容积率各分组下的样本数  k  R6 U5 I) |4 G' A# }. g( ]
    ronggrp=1*(rong>n)                #进行二分类" ^, x' T" x9 L* _: W
    #ronggrp=ceiling(rong/n)       
    , x% S' L8 p) s( Stable(ceiling(ronggrp))           #容积率二分类下的样本数! K+ a0 p- K8 X- \/ \# H5 x. D
    windows()9 h4 t3 d+ q- F; g2 |' J
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图4 ]3 V3 O0 L/ }4 E6 W6 U4 w% {
    windows()  O- Q; b; r4 l2 S7 \* g, z
    par(mfrow=c(1,2))
    * v! t: d# F( Jboxplot(rong~ring)                #容积率与环线箱型图6 D: o8 h1 i2 e' X
    boxplot(price~ring)               #房价与环线箱型图
    + _7 I  a8 J& X* k, c1 K# e$ `#加入容积率分组和容积率分组*所在环线交互因子的模型
    & C- t0 [8 Q; slm2=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" ~* t/ j7 k! L9 r4 lanova(lm2)                #方差分析
    0 V6 j: u' o" ~7 Isummary(lm2)              #模型参数估计等详细结果
    # z2 A! B  C# Z  t' x$ Cwindows()6 _5 i$ t3 q' L! V4 I; h8 p6 b
    par(mfrow=c(2,2))* V7 |9 B8 R' G) |  U- j
    plot(lm1,which=c(1:4))    #回归诊断
    ( p2 A0 S, [0 r' `( p! M' u( N. c% ^% F

    $ Y% x& p9 `3 @* u##对小区面积的处理
    1 ~; L) J$ T1 q* j, `summary(area)3 u( ^& M. Q5 e  [0 [& V
    plot(area,price)8 q6 C& N* C8 N0 S, a: q
    windows()1 L- t- J) z/ d+ l! ^# `
    n = 150000! E8 a8 G  E8 {3 p
    boxplot(price~ceiling(area/n))                                                        / U: E( ~; W# c/ P9 s- W  C
    table(ceiling(area/n))                                                                ) S8 t1 C8 o# m* m5 ^/ M9 v$ K3 i" f( ~5 Y
    areagrp=1*(area>n)
    4 ^9 a: r$ b. G& Gtable(ceiling(areagrp))
    8 B$ E8 O! H# e- }  k. o, |. h1 \boxplot(price~ceiling(areagrp))+ I- l! ~  w% v
    #加入小区面积分组的模型) w6 o1 I2 }3 U7 r, B3 B
    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)
    8 i" _! _9 H1 Sanova(lm3)                #方差分析* r4 q6 U3 I5 s1 Y" {- z
    summary(lm3)              #模型参数估计等详细结果9 r$ z4 A, Q0 A! C- ]) e1 {8 A% o- D' }% k
    windows()  R$ l# g+ p. e2 C  w8 z5 k
    par(mfrow=c(2,2))
    . d% ]  [0 ~$ i6 e" h; p# V# mplot(lm3,which=c(1:4))    #回归诊断  u& B3 p0 [2 l9 U1 P4 k
    4 l3 y3 |' M1 c
    , c% P  p/ c3 Y$ h
    ##变量选择8 I1 o. H" a) _- i8 F0 Y, s
    " h; S: ?5 _  R: F

    / c' a. U/ P! i& Z##AIC准则下的变量选择  u6 F' I; w9 [- B: m. R) g9 C( G
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ W; _: C# r. x8 d" Jsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    / D8 W- ^. a3 j. ^, i##BIC准则下的变量选择4 J- O" e9 `% g% a
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic+ P* [# x( H) i0 h) a) M4 B
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    2 d$ b: k# ?9 v- D  D
    0 f5 }1 U+ D! _, ~2 F, i, l3 ^
    1 k; A7 c1 \- U. ?
    #选用AIC准则下的模型进行回归诊断& J+ P0 ~/ H% H
    windows()
    5 o! R7 a1 Z+ ]0 q/ `5 ipar(mfrow=c(2,2))
    8 _$ G* Q2 K5 F9 i6 G4 i8 ^2 \( x6 tplot(lm4.aic,which=c(1:4))  
    6 h9 k5 ?+ p) q* i$ P6 Q5 M% K; F% G
    % J3 l6 F6 R2 ~) c# K1 [$ c9 l% s, p
    ( o7 V; v$ E6 D3 k- h* j

    $ c$ I5 X$ M7 y  T9 b, v7 V, O7 l
    7 r! m, w4 D% g, k5 x1 k
    ##数据变换
    5 s/ r" O2 t' t/ w  @& w
    ' `& l" d( o) Q  W; g: R8 w- H( e# \
    0 M; l+ p- a- x0 e
    #box-cox变换+ ~) O8 q, k7 x* M
    library(MASS)
    " L8 C0 t- \8 ?6 c! Lb=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))- k- {+ G7 v# C! L4 q  T
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    + X- K! n& ]8 W9 _/ o) mlambda = b$x[I] #精确的λ值2 c3 Q/ _; K3 ~  H
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    2 U4 }4 W/ ]* W$ mlogprice <- log(price)
    " x" O+ I7 i! b6 ihist(logprice)
    7 @/ Z/ h! t" g2 f1 i0 ]6 F; t( z9 h

    - A$ t2 @" s& f##最终模型与诊断' @4 C1 a- V# |4 @+ a
      p; p. \6 W6 E; s4 g
    . N% t- x. g3 {3 N1 o( P& b- U0 t
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    + p. h$ V% F7 X1 F8 A5 K( u% Ywindows()
    + U6 W' T$ O6 Zpar(mfrow=c(2,2))
    ( U- X0 Q* N6 n  j0 hplot(lm6,which=c(1:4))/ \" Z& t" ^% I7 }3 I( A: i; L, V
    anova(lm6)  S* W$ C' p" k6 |' _
    summary(lm6)) J0 `  H; T9 ^8 O

    3 l0 j- H/ d1 Z& N6 o+ t2 A- |, Y  v: l1 d# V& a3 t: q2 C& n
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560' Q' f& v' E* V% Z, A  i9 _
    & M" A  u" e# B6 g3 _. b* @# q
    % R( v2 t. h9 u& ?3 W

    9 D7 S( t0 T, ^8 \
    4 T# s; n; _) R5 E
    zan

    9

    主题

    14

    听众

    611

    积分

    升级  2.75%

  • TA的每日心情
    无聊
    2024-4-13 10:45
  • 签到天数: 626 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有; u6 y  {5 g: ]
    + i, k8 {1 c: v& k" t3 E8 `" 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

    听众

    611

    积分

    升级  2.75%

  • TA的每日心情
    无聊
    2024-4-13 10:45
  • 签到天数: 626 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ! G1 W( v" u& o' O
    0 C& l' I4 h# _1 p

    点评

    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   K' E/ T' X! K* B/ `" ~* k
    太好了,又认真的看了一次,发现自已差太多了
      t! f$ u: O0 `7 ?
    我每天会发一些好资源的
    : [/ M0 R6 V0 C. Y& M3 g
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    / J; u4 p. _! H4 c1 g2 f一定会认真的看看,发现这是R的,有python的分析没有

    - O& W8 Z2 E* @有啊; d. Z# B3 v6 V! E0 n! u( M* H8 j
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-4-18 13:46 , Processed in 0.513245 second(s), 79 queries .

    回顶部