QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析" \6 d$ @9 I. Y" y6 B1 U& f4 |- C, s% q

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ; y9 J1 `+ d, [5 l" V这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    1 D" U' F2 J) F$ Z" A* o, S/ ]行描述性统计分析,各连续型变量之间的相关关系如下:2 J( @; v# X0 B# {0 `5 }# r

    6 |0 t! s9 J, P

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

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

    ) @* K4 `( k4 E8 Q( ~

    ( ~$ o$ j$ O9 Y$ x8 C7 Q0 j9 @$ G8 }5 L/ V; ]6 S% P
    最终模型残差图:! T% _" w, D- s' `% M: Q1 Q: o" r

    # k3 k/ m9 I( d9 a
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:% k# j* y5 D" A% D
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比% C+ |* q; }8 ?' b2 g: X
    属性变量的具体影响在此处分析略去。6 G9 p7 Z! a" }) L) v4 F% ~
    连续型变量的影响主要为:; o  \% v! H; W0 j- }2 n; r* L( T
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    7 w- I4 Z/ u4 u* w4 |. G: U 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;; c' y- R' N0 o1 N: ~
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    0 k7 T! A, ^/ ~' _7 L% ]% @/ ] 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ) ?, {: \( }- w 容积率与环线之间存在着交互效应。
    / t' b! q2 w3 ~rm(list=ls())                                                                                #清空当前工作空间# t" A) U. s) }6 r  D. T' o
    setwd("D:/回归分析")
    # s# M) L' w4 n  pa=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ' D& @- h7 g. EView(a)4 D* b3 ?: ^' S. R% B5 O
    attach(a)
    $ l/ L- d1 n+ Z, Q, r/ nnames(a)
    ; V8 K- {2 t  q: E( G! A* z+ y' @( R1 X3 b/ d- _" D

    % m3 r5 [( k9 N5 k3 K##描述性统计% S- n% o" S+ p/ @0 y8 ~
    9 t$ i1 z  }- {# }
    1 W/ {7 I5 t$ C9 F
    #未做处理的响应变量分布情况
    , t% k/ p5 w# N% p+ }$ ?par(mfrow=c(1,1))3 b( N4 Y1 q0 Q& l; ^# G% |0 l
    hist(price)7 ]0 X* |/ O$ r  g
    summary(price)        #查看响应变量的描述统计量- z" F: ^- w+ g8 c
    #连续型变量描述性统计2 M  {, c1 t( U4 \5 U) ]  U
    windows()! Q4 A+ P0 l. _. B& o+ T# I2 {
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图  T6 Y6 ]2 f0 ?
    par(mfrow=c(2,2))        5 |8 \6 o8 l) \# m% K# ~. A) O
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图( Q' K! @6 v- u) ^  S& s$ x* x
    plot(lv,price)5 O/ I) X7 M. W4 A7 F( W
    plot(area,price)
    * j1 B% j0 w. N9 o" a( D. \plot(ratio,price)/ i+ q. e4 K4 h$ q' {  ]7 F
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量( T; m' U; {5 k. u3 ~4 s7 ~$ @
    cor(a[,c(6:10)])      #查看连续型变量的相关系数# Z2 y: L, v3 r4 I
    #属性变量描述性统计
    8 \! }5 B4 x, g0 owindows()
    ) T7 U! g" O. ~& q+ Spar(mfrow=c(2,3))                       
    " [# g- W% x; s3 hboxplot(price~dis)          #每个属性变量关于响应变量的箱型图8 c6 D5 y/ l3 d& h# R/ t
    boxplot(price~wuye)                                                                       
    & C# T' _5 K3 C4 O- oboxplot(price~fitment)        ( [& Y2 p6 T1 L, T$ {% `/ |6 H' Q
    boxplot(price~ring)        8 a% f0 f1 n4 e
    boxplot(price~contype)$ o! Z2 ^% Z: g. m3 v
    , `- \3 a/ p9 U
    ! L+ X+ p4 D/ C# B) O! v

    & c/ F. X2 v% q/ V$ c0 _

    7 P8 o* _# F( L2 ?( C. B##模型建立! n1 p& r) E6 x4 D" j; ^+ L- E

    : W1 ^* }8 [8 J; @8 D1 g3 \4 v4 x
    1 O6 J( O- k/ B& |6 C5 Y! x  w2 b
    #在方差分析模型基础上加入连续型变量
    1 E6 {) m7 E' |, u/ w* Ulm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)& l) n/ |* A. K# E/ s: T2 m
    anova(lm1)                #方差分析, {+ D7 S1 r. h
    summary(lm1)              #模型参数估计等详细结果
    - ^) ^( ?6 R$ H' iwindows()
    4 M; |. F, a! P0 c7 O" dpar(mfrow=c(2,2))4 U0 J: S' Q! ^: x- e8 {/ M
    plot(lm1,which=c(1:4))    #回归诊断做残差图- m. |2 d9 z% v9 l, e! k
    $ T' V' t( m# n

    - y9 Z( U( Y2 w! _' K$ [
    1 d1 g+ F" V2 N) k

    " a3 t9 ]3 o+ `##变量处理) T0 T+ y( d& B3 ]. @8 R6 _; u

    # V9 l0 M" q+ n. N, b' R
    ! ?1 q. t! d$ f. d& I5 H; o6 u
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    : b0 O9 P9 e/ _) W9 [5 L% g* K##对容积率的处理  V4 s. h- z) z6 d( S
    windows()2 ]$ ?: p5 _& L0 Q
    n = 4- a! R2 x  u* a
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        : W. e# p+ _" s5 h6 w
    table(ceiling(rong/n))                                                #容积率各分组下的样本数( A* ^9 r+ U) w5 G0 Z. T
    ronggrp=1*(rong>n)                #进行二分类
    7 B# J, n* _" f/ U  W1 ]! C& t* v  }# O#ronggrp=ceiling(rong/n)       
    0 h2 z& h& t& g; S! |( E0 U8 U1 M( I5 etable(ceiling(ronggrp))           #容积率二分类下的样本数5 {. v. ~$ \: B, h! \
    windows()
    6 i- P6 T( _# q) m, Iboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图0 z& q- ?8 `7 @& O' g/ a4 P
    windows()
    ! X: Y1 e* g! V- p0 Z" {& ?par(mfrow=c(1,2))# Q8 a! Q$ _# Y; G' f- @4 ]% ~
    boxplot(rong~ring)                #容积率与环线箱型图0 g) `2 H" ]- D7 r: T
    boxplot(price~ring)               #房价与环线箱型图
    5 M2 {4 ]0 z8 s1 s! g+ l1 ^#加入容积率分组和容积率分组*所在环线交互因子的模型
    . e, x3 `* q! r0 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)3 B3 z% \% Q( y  o5 n' f9 R  \
    anova(lm2)                #方差分析
    ; x1 ]) w2 R# [. z# bsummary(lm2)              #模型参数估计等详细结果
    * ~- E* D; H( I5 l7 zwindows()
    ; C: I8 t9 D- N! v" ^par(mfrow=c(2,2))" s. a+ I0 l! ?1 _
    plot(lm1,which=c(1:4))    #回归诊断6 i/ J* Y. s  G7 D. f/ A

    % Q. B, a$ e% g8 J

    3 L8 M* @+ z) b1 M' o##对小区面积的处理' |- i7 Z* h( |+ v
    summary(area)- L7 |) O9 t; B* z$ L% U9 z, v
    plot(area,price)5 R1 o+ c* A6 q$ p+ G
    windows()
    ( X  E5 j! o6 v- G) e; A7 in = 150000
    6 [0 E, s3 c& W5 Hboxplot(price~ceiling(area/n))                                                       
    ! @! A6 A5 {6 m$ c: jtable(ceiling(area/n))                                                                0 d9 C% o( K5 d3 g% ~# x0 q
    areagrp=1*(area>n)
    + f4 M4 b2 G. Btable(ceiling(areagrp))+ \( M' P4 e! p* ?+ v! h6 H
    boxplot(price~ceiling(areagrp))
    ; a# r; |! S/ A' H+ Z7 O#加入小区面积分组的模型
      |7 N! M1 u" J& S. w  Vlm3=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)2 z9 L$ i! I, v5 j) k' ^- F6 `2 X
    anova(lm3)                #方差分析
    0 z+ B% o9 @+ J4 i  i& {summary(lm3)              #模型参数估计等详细结果5 Z6 B2 O/ m4 L$ G6 ]
    windows()
      R2 O" \; T2 O- f  Kpar(mfrow=c(2,2))0 U- y2 o7 x* y3 |
    plot(lm3,which=c(1:4))    #回归诊断
      C! N) {- l" w7 \1 @2 S1 l3 m
    0 G; {" t# ^, z# ?

    6 `0 D3 o) G8 ~7 k##变量选择
    - R; O' x3 y! y. }1 q, J. O6 F- j5 r! e& [* Z* r# @

    & N$ i; _/ s3 D* w) O1 n. w, N##AIC准则下的变量选择
    ) K8 |! w1 v/ I7 X+ V( t! ylm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    % l/ [  P7 z' K, `5 ~+ Y: msummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节& x$ D8 y. y+ P1 x
    ##BIC准则下的变量选择
    ! C5 S+ f# y6 U7 ^3 elm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic9 H! s9 H. Q* E: _% `9 l3 A
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节1 a  S( ]1 T4 `" A8 m2 ]2 s
    * T( k  y& g1 [0 N0 l) m3 y

    , I* X- V5 s" s1 s" {5 s#选用AIC准则下的模型进行回归诊断) J: ^6 ?0 d) Z
    windows()
    5 O  G' I3 _( L) [9 o  D* bpar(mfrow=c(2,2))6 v4 z  n: }( Y) O9 S4 C4 m3 F
    plot(lm4.aic,which=c(1:4))  
    # a9 v6 m% z1 P9 A4 Q6 ~3 z3 d5 s$ c: D" p, X
    2 W. {  V0 R% R6 E5 g& R/ i

    / m% v2 t+ U/ v2 J: S- Y) y
    ) ~: ?4 T( M6 w( u1 G! I
    ##数据变换
    % M9 t7 `4 E- T* H& r" j, v- T+ U* e9 ~, D' q, u7 H+ `( Y) l

    2 @, ^" O4 D( o' t0 l#box-cox变换
    ) i3 b7 W  R& hlibrary(MASS)
    ) q; b6 g* y( 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))  n$ _  |+ b8 C/ a. c+ N  c
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    ( U: L, [- c4 Ylambda = b$x[I] #精确的λ值
    $ L: A5 Z' v4 F1 e#λ接近于0,为模型简洁性,可以直接进行对数变换
    # T" p3 {+ u# Rlogprice <- log(price)
    $ f; E& v0 m3 a  v9 y7 A8 |hist(logprice)
    7 j; {; z) d; [% [8 ]$ u
    ; X/ D; `  H% k6 `7 ^- O$ w. K$ C  |

    & a  x' a! Q$ L# x, a% _##最终模型与诊断
    9 d" r2 E! a' N" Q" ]; N/ K
    : _1 ]5 j. l' }' I7 T* E$ m

    $ y% b' a% \" t, z, ?- ?lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)6 ]% [1 i1 g2 h" d; _
    windows()0 p! `) |* R" |* I0 @- }& E' M4 Y
    par(mfrow=c(2,2))( F/ \( g6 h' n' o( d) C, n1 e
    plot(lm6,which=c(1:4))
    + K4 H9 ]1 a8 T; e2 i( canova(lm6)) |& z8 H& a7 I8 d1 I; k, |! Q1 C( G; G
    summary(lm6)
    ) `5 s- e8 K8 ]& V) d! ]7 ~6 o( {$ E" ~% j

    & H4 q6 ^0 x. H1 v4 Y1 p请关注数学中国网微博和数学中国公众号,联系QQ 3243710560. \, I  q1 l( a+ _) W% x" F

    - P) b) P0 R# Q% N$ X
    6 w5 L' L3 ]" n4 r6 T4 U- D+ D6 n( W
    # v* z% ^6 e0 Y, `3 e$ c. S
    ! c% i  o8 ]) C# K! P% K
    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的分析没有  U# i  }! I) {
    1 f5 c/ @1 j2 O" Y3 q( p

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    - c+ N- ~' D* G3 x4 k# P' d* O/ p! K: C9 @" v

    点评

    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
    2 `% h) I7 w8 F  _# {6 v太好了,又认真的看了一次,发现自已差太多了
    / k$ u  [1 |( L7 ^" U
    我每天会发一些好资源的
    % d( A$ M( m5 F8 S- _3 j, L
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 1 x) g: f+ @* @6 m* C8 Z  p
    一定会认真的看看,发现这是R的,有python的分析没有

    0 c* G2 B  O  _9 l有啊' h2 `- I$ I* J) \
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-28 20:19 , Processed in 8.903271 second(s), 82 queries .

    回顶部