QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    2 X$ z7 d3 {/ o1 B( K

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。! \/ b0 s* }  @+ E+ e
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    ' i( s* s7 G5 i" B5 p1 w4 s行描述性统计分析,各连续型变量之间的相关关系如下:4 _/ i7 @4 U4 b. Y& G

    ) l" b* N2 i7 e

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

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


    ; h& h: L+ K# R+ @& Q- F# t3 K( j$ a! h6 k( ]9 ~* r
      P# V* b- K/ g, T& P4 h- a, W
    最终模型残差图:
    $ P( I: Q" ]. x) W- G4 _: Y0 J& p, `' t" n
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    ' S. l0 N" S% F- |属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    & q5 d. M. j9 H: I: g属性变量的具体影响在此处分析略去。+ j6 v; y8 Z1 t: P
    连续型变量的影响主要为:! f6 P8 l$ {. @" |- s; J& q
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    : e8 e3 k$ _0 {( j) s 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;6 ^; w" H5 J9 S: e
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:% D5 J" h- z8 \% i, E* Q
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    0 F3 M5 r' x" I6 A1 e 容积率与环线之间存在着交互效应。3 Q' w0 D9 V2 ~# e
    rm(list=ls())                                                                                #清空当前工作空间5 v4 g, O2 z8 S5 U
    setwd("D:/回归分析")3 X" c( I4 v* q
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    ! n8 U! r* A1 |View(a)
    % x( Z3 k# S4 m* q; O. @% jattach(a)
    * Y" l/ f/ l' T  z" X) ynames(a)
    5 }  G  j  w# r0 }. L! ^6 L! K6 X: O

    8 h# [7 o9 S+ k7 r##描述性统计1 V% i/ X7 j& i" T# Q% c6 }8 B
    ' y: C1 q6 M$ T* u7 Z
    * z+ k' t8 H% @  `6 _: R4 S
    #未做处理的响应变量分布情况
    / u2 X. A! r$ Apar(mfrow=c(1,1))
    ' g$ a) ]8 c" _6 ~. Fhist(price)4 l5 X9 e5 m& ^/ I7 g0 @- b# @2 Q) `
    summary(price)        #查看响应变量的描述统计量' j, k8 A0 \+ g5 x+ R+ j0 g
    #连续型变量描述性统计
    ' |% Z& h9 E( w, I: y; }windows()
    5 _! g# j1 l( e& Zpairs(a[,c(6:10)])    #所有连续型变量间的散点图! ^" Y/ `7 [) k9 D* G
    par(mfrow=c(2,2))          R; k6 x) a* _: G, I$ P
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    % S# q4 f8 X) W" mplot(lv,price)
    . e/ {0 q" F. [plot(area,price)9 r+ L+ N& w) Y, D3 C
    plot(ratio,price); w5 S" |+ |7 ?1 ~" f3 K7 n
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ' n9 @/ D7 V$ ~0 V  z( j$ U/ Dcor(a[,c(6:10)])      #查看连续型变量的相关系数+ ~# v6 W4 {! t# b8 J% L5 ]9 R
    #属性变量描述性统计& ^$ L2 X' g% [$ T
    windows()0 q# ?, }4 I. s! y
    par(mfrow=c(2,3))                        ( i/ \( g9 o' T( W2 d1 c! k
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    + q. i; p* G3 {1 cboxplot(price~wuye)                                                                          F! ^  X1 E& c
    boxplot(price~fitment)        # p+ `& S$ b% o! J* i3 b* h3 U7 O
    boxplot(price~ring)        7 ^8 |, m5 t! g! |' q5 ]+ S4 d
    boxplot(price~contype)4 m$ z& t/ S% J/ N) U- i
    5 F8 n, l  r1 O

      B% _4 ]" _/ {3 E4 R- Y4 A6 O0 ?' w6 N5 [8 G: O8 H

    ! ], O0 o  u" @##模型建立# H% B0 u3 }5 \- D
    * _% D; {6 c+ g. I2 D3 ~" A7 i1 I
    5 [6 z! ?, |- C! B4 X; d# }: u7 q
    #在方差分析模型基础上加入连续型变量
    & O- \9 a4 ?; V$ n! |3 k. `  elm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    3 K/ V4 x; x  U! N. H0 Uanova(lm1)                #方差分析4 h, T- {8 m- f! Q; ~9 R. F
    summary(lm1)              #模型参数估计等详细结果7 i, Y" l# t% @2 `% ?+ G
    windows()
    2 F7 O7 ]7 o5 N( g3 W. Gpar(mfrow=c(2,2))
    . ~( ~' a6 g3 e- B' Lplot(lm1,which=c(1:4))    #回归诊断做残差图
    5 l( |/ [% r. h$ x+ ^% y7 b
    ! i1 f2 ?$ n: \5 W# S

    % n& c( ?  t2 a. E; n: I4 b
    " Y7 a* W! a+ _
    0 I( `" m+ }/ e
    ##变量处理) s- N! M% d6 l  b# M

    & `/ F+ @) z$ G% A+ R) R

    3 v* q- o' O& e( ~" R###对不显著的变量采用分组的方式希望能达到显著的效果% N6 S6 _0 a+ |, p" t
    ##对容积率的处理- ^1 T1 _8 q/ ~/ k7 W" @
    windows()) o% z8 c+ m2 _- d0 V; a1 N
    n = 4
    * g6 Z8 ]& U9 q, Z% qboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    / F0 V8 S7 r% l9 ~table(ceiling(rong/n))                                                #容积率各分组下的样本数
    + p: e6 J" O. M9 _0 r& _ronggrp=1*(rong>n)                #进行二分类8 Q: L% A- T7 I1 U* K, v2 }
    #ronggrp=ceiling(rong/n)        0 L) o7 T- Y* O$ O
    table(ceiling(ronggrp))           #容积率二分类下的样本数' ?. x+ T: w( Y+ v- y, a' D4 v& p  Y. I
    windows()
    2 Y' O1 E0 W, Q. k7 ~) ~* k! f! \boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    . N7 U# H( O9 R4 h, t4 Zwindows()1 g0 o# e+ S- A. X) P( r7 `7 O
    par(mfrow=c(1,2))
    2 [( Q# |8 w! {7 {7 N8 i% F$ Fboxplot(rong~ring)                #容积率与环线箱型图
    # L3 \6 p& n) ?8 P+ j  `boxplot(price~ring)               #房价与环线箱型图
    6 U. k) E4 q# X% I$ [7 N( U* D#加入容积率分组和容积率分组*所在环线交互因子的模型
    3 |2 U9 @0 V9 klm2=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)
    # O; s' T- Q6 |1 ianova(lm2)                #方差分析
      W! Q7 |+ ~* k$ M1 zsummary(lm2)              #模型参数估计等详细结果
    8 q0 W3 ^% Z  u4 i% Y. w* _9 Fwindows()+ L; s" G* W' t5 g
    par(mfrow=c(2,2)). e2 {3 F4 ]2 d1 W; @7 u) q* l
    plot(lm1,which=c(1:4))    #回归诊断! ~# \3 X9 T# R' T3 _' }

    1 ?! r$ y, V7 i4 N9 a/ d4 H" |

    % Z! z- k# z( H8 O. ?5 D##对小区面积的处理7 E& u* O$ o7 z: E4 i7 c
    summary(area)
    ( q, w1 J% b' r  r0 k. R$ Qplot(area,price)
    6 `4 p1 d: J  J  Q1 f8 Q0 A$ [- |( Wwindows()" Y# z$ s9 e* s* z5 @& J* B9 _
    n = 150000
      K4 {* \5 G0 \- H/ I/ zboxplot(price~ceiling(area/n))                                                       
    # E: q0 [# C- stable(ceiling(area/n))                                                               
    " W% G1 o0 t6 v7 \6 _areagrp=1*(area>n)
    + [  r' b# h( @9 Ztable(ceiling(areagrp))7 G$ `2 f* W# g1 \" F  }
    boxplot(price~ceiling(areagrp))
    8 f/ h3 q0 s- ^9 @#加入小区面积分组的模型
    * E2 Z* n& h9 ]* e) _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)" b; e( _6 G- W; d1 j; L3 x- j/ h
    anova(lm3)                #方差分析- ]1 Y  p3 z) m$ t7 N
    summary(lm3)              #模型参数估计等详细结果' K; F1 n0 \& u5 H2 Q9 Y
    windows()
    6 o, F* u) ?2 e5 K9 n5 q( kpar(mfrow=c(2,2))6 `2 u/ p# b  |# \0 z" Y
    plot(lm3,which=c(1:4))    #回归诊断
    " N" k3 S* R- K2 C
    0 i7 k/ M9 e' s. t+ w  Z) t7 T

    " U* Z4 @$ [% n: k$ c8 J4 M8 Y##变量选择# ]7 L# D, _8 K! {

    4 _" N2 P( X$ c3 g
      A8 Y8 y8 S- @  U4 R
    ##AIC准则下的变量选择
      Q+ U" e( J+ g/ llm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    : Z( U/ T! u8 T1 @( E3 H) D  ~summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    % M+ i5 ?% ]' a# ^  s4 y; h##BIC准则下的变量选择% E/ ~: e5 j6 Q& C& l+ d
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    - @4 p+ g# d. X) z# H  P7 E  Q4 [summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    4 Y6 a. Y( d; k
    5 B, Y0 i, `. z8 H# I9 g( _' \

    5 y8 Y, g% i9 Y3 y1 b( A/ e#选用AIC准则下的模型进行回归诊断: T' q! i0 W' Y# F0 \% }6 S
    windows()9 ^1 b! W  ^1 w( x1 a
    par(mfrow=c(2,2))
    4 V2 J% J: v  p+ e' Hplot(lm4.aic,which=c(1:4))  % V, G9 F3 [* M; i# H" U5 z: w( X
    0 ]- V* l( Q$ n) c  |. g+ A
    : Y. w! K; L- [7 q) j
    4 w) f) `% [7 Z# e
    * K2 H0 T6 N# G( H; ]
    ##数据变换  ?3 ^7 O- {' E7 ?% R3 d

    6 q+ f/ s; H' u9 L% ~# z4 j6 y$ Z

    . H. G# u% A$ f6 Y#box-cox变换
    8 J/ `" J0 I7 g6 ilibrary(MASS)+ H; S  Z2 H5 r! ~  ?
    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))
    & C7 L8 m) q1 i9 ?1 S/ t% vI=which(b$y==max(b$y))  #定位似然函数最大的位置
    $ d% g, P& k( p5 c: u& r; {% Q! }8 a0 M9 W# Ylambda = b$x[I] #精确的λ值
    * l) H9 g  L6 k. x' t#λ接近于0,为模型简洁性,可以直接进行对数变换- C7 l9 J# U3 m4 R
    logprice <- log(price)1 @8 h; L, P8 F8 D1 a
    hist(logprice): ~2 w. q- Y+ k/ a: y

    3 W6 h& V, k4 Q& W/ i0 B: J3 w; Q

    * ?  J! J# \0 G& O6 `6 q: O##最终模型与诊断
    7 z" L8 v6 g- v5 S
      @* j3 c6 R! n) f. H3 ~6 S
    ; I4 T7 C; V5 ?3 I
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    2 ?3 b# ]* U# n, `' G" `$ a2 dwindows()
    5 p' W: X2 {0 `8 u" h; s" ~( ppar(mfrow=c(2,2))
    , J' ?) @* v  s$ s6 Wplot(lm6,which=c(1:4))5 x( e" t( E. ?/ Y! R* _0 K4 n
    anova(lm6)
    4 @6 }  \5 _' m. ?4 Zsummary(lm6)  }) S8 W# _: }. L: j" L
      y% d  z3 K# L/ m3 i; S5 D/ y" `) V; {3 q
    2 k+ ?! Z4 l  a# Y" V) O% M- E
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    ! _- n+ Y& S  A& R1 V, s& ~% }# z
    3 H" f$ ~. f7 s2 ^; b; h

    9 f/ y8 R6 ?5 _' h  m0 Q( S% p) O
    3 n0 k6 {) F4 ]5 h6 d0 K7 G8 D9 z  y
    ; N3 J7 ~5 Z4 Z: L- _$ p
    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的分析没有7 @! u, m/ s2 J- t0 i9 m& w
    6 o+ H& y$ p9 P; y' C

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    / h* |! J9 ^9 ^  R% s' G, q) Y$ s! I; R: w. e

    点评

    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 - g: G' D: Z! }& a; i' d7 q
    太好了,又认真的看了一次,发现自已差太多了
    + y: K6 y6 P1 G' {% l
    我每天会发一些好资源的
    . K9 z# \: D% R
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    % w2 @! m$ l$ D' E  y一定会认真的看看,发现这是R的,有python的分析没有
    2 c" d- b0 s1 o4 V4 J
    有啊
    + J3 {2 ?  F3 p$ E
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-20 19:12 , Processed in 0.487783 second(s), 78 queries .

    回顶部