QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5821|回复: 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 X+ s! {0 G/ Y8 v6 B6 P

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。* O, ]0 I" y" Z* {
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    1 `, a8 m/ c* r4 w1 m行描述性统计分析,各连续型变量之间的相关关系如下:7 M% C' j/ Z' V0 `8 J( y$ C( U

    ; m4 B) v  F$ i

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

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


    / C0 h! C$ p9 r' c
    0 O, [2 x0 `% k' w# F3 R) J  s; |6 Y8 D6 _& R5 k$ Y. x. U' W
    最终模型残差图:6 y, q* Y/ f, t# `

    ! i& o! G5 i* @- x
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    , ~$ ^- W1 {' }4 F属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    8 ~8 e. S) L% B属性变量的具体影响在此处分析略去。+ o0 w6 @( L1 D/ S4 A  J
    连续型变量的影响主要为:
    / S, G/ P0 D9 Y- z  A: r) o 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;7 d* i" J4 z" @0 F& y
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    - M; m3 ~' j; b5 ~% z同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    4 @4 J/ ^6 v# H$ w3 `( {/ T7 V 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ! B# \. R! \6 H 容积率与环线之间存在着交互效应。/ v2 E, G  |9 u# F; \: Q1 ?3 l
    rm(list=ls())                                                                                #清空当前工作空间
    / k" D! ]9 s; `% H( gsetwd("D:/回归分析")
    2 b! ?0 x5 O9 F/ z$ G+ c1 Ya=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a. C( t" H+ l" Y! N$ x. u: j
    View(a)
    . h5 a! u7 `0 hattach(a)
    2 \; C% [1 I8 A  m6 Rnames(a)7 R- f: g4 O9 v1 Z# L, p! M* L

    4 p( a* ?: T) I2 s: t
    & A1 l* Y1 Z$ Z) P: O
    ##描述性统计. \2 j4 A2 V6 n! F: c

    0 B% P! e$ q8 ^" }# r$ Y
    ! m% E1 {* S! g$ V5 |
    #未做处理的响应变量分布情况' [4 |# c- H% k8 L
    par(mfrow=c(1,1))7 \) f8 S8 @( f
    hist(price)
    + S* J& k* o# Fsummary(price)        #查看响应变量的描述统计量8 x- f4 n; a1 I0 {
    #连续型变量描述性统计7 ^) b4 \9 ~( p! P7 m1 v5 l
    windows()5 l& j( p4 P5 S2 ]0 P& G
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图
    6 S2 ~; f% ?  D3 J0 qpar(mfrow=c(2,2))       
    ; N" A) [. J, z+ B" e5 vplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    6 D6 i* K6 m/ f& X! yplot(lv,price)9 s, r( q! s- `6 s- r
    plot(area,price)7 F9 @2 Q3 j& y4 H# B# |" [* i
    plot(ratio,price); L/ K. j, N2 C( n0 x( }
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量0 J- |5 m4 }+ O. _/ M' m
    cor(a[,c(6:10)])      #查看连续型变量的相关系数+ V# D$ Q* N3 n* p
    #属性变量描述性统计
    7 s3 u, y0 P& X# W, _2 H: w) `8 C: awindows()
    8 n; U( ^! W0 s: w6 j" m. u! hpar(mfrow=c(2,3))                       
    8 i' u8 y! D, F+ g; Uboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    ) ^' G8 [# T5 W4 J6 F7 Oboxplot(price~wuye)                                                                       
    1 a# f1 K, z; ?7 a! uboxplot(price~fitment)       
    6 ]4 ~% W4 n1 R4 qboxplot(price~ring)       
    " A- N5 ~- \2 }( T+ xboxplot(price~contype)
    6 m7 ?  z+ s. B% p' M/ q9 u# H
    ! B9 D3 @0 P3 H1 J6 a+ N
    2 K: h( I: r; I- T) f9 s0 `+ B  d( x

    4 U$ R! m2 T% N3 ^& V

    , T5 O5 W1 m* ~##模型建立- T( M- g; \/ k% ?: Q1 v
    * J) G, Y4 p3 L  y4 r$ v1 S

    2 S* u+ \% L( p4 H, [$ Q7 w9 i1 f- s#在方差分析模型基础上加入连续型变量
    : D/ q5 i8 e& L. B% F, V7 f  slm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    7 ]* I$ o! r; g( E; @anova(lm1)                #方差分析5 T" x* S+ Z+ k+ d
    summary(lm1)              #模型参数估计等详细结果1 }0 I  g( g( E/ e' K* ?) c" z5 I$ `# J
    windows()
    5 u" [  e. l9 w- c4 V2 ?par(mfrow=c(2,2))9 _" Z/ z$ I3 v
    plot(lm1,which=c(1:4))    #回归诊断做残差图# v# x) ~/ }4 c. ~/ b$ J: {- f
    0 U2 X& g' ?, H" m1 |/ G
    5 d! n* D9 E/ ~# U

    ( d; M: c  i9 p  G' O

    $ T+ [8 g% }+ @- X. Q; ^##变量处理
    / B, j, N% ?1 q9 {
    7 h# v8 V- v, Z( V1 Q' W- v: y
    4 Y7 X/ q% t* q/ J" u+ _6 L6 f: t
    ###对不显著的变量采用分组的方式希望能达到显著的效果, ], u' W2 X4 |1 M! Q
    ##对容积率的处理. @8 X  c5 r* f$ p
    windows()
      p+ D/ [! N: Z5 y/ dn = 4: a# [; n/ k/ m. l! V* k
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    5 ~' f. P- S6 Wtable(ceiling(rong/n))                                                #容积率各分组下的样本数% \9 F  ^3 O* w7 X/ M8 l; S& Y
    ronggrp=1*(rong>n)                #进行二分类$ q9 K* \" j+ k& C/ A, A5 @
    #ronggrp=ceiling(rong/n)        7 S$ x% R) k2 r2 L7 z
    table(ceiling(ronggrp))           #容积率二分类下的样本数' V+ j' l8 s' g; M. x
    windows()
    8 g6 K8 _+ G& {boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    9 N) N9 M3 |3 x7 a+ ewindows()2 o" t0 {5 x5 `8 y$ |* X* h5 m& P6 X) [& k
    par(mfrow=c(1,2)). K' s( J: W$ _4 ~0 Q
    boxplot(rong~ring)                #容积率与环线箱型图
    7 l) h" A7 t& X8 hboxplot(price~ring)               #房价与环线箱型图 : D' T0 D7 T+ L8 J
    #加入容积率分组和容积率分组*所在环线交互因子的模型+ B8 A- C3 V; z- e4 o) a
    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)0 c+ c* p, V# Z! Y$ K
    anova(lm2)                #方差分析3 q" T: U% \" ~) \( B3 z$ M; b
    summary(lm2)              #模型参数估计等详细结果4 D, D& M* p. e' |% i. d
    windows()
    / i+ p+ R4 v9 ?6 b- opar(mfrow=c(2,2))# u3 N2 ~2 @  o$ P# |3 F  O, T
    plot(lm1,which=c(1:4))    #回归诊断, w0 c6 H$ B, d" p2 b0 f8 J
    " r# ]5 y- v4 _* ?
    . v1 u3 L, s& R9 b% l7 c# v
    ##对小区面积的处理
    3 n" T+ z+ m9 ^  e' h2 Osummary(area)
      [4 G. j/ q+ i  zplot(area,price)
    7 m6 ]2 a6 P5 u1 o! swindows()8 ~- X- n  w3 G8 P; f
    n = 150000; `! J7 v* \9 ]9 c
    boxplot(price~ceiling(area/n))                                                       
    6 ^% v* `6 I5 @4 n- `% ctable(ceiling(area/n))                                                                8 A! U% ~# o5 Z" g% L2 E& U
    areagrp=1*(area>n)
    ' H) r8 H7 O3 l+ k$ z8 l/ T9 ktable(ceiling(areagrp))
    4 T/ O# A* v4 l: ?+ T' I* O7 gboxplot(price~ceiling(areagrp))' C" o8 ^; I1 }
    #加入小区面积分组的模型$ W) k0 R6 ^7 C
    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)/ L2 n# M( x' T* |& p9 ?
    anova(lm3)                #方差分析; d4 m, m; r1 Y2 Z( u9 h
    summary(lm3)              #模型参数估计等详细结果
    5 e. l6 q' ^% z/ t# k3 j% M9 zwindows()" Y( Y( P4 h7 {* z' X- ?( Q: T$ m
    par(mfrow=c(2,2))
    . o2 c, h- l% s- A7 f; o  tplot(lm3,which=c(1:4))    #回归诊断: ]3 [; b, @/ ~: ~
    ; Z( G# r* I# b$ V

    5 s2 y; U6 C. m0 V! H##变量选择9 Y1 Q+ w& m. x9 r
    & d- S9 z* C) B1 z3 a5 e6 C8 y

    8 B0 @! [) b$ F; G' z9 F; u& J##AIC准则下的变量选择
    9 ~8 T  d/ T* N1 P& a" Qlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic; U, q$ a% ~. R
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节5 m, J% ~! M0 k+ X. ~" n( k& ?
    ##BIC准则下的变量选择" q% U8 Y- g+ l/ F4 H2 G
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    5 A! {' e7 Z4 n1 [3 Wsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节8 W2 t6 r1 @$ M

    : ^. h; p' n" ?4 ]4 D# ~

    0 K- L& N3 e- C5 K8 V#选用AIC准则下的模型进行回归诊断
    & ]' O) `8 ^% Owindows()
    & k3 e# [2 o0 N( Ppar(mfrow=c(2,2))( D3 F' U. u, Z' R  {; U
    plot(lm4.aic,which=c(1:4))  
    / m1 W  p. v' J! n! U4 S2 m
    + W9 l! _. ?" Q8 X5 @5 @

    $ w4 i, k1 G0 c( J$ A3 f
    ! b' S6 f0 h0 P1 @+ ^& `

    $ w& }+ N8 d* |8 l8 ~: B/ E##数据变换
    * W7 ?1 p6 r3 H4 U* Z5 I& T6 Y3 r# k
    : D# G6 z% ?" ~1 n' n" b4 d  F
    #box-cox变换
    5 g' A$ q! f$ A3 i, Zlibrary(MASS)$ T% I+ \5 u% v+ y/ \  H' o) c
    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))
    9 T/ _$ O( ^. l, K4 K; LI=which(b$y==max(b$y))  #定位似然函数最大的位置
    " d/ x/ e. C( b/ x! E0 ]lambda = b$x[I] #精确的λ值, ]9 E4 j7 O* n& L" J' t
    #λ接近于0,为模型简洁性,可以直接进行对数变换/ z. I  ?) G$ s% z
    logprice <- log(price)
    & I, Y7 i# l) _' Phist(logprice)
    $ G6 x8 z& i7 Y. l( n5 v1 t3 V
    0 H6 y$ h$ z8 r6 o
    6 |/ d5 t* C: d. N
    ##最终模型与诊断
    . e" E. F, r2 F
    ) N( j7 \, |& k! t8 B9 ]
    : E. k4 L0 x( L5 g4 o% L4 m
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)+ D; _4 i9 K: o: @! D& w% q5 @
    windows()
    ! @) y$ L! N; jpar(mfrow=c(2,2))- H8 @9 g6 V6 w6 J: l  i
    plot(lm6,which=c(1:4))* d" B0 G. |% U
    anova(lm6), L7 m5 f, _- U3 P0 f6 n: y; i
    summary(lm6)
    + {' {! e# N5 a; c8 x9 `  v& T2 w+ v  D# @* B' I/ C. R5 J
    3 U, U( _4 r+ T/ ?2 Z) E
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    9 M8 X2 L% G0 m) T0 r* ^! h
    & n2 s1 T9 i: q- S4 z' H$ M8 I( `

    " a4 |5 I, w. g5 B5 e
    9 _5 N" i& g$ d4 s: u7 S" w$ A, k+ k
    - E  m! e4 ^/ K. u) z# D
    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的分析没有( ?4 _. {$ \8 L' l0 g
    8 F( {- K9 g! E% ]7 d  |% V( J3 Y5 S

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    # c5 ~5 Q: m' c; h' t" d# N, [8 D1 N: Z' l7 n" 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 - Z8 L& I  g' `% m. Y5 o
    太好了,又认真的看了一次,发现自已差太多了
    , {) O* J3 b' k( M
    我每天会发一些好资源的: b) q7 ^: U( i
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    + S- M* o3 {4 x一定会认真的看看,发现这是R的,有python的分析没有
    # w! I7 H9 }: Q: `- ^; E; d* \" m$ K
    有啊
    $ D! W9 M, e5 H/ g  X* M$ B8 ^, S
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-24 12:41 , Processed in 0.440091 second(s), 79 queries .

    回顶部