QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析$ m3 D2 l3 i! A% Z

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。0 m3 K/ Q% A# v& ]: M$ D, t
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    6 H; X7 B% m1 V1 w* E6 x
    行描述性统计分析,各连续型变量之间的相关关系如下:
    # v) T: W' t0 g; C6 r# F; F" s9 w: q! U) f8 x9 I9 U/ p7 t  D4 i

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

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

    . o) r+ |/ P. E  j# W; C$ `
    $ I% S- o0 k# o: d
    9 V9 L2 F6 c  u" b- T" H
    最终模型残差图:7 W$ H. ^& [% c0 d$ D

    2 f- N1 N5 _/ n+ x6 v
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    7 p$ T% M: K' Q0 t* l# x1 T属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    # p6 b1 g, h5 b属性变量的具体影响在此处分析略去。3 g/ b2 T, D/ a, T; p6 o+ [6 ?* u
    连续型变量的影响主要为:
    / A* O6 G1 O$ S8 }+ F7 [: T 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    * n; |9 E2 {8 T- }. e- J 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;& i$ O8 f. m) q* c1 b! p# l
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    6 K" W8 W7 A6 u' V- H 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    + E8 F8 k4 y+ z2 F. u6 } 容积率与环线之间存在着交互效应。$ w& p2 B* |8 x  a
    rm(list=ls())                                                                                #清空当前工作空间+ k% t$ i3 {' A0 ?( H
    setwd("D:/回归分析")
    : D- E+ |( [& {( x3 F: Pa=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a3 o- H' `4 C. Q4 Q
    View(a)' x; \" F. g  {1 a8 q1 x
    attach(a)4 h/ u. W1 V# k8 J% q3 X& ?8 f
    names(a)6 z9 x: W& E- t: `" s# c- X) ~
    0 h& l' I: L, K% u- E' w- p, w. U
    ( Z: U# ^8 \! C% ?5 b; O
    ##描述性统计
    8 X& E: |0 s7 @' O7 Z% A0 m3 J. }+ \% t
    . n% H, X- e  y# g/ f
    #未做处理的响应变量分布情况
    1 f$ V6 {5 j) E2 F9 ^2 J4 Bpar(mfrow=c(1,1))
      z9 X+ ]3 O; v( w* Whist(price). R$ _# }9 s5 h
    summary(price)        #查看响应变量的描述统计量" r9 s+ S& a) C0 E5 c& M3 f
    #连续型变量描述性统计0 M; J2 k: [8 x( H) ]6 G! c( M
    windows()
    5 J4 m3 N: W% T- _8 Zpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    9 p; t5 x; r( @6 Vpar(mfrow=c(2,2))        , @. B8 |4 @) a$ v: E9 C- [
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图, Z' Y# L( d" R1 F+ h
    plot(lv,price)
    * q& K, l% s! D; p$ Xplot(area,price)
    * g# u. X: N/ [* Lplot(ratio,price)
    % J* ~9 s0 y! }summary(a[,c(6:10)])  #查看连续型变量的描述统计量) p! c1 e" y+ Q6 p' e" g
    cor(a[,c(6:10)])      #查看连续型变量的相关系数, ~# n% @7 E& L& ~
    #属性变量描述性统计- t$ `* }( a! j/ R1 \
    windows()6 ^* K/ E5 v$ ^/ j, L4 x
    par(mfrow=c(2,3))                        . S2 H4 `% _! @( V; F* l* r
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    6 o2 c- }8 m# H2 j( Vboxplot(price~wuye)                                                                       
    % B! q( n" s4 K( \boxplot(price~fitment)       
    0 D7 R5 t* i+ @( Q, Z' V1 }/ c- eboxplot(price~ring)        ' l2 t) ?0 F9 H: F- _! P, n/ f% u
    boxplot(price~contype)5 V3 ?! m9 [5 J3 ]6 v: U5 _% l7 m
    ! u% F: _8 i* L' X

    4 u8 e5 e# t, k) N8 {7 G% e
    ' M: ~; a1 y1 C% N$ O6 p3 z" L

    $ P! M+ N. B- h* z0 F+ z+ E$ O##模型建立: ^9 n0 c! v4 C' ~  n: W

    " \' P* D' i7 o2 B' \  q2 N

    * ~" V; S4 Z( K1 }1 Y, r. d! z#在方差分析模型基础上加入连续型变量
    0 z6 }  V( p- \, @: E1 Zlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)1 v9 ~/ ]1 m! F* e4 Y2 g% \
    anova(lm1)                #方差分析
    3 z4 t$ {' Z( H- w7 N: [" {0 S8 psummary(lm1)              #模型参数估计等详细结果2 S- Y  ^9 M+ a: W' ?
    windows()
    7 A- m: x8 w% C5 m! hpar(mfrow=c(2,2))
    3 l- _* c2 R! \% D, qplot(lm1,which=c(1:4))    #回归诊断做残差图
    2 `" U8 v" R( u  Z8 Y- E" q9 _& G0 }; f2 y7 |) @
    7 g' k4 C6 w" Y. c  u, `! ^$ T" Y

    ' d7 v0 N4 h! e6 [7 [

    ! ?: C' w# L. c% t! T& e; M##变量处理
    + a2 v) e/ o7 b$ U% X' N! f7 _# a5 [- E4 ?0 ^+ i7 {0 G1 u
    ' `! d5 m! W6 h/ T# h( J
    ###对不显著的变量采用分组的方式希望能达到显著的效果+ ]$ g- A* F2 K9 E* B
    ##对容积率的处理! L" C- U. o$ P
    windows()
    ! n# p/ U4 E1 R( z* X2 t+ n3 P7 sn = 4/ n  N9 B& Y/ }' J; e
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        # M& {2 i  ~; w- h8 q8 ~$ X
    table(ceiling(rong/n))                                                #容积率各分组下的样本数; `7 s0 a4 U6 i  q
    ronggrp=1*(rong>n)                #进行二分类- d- D- f# p$ M: k
    #ronggrp=ceiling(rong/n)        / ^7 U- s+ S" p# K4 ]$ [/ `: q
    table(ceiling(ronggrp))           #容积率二分类下的样本数# R! e/ l' {1 [, M
    windows()
    ' i# z5 L$ M, \, J7 @8 ]boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    6 z( M; U% ]/ h/ S$ R5 c* bwindows()9 L! {: d& B+ I' @: i
    par(mfrow=c(1,2))4 i' y" B! E0 I8 K6 x$ u3 m0 `
    boxplot(rong~ring)                #容积率与环线箱型图
    , `& [8 ?5 N0 g: ~boxplot(price~ring)               #房价与环线箱型图
    1 j& l' y0 `" o6 F! y6 P#加入容积率分组和容积率分组*所在环线交互因子的模型) z9 X- E' e/ J; O; @# [* V
    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)& Q" I) w3 C/ X; c
    anova(lm2)                #方差分析
    9 Z' u; H! X+ J  W7 s4 Usummary(lm2)              #模型参数估计等详细结果
    ( D5 k: b' _, i4 h, q9 ?% Rwindows()
    & X+ d+ A8 K1 z" y6 ]par(mfrow=c(2,2))
    : M2 t8 i3 s' t# K8 B' ]+ tplot(lm1,which=c(1:4))    #回归诊断' y( l0 L' @+ [8 K. O& V

    ! _8 _; m3 q0 Q7 R
    . G6 h# k$ l* W7 A) ^% O1 j+ I8 b
    ##对小区面积的处理: K& d! O8 Q- n, c% J" ^6 D
    summary(area)
    ; m8 ^' {4 D& mplot(area,price)4 [% E+ p; U5 W2 ]
    windows()5 H% s9 G0 b+ {* }" i
    n = 1500009 x* L/ A% K5 c% c2 G' @
    boxplot(price~ceiling(area/n))                                                       
    ' j+ a! c" _3 [table(ceiling(area/n))                                                                & |# ?1 y/ ]; ^& n: B& a
    areagrp=1*(area>n)
    . Y2 U5 K" ]: N0 v6 a! n( }table(ceiling(areagrp))" F: g2 ^5 |( n# G1 i! J7 u
    boxplot(price~ceiling(areagrp))* h0 Y8 E) j" }: P
    #加入小区面积分组的模型6 b2 ^  k* P) r
    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)( H' l1 J, l# L$ \
    anova(lm3)                #方差分析7 n. ]* f& i; e) c
    summary(lm3)              #模型参数估计等详细结果
    ) ?0 y3 g: k. D! Iwindows()
    % a. j* {! k" ~/ @7 r# r, w0 kpar(mfrow=c(2,2)), f- C$ y; Y# {) R# e  k1 t
    plot(lm3,which=c(1:4))    #回归诊断9 r( y# z7 A/ a& y9 A. z) x

    4 n* z- o# G. q/ _$ Y7 ~/ c

    3 s" f% g' B- h/ K& l! U# `, N##变量选择
    & ~* s/ N/ A3 R1 C4 }- q6 x& E/ W$ j2 W* {

    9 l$ g/ }: g5 h. t##AIC准则下的变量选择
    + p+ N) x7 K, y0 [+ ^0 Xlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic, d! Y" r. M) `5 l! ^8 ~# j
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    9 s; L& i! ]7 S5 w7 w##BIC准则下的变量选择
    $ S) w7 a4 S1 z% K# G2 J/ vlm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    1 P9 u1 S  Y/ L  Z. ]) K2 g; b: ]summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节6 K- }9 }- F! N, k. y" P8 t

    / X5 J: m( O/ S8 s0 D) L
    * [5 r8 y! f6 V2 m# D  y% g# s
    #选用AIC准则下的模型进行回归诊断/ r6 N% i' |7 P* f/ U5 C
    windows()
    * S3 p/ w% v+ M; ^( ?! Epar(mfrow=c(2,2))* B; M5 \8 _5 n0 I
    plot(lm4.aic,which=c(1:4))  4 Z4 D& ?7 d$ f  w) D  o5 p  C
    5 _5 z( Q8 i5 i

    5 `' E7 @1 `/ K6 h3 ~( g* t% b. |& }7 b/ a3 T
    ' \: L- M. O2 ?$ E1 G
    ##数据变换, [/ w/ J4 L9 o0 s& b; k# J0 Q: i

    . \, s9 J+ Q$ Q; I' X' P: N7 R

    " A' z% k9 _1 n#box-cox变换/ c. Y2 ~* [2 u$ Z; e, x
    library(MASS)7 d; j# N# H" m( d
    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))! a& ^( o6 m) {) A$ u0 W4 K
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    - S) T  E; q( l8 y4 [4 ?lambda = b$x[I] #精确的λ值
    ( m* f) w7 |! q/ z#λ接近于0,为模型简洁性,可以直接进行对数变换- v+ ]% H& V+ F
    logprice <- log(price)2 C8 k6 v+ v! r  X2 U) P. \' ?
    hist(logprice)
    & i& c. m& z- o8 \/ v7 W6 q0 L$ o; O8 D4 ~
    ( n( I' J  g* e9 ~
    ##最终模型与诊断
    ' l2 h, F2 V# K" f4 b5 D8 u% P. p2 y3 z2 Z# U3 R1 h

    6 C" ^' |! r: @* i3 _lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)  M+ b5 f) U5 j! _# c+ h' z7 |( A- T
    windows()4 p# G/ O2 U( H, D6 d5 r
    par(mfrow=c(2,2))$ u* q) k* s/ f; U3 Q; s! F2 t
    plot(lm6,which=c(1:4))7 n# h3 Y4 a! P# X  h4 ?4 t" Z0 o' `; b
    anova(lm6)# a. f# D" J! E8 s2 s. X+ p- |& a
    summary(lm6)
    , u' F+ W7 w+ r% _4 l2 B- j9 M
    9 T3 \9 m3 C+ P1 ]5 d0 ]3 {: Q% a* y, r+ V: E
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    3 K, F8 ]# X" r  H; z$ h8 j/ W$ p

    . V4 ?3 u# M+ t* J) v3 N- A: ]. @8 N3 `
    3 b  X5 @( W* V

    * N/ b0 y  {% ~/ r) Q* ]
    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的分析没有3 y# w2 D" W1 L9 x* ]- w
    - O/ C$ @! o/ W8 C0 z: Q8 N9 E$ r

    点评

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

    太好了,又认真的看了一次,发现自已差太多了- a5 Z( z4 o! s/ W! y+ H3 O2 O

    ( m+ F$ J( t- D3 \

    点评

    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 , k4 B: a" c* U: G4 r& J
    太好了,又认真的看了一次,发现自已差太多了
    1 I; x' r" e# C7 m4 _
    我每天会发一些好资源的
    & H7 Z9 [4 p  J/ Y8 |( N' d
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    - y) v5 M& b% g% d: a1 K一定会认真的看看,发现这是R的,有python的分析没有

    - o1 Z3 V% P. ?0 j6 X有啊
    $ }8 P2 s; u' O& {$ f
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-4 07:10 , Processed in 2.484199 second(s), 83 queries .

    回顶部