QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析. R4 y/ z1 `' j9 A! j. A; J* J

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。( I4 N3 l  h* n4 L5 z0 v- X
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ! X  ~5 G( H3 a% d# ?行描述性统计分析,各连续型变量之间的相关关系如下:
    8 a8 e1 q9 T# H) D! G
    : h: w0 H5 A& Q" C1 z; }1 d0 M% h

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

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


    2 x% f, N- {7 f6 b  \; N9 n  }9 o' a! l' }1 k/ y8 {) z8 U

    ! H* h! a- j) ]最终模型残差图:
    / J# P" G+ J8 P# V+ w" u
    . ^$ F6 @- S& y% ?) B) i
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:- p5 T0 Y: Z' i
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    ! ^+ C' M/ _7 x* ]8 \属性变量的具体影响在此处分析略去。
    . R- O2 r) t$ d7 _! Y连续型变量的影响主要为:
    % y4 h  V' X4 _) r' _9 G 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;) I7 k' x% x- ]5 h. s9 r
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    0 O: f1 l; C' p同时,原本为连续型变量的容积率经过离散化变为属性变量后:$ o$ O( q6 `6 B- K/ d# J6 y3 d
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    % B- [, m, o  f; c' b 容积率与环线之间存在着交互效应。( p( `5 O6 \7 l. v# k8 \
    rm(list=ls())                                                                                #清空当前工作空间
    ' \# [: A8 d; b) k. Fsetwd("D:/回归分析")
    " l; h" L* P% S  A" Ja=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a" c$ j- N& s  U* w5 |- A. ?1 o4 @  c
    View(a)7 Z3 q' q1 {* y: k+ k
    attach(a)0 A$ P  i& u8 }* D; ~: K+ E; a
    names(a)8 x6 N* w* N% W  K
    9 U; s# [$ V: m, C- K* b2 r$ l2 F

    ( Q! `% A. h$ ~+ T3 G##描述性统计5 ?' c9 q/ R; H: I' }5 [" N" Y

    1 h9 q2 E3 J- G8 M
    + m6 e/ R2 W  V; k+ v7 c
    #未做处理的响应变量分布情况
    * o7 H8 x5 j0 ]5 E# e3 zpar(mfrow=c(1,1))
    6 T7 \% E6 e& }7 R; khist(price), `) c# N; p) Y- L( `
    summary(price)        #查看响应变量的描述统计量- }5 [& n* e- ?! }& |
    #连续型变量描述性统计
    " H4 ~" M! h  s( v7 wwindows()% N5 o. K$ M4 ~& ^# w% z
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    7 D  @6 f$ n5 C5 B! [par(mfrow=c(2,2))        2 e8 i1 h9 ]7 t+ U
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    $ U1 T/ M$ U4 v4 G- r& b# wplot(lv,price)
    $ N$ p! b3 G& U" |3 Jplot(area,price)) ^9 l. _* ^+ U5 W4 z3 k
    plot(ratio,price)
    6 m# `$ @9 T3 C2 z; Qsummary(a[,c(6:10)])  #查看连续型变量的描述统计量$ q4 C# _) E( X* @$ d' ^6 `
    cor(a[,c(6:10)])      #查看连续型变量的相关系数# q' ~# F! g# b+ O+ |4 H& _: j
    #属性变量描述性统计
    4 f5 y3 s, g; Wwindows()* H$ K5 V6 b$ g
    par(mfrow=c(2,3))                       
    4 I( J4 \7 r$ u% F% r- `boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    - e2 y/ ?1 E: P# S. kboxplot(price~wuye)                                                                       
    1 ]2 `8 y3 N' W  {8 uboxplot(price~fitment)       
    8 y$ ?2 o3 d, iboxplot(price~ring)        ! l& E; H2 v: h$ s
    boxplot(price~contype)
    / u4 V. F- R% ?& l) A! s& U
    + @& s  g9 Q( O7 `

    # F/ g+ b- K0 _* X' q: _4 x* M: t7 c* K7 U: E. ~1 `
    # q/ m3 b, D8 n
    ##模型建立( _8 V4 S  C' Q8 f& M
    + [) J9 @) a5 A, v7 q. `; q) G' t
    ' `: v1 ]/ i" q6 c0 B. @1 ^
    #在方差分析模型基础上加入连续型变量: {; ?3 F2 Q' H
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    1 {3 [7 C$ p4 f3 Janova(lm1)                #方差分析
    5 [% t( V* P. x/ Y$ V! ssummary(lm1)              #模型参数估计等详细结果& y* c; |# I' Z& E: y+ }) N: ]
    windows()1 t+ d, h4 Y3 [5 F' ?/ C
    par(mfrow=c(2,2))$ P. B# S0 c& a: |0 d! A  q& x3 d
    plot(lm1,which=c(1:4))    #回归诊断做残差图- B7 `; |3 \8 m& E: J5 V! ^
    ; f3 q/ Q8 H2 S: _, V8 Y
    . o3 I& ~1 A& N, e8 B' O6 q) _3 V
    6 L9 U. t5 _7 G( M+ P5 L
    ; m( i: L, ^) n* z/ ~
    ##变量处理" @8 ~: o4 r' C5 D# n5 F

    / E5 ^5 F+ c3 z4 A

      Z7 P# ]" D5 Q. G" `& ~9 F###对不显著的变量采用分组的方式希望能达到显著的效果
    3 `$ r, t/ y, p( H- _$ z" h' ~##对容积率的处理. N& w! V  V( }& V; X4 d
    windows()
    , k9 v3 L% d$ L3 w* Rn = 4
    / f5 O* ~) U. ?% L4 Z- ^0 m( Z* b( Bboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        2 x4 e' ]; `. P8 }8 z6 O/ w
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    0 r3 H6 a# S9 d. D: P* r' A, Lronggrp=1*(rong>n)                #进行二分类
    % a( ]$ `$ T5 U8 U3 Q#ronggrp=ceiling(rong/n)        , V' u8 u* l6 H# k1 ~
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    9 N* _' @( B# d, ?windows(), _1 @# {( |# A; d7 k; W: t
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    0 f/ e0 D6 S7 S7 @6 I( dwindows()
    2 r- Z1 d7 m4 a) q- P+ |, S$ Apar(mfrow=c(1,2))9 B% j; W" e* J& r2 g( Y4 ], ~
    boxplot(rong~ring)                #容积率与环线箱型图3 C8 f- N9 f5 K) n7 o4 E8 n
    boxplot(price~ring)               #房价与环线箱型图
    0 j# Z) t( j! D) Y#加入容积率分组和容积率分组*所在环线交互因子的模型# F! J' f1 y: Z" P' F9 ~! }8 {
    lm2=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)
    # }; }- N( |' E  }- wanova(lm2)                #方差分析, P# q3 J( X, B% u1 H4 v8 _: s0 W6 |" u# }3 P
    summary(lm2)              #模型参数估计等详细结果) d" ~+ W, b( y5 A" s, Y* p; r  ?
    windows()& z% S2 w, |& b; D! \
    par(mfrow=c(2,2))
    ) w' q6 l) g( M. t6 Jplot(lm1,which=c(1:4))    #回归诊断
    3 O. l: z8 K0 x# G  s) x/ A7 v0 P/ [0 _9 @: e" P' ]) s3 u
    ' ^3 i9 y/ I/ i' I( B
    ##对小区面积的处理
    1 X- J# r  _/ [- x' T( Dsummary(area)
    & b9 E! O  [3 q* ~$ ?6 ~plot(area,price)5 i; A. \9 e  [$ {
    windows()
    0 U  o4 B& F7 W, xn = 150000
    , m* _' d" j# ]# ?! yboxplot(price~ceiling(area/n))                                                        " i& v0 i/ @5 L
    table(ceiling(area/n))                                                                - Q$ m' j9 L9 n- V. ]/ G# Q) G
    areagrp=1*(area>n)7 l1 t# [, j& T; ~* o7 |8 q
    table(ceiling(areagrp))4 o6 g6 D6 w/ e
    boxplot(price~ceiling(areagrp))
    " T. t* ^- T: z; T0 n( N#加入小区面积分组的模型& h( _% ?' M  f1 T4 Z, R" j6 @
    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)5 |) o2 n8 o5 s7 W3 X8 u" [
    anova(lm3)                #方差分析
    4 I1 i' q! A; D$ V% X. i2 p* Csummary(lm3)              #模型参数估计等详细结果" s- |, k* ]/ ?" i
    windows()7 B  v2 F; m+ [- p* ^" u! b. u1 Q
    par(mfrow=c(2,2))
    8 H; U3 |  y2 L, m7 w5 g  Wplot(lm3,which=c(1:4))    #回归诊断
    : T9 Z5 m8 l. [8 k" L$ j' o: u& `$ n3 g% y' i8 P, y
    ) E+ m1 ~( {4 e# W4 `
    ##变量选择
    5 i6 I) q" A4 G7 c0 L2 I6 k7 v+ W2 S/ n
    3 z; v5 G4 {3 R
    ##AIC准则下的变量选择2 \4 A- B- R% z1 L8 K7 b; m
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    $ S+ q# ~9 u4 k0 m: s2 J( ]summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    $ H( x  x% P: ?3 e* y. h+ s8 R##BIC准则下的变量选择* Q* ^# f& ^  N% l; _
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic, X- }- i- |8 H% @
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节2 R" j9 V0 ?5 L
    1 j; Q2 G2 h; G" ?$ ~! C
    : u* I+ o5 K2 f8 V: \4 s
    #选用AIC准则下的模型进行回归诊断
    2 `% G2 T, R, I; A6 R* \' Dwindows()
    1 x' d+ w: o* @- N: ]4 b9 f9 _par(mfrow=c(2,2))$ O# }" i& {: S# F# T1 }6 h1 C  @8 [' `
    plot(lm4.aic,which=c(1:4))  
    : O/ a( i4 A6 U9 Y! a* c
    ! m) {! T9 e3 Z4 {4 c% i2 l
    9 T  K" k7 Q8 T$ P& J" o" S2 }( w+ R
    2 Z) m$ f& {( i6 R% E
    1 p' q  o+ }: Q& @; D1 V
    ##数据变换7 q7 W2 C1 v/ Y. s% X

    2 \' m/ H' d5 ^9 F& t$ I5 }4 W+ s, P

    - T* H. n8 Z! T, h8 P# ]  F3 E#box-cox变换& r6 l/ G& K% j1 S
    library(MASS)
    # G% e  s- a$ J- yb=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))8 b# _2 ~' f  Y; K" ]+ r
    I=which(b$y==max(b$y))  #定位似然函数最大的位置1 p% o7 h7 m) U7 T2 I# m0 O1 u' N
    lambda = b$x[I] #精确的λ值
    1 \. g. F0 m0 c2 _; W( p6 C#λ接近于0,为模型简洁性,可以直接进行对数变换
    " k8 @$ _4 Z# |6 B3 L8 ^logprice <- log(price)
    ' L' Y% [) z$ K" I) y% _" J& ^hist(logprice)/ a' D* o6 O5 X5 i
    8 o& N. T5 {+ X
    ! ]4 a4 m8 `4 O
    ##最终模型与诊断
    $ {! x* v+ ^6 M1 K% Q. S3 P
    ' o" @" D4 t" l9 d

    5 ?2 g, E) L) f7 `! r* Glm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    7 @2 {; F3 s: F2 ^windows()# O/ X1 f/ p3 I
    par(mfrow=c(2,2))* @) d) y; K( \6 E# i4 p1 f- O0 f
    plot(lm6,which=c(1:4))
    0 O7 ]; H( k6 |, S4 y* `anova(lm6)5 e" c" s# K* M/ J
    summary(lm6)" R( J4 p/ e. E% I: P
    ( w; ]+ S! T! @9 ]" e' O: t

    & t# j. `9 W: X/ a5 o/ |请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    8 O6 ]( D; L7 q7 b& q
    % T" {8 A3 x( z: a
    8 n: q- s' W) K7 W3 j2 i& B+ f3 G
    + K' L, g4 b, w& g1 {

    / q7 b9 H: P" K" t/ ?
    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的分析没有! P% w5 |2 ^3 E- n/ M
    ; o+ ?( ^  i$ K" z) G5 d% 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国赛实训

    太好了,又认真的看了一次,发现自已差太多了9 h8 Y. S3 j( h: v5 r
    / `0 p' ]0 i( `/ `3 M5 V* r

    点评

    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 & H! g/ j1 A. z/ a8 K! J  k
    太好了,又认真的看了一次,发现自已差太多了

    / s' R, x$ v6 k% `我每天会发一些好资源的9 w5 O) I% K2 v) e
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 ; {3 @9 P& v+ M. E! J2 y2 T/ Z
    一定会认真的看看,发现这是R的,有python的分析没有
    ! [+ @+ g' e; a4 v
    有啊7 u/ }, L, x& s) y' _
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-9-29 03:00 , Processed in 0.545755 second(s), 78 queries .

    回顶部