QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    " A6 k9 }! \# C/ S8 _3 z

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    1 A6 [7 N6 |# V1 W9 d这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    . x- V' l3 q  f9 r2 g2 b" f
    行描述性统计分析,各连续型变量之间的相关关系如下:. f% w8 }2 I2 E* j: z4 E

    * L  j  k, v2 k1 V6 \

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

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

    ; A' g3 B9 a$ E2 W- @, R' C* E
    $ e; L% h# f# ~

    ! w  ]9 a$ J! M$ K) J+ D3 ?2 \( M最终模型残差图:
    " T5 o1 n8 w% V  n) V. \) S$ U% B
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:  \( L$ Q, e+ T
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    % J! c! C6 ^. Z+ n- F属性变量的具体影响在此处分析略去。
    ! P2 T4 i- q% h% Q: |! w3 B% d连续型变量的影响主要为:( R8 G2 t+ D) c8 T
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    5 I. k7 R3 M* m% L: ]9 S 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;3 W3 Y" P7 }  h7 [9 |0 G. p2 c
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    + F! R1 l! m) M3 f; F2 ^0 {- e 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;0 m7 M1 N$ e3 _& p$ g
     容积率与环线之间存在着交互效应。
    & H8 M; T; M, C8 q" K/ K7 orm(list=ls())                                                                                #清空当前工作空间9 j6 @! o" k; u8 a5 W1 y8 \
    setwd("D:/回归分析"), G2 w3 L- j2 I* Q3 X' X
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    1 ]  m& y8 j4 u3 t, PView(a)
    8 Z/ t7 s& L; g7 Kattach(a)
    0 ~; q* y+ `* M" Y( N% g! h% \names(a)
    7 A6 q9 w+ t5 _4 l- L+ v
      W2 B9 o+ |0 `+ {
    4 i, I' n6 b5 O: }3 z% d
    ##描述性统计2 T- J4 u( q, K2 `3 d% u
    4 t- a9 U( f3 `8 u& q$ x

    # {- v; ]; x' v  }#未做处理的响应变量分布情况8 v7 W; X0 E( D8 P8 T3 Y# x
    par(mfrow=c(1,1))
    7 s3 \3 P9 ?8 i# N5 Jhist(price)
    6 b& l& D9 m2 `summary(price)        #查看响应变量的描述统计量
    , [% ^* g) {8 r  r+ \- K#连续型变量描述性统计2 f0 J, v7 e2 g' ^7 _  K
    windows()3 T, e5 \% @* l% o9 f
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图' i) G# P- A4 e" ]- j3 }! E8 a
    par(mfrow=c(2,2))       
    3 O% k$ `, }9 C/ `' mplot(rong,price)      #每个连续型因变量与响应变量间的散点图
      [# J; S1 ^) Kplot(lv,price)1 I% a- n( N1 |0 s
    plot(area,price)" J+ c. ?4 b8 [
    plot(ratio,price)2 h3 {% B- m+ |5 h8 t
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量1 R* @  ^0 w' I( L* Z. K
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
      h3 }  w5 `" V0 Q+ C0 o: E#属性变量描述性统计- ?2 ]3 w% f  _" R6 h3 w; E
    windows()
    $ J" d2 y2 B3 t; r. opar(mfrow=c(2,3))                       
    $ }+ v; L# [/ O8 S, A* }8 Nboxplot(price~dis)          #每个属性变量关于响应变量的箱型图9 h/ G8 R+ l) c6 g1 ^) Q
    boxplot(price~wuye)                                                                        ) t% E. s4 }3 z& H: y
    boxplot(price~fitment)        ! h2 ]9 P) t7 p9 S
    boxplot(price~ring)       
    6 |- ^! r: I7 o# ^* e) y3 jboxplot(price~contype)
    ' H7 C, L/ N7 Y. P2 |( T9 w% e* o! y6 q- m7 |% W
    $ v! o" l" ]. I% N' l  l! E
    4 \: [  `1 z; @' N) c! W" d

    0 N1 e; \8 C" N- S4 d9 Z! X9 f4 [1 v) u4 b##模型建立
    8 [' @3 m' D$ I5 J9 M5 E8 y" a3 @- W
    * p  Y0 K6 r( h1 R; T5 \' _  y
    #在方差分析模型基础上加入连续型变量
    9 R0 Q$ _( y9 Z# C9 Q; J1 F3 rlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    3 c6 L" K' b+ h5 U4 d0 H$ oanova(lm1)                #方差分析
    - O0 K) |' I1 Lsummary(lm1)              #模型参数估计等详细结果" S8 u: l7 @( L  R" y# C
    windows()9 h  n% u+ e& w- q" K( b/ u
    par(mfrow=c(2,2))2 U! w3 P6 U; H
    plot(lm1,which=c(1:4))    #回归诊断做残差图2 I/ ^9 \9 Q* I# D& y

    % n8 X) g" R8 |- H( s! r

    # _  x- Y( ?8 D7 A; R. n. \' |" x* y6 V, X9 N

    8 a' p: r. ^! R4 L##变量处理
    ! }" p2 k/ W) y( J$ N
    , L7 L; @7 G  C/ w7 Z. C" H7 w" R

    3 I% @% R9 @2 W/ O0 L###对不显著的变量采用分组的方式希望能达到显著的效果+ P& {' i9 o5 ~' W3 r, [# C
    ##对容积率的处理
    ( ?$ @& ~+ F  q+ d$ J. jwindows()
    , r9 c- ~9 a0 c: K2 yn = 4
    - q& S; o) T% R% D1 O  mboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    4 G7 ^: }+ ]  @, C" f/ ftable(ceiling(rong/n))                                                #容积率各分组下的样本数9 Q# M9 C2 _  Y7 q) J
    ronggrp=1*(rong>n)                #进行二分类6 c/ {& P* p0 ?
    #ronggrp=ceiling(rong/n)        $ c0 z* d- Y! p: r
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    $ G! H( L# E/ W4 Rwindows()
    ! m! ~- l3 h6 J' c" h) _# Wboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    4 v& v. [- x9 x0 pwindows(). X" K$ {+ u  `3 m& I" }* s
    par(mfrow=c(1,2))2 B( j: s- a7 Z. h7 g; z: E
    boxplot(rong~ring)                #容积率与环线箱型图4 e, D$ d* f' k& b; N8 r; e
    boxplot(price~ring)               #房价与环线箱型图 5 o6 J8 `- c5 L
    #加入容积率分组和容积率分组*所在环线交互因子的模型: C* r. y+ n3 M3 H# W6 J( x
    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)2 s: z9 e6 u' Z2 H5 y9 w
    anova(lm2)                #方差分析8 n9 U. X! \/ h# U
    summary(lm2)              #模型参数估计等详细结果1 }8 c; X1 P2 A: F  T  w9 z+ ?
    windows()% c7 K1 Z# T- m- |! {5 I  O
    par(mfrow=c(2,2))
      t# K* @9 B7 h5 Oplot(lm1,which=c(1:4))    #回归诊断
    . k4 B. |0 J; h8 x8 \5 G1 U  C3 W& b! y0 O7 t
      \0 e$ c2 m) q/ R2 m
    ##对小区面积的处理# o2 U+ b4 h9 R' H3 W1 N
    summary(area)
    & c+ s! _  Q4 T. q# Cplot(area,price)2 H4 s8 C* M4 c  ~
    windows()% W$ x1 C9 `7 _' a9 _3 Y
    n = 150000
    - A, h, D- E% I$ h/ w% v) Kboxplot(price~ceiling(area/n))                                                       
    6 e' c0 w/ _, j& |) [+ {  W5 Ttable(ceiling(area/n))                                                               
    2 G  \' Q0 h- U- }& hareagrp=1*(area>n)
    ; `$ R7 O8 t! V' a+ E/ g7 otable(ceiling(areagrp))
    1 H# ?5 N7 Z+ @) Wboxplot(price~ceiling(areagrp))& K2 m5 T1 l8 L
    #加入小区面积分组的模型
    " I- S# L3 R" o- C- Dlm3=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)
    ' o% c" ]/ n, G. d7 V; p; F+ Wanova(lm3)                #方差分析
    ' S1 J3 d7 o4 I" |7 H0 C* P- o8 vsummary(lm3)              #模型参数估计等详细结果& d- Y0 i& \. `. C, y' ^2 F
    windows()
    ! b8 u! K6 h* U6 Opar(mfrow=c(2,2))
    2 ~5 {" M- q7 jplot(lm3,which=c(1:4))    #回归诊断: |, ^' f2 m3 X' C9 K' w
    + g- h7 @5 ^8 u4 S

    0 [' x4 y. h/ H) [* l# e/ G##变量选择1 u* J+ c2 E2 ]) E- S" y

    . ]; C4 t  u5 D9 A1 C

    " t8 m% m9 Q) Z. a; s##AIC准则下的变量选择/ w& t% `7 C. _8 d2 V3 Z& O
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic& r7 w! r: q* ?/ L4 i- ]
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    ' C, c1 H( J* E4 j5 O##BIC准则下的变量选择; I9 ?3 T, C4 a' }: D+ e
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    2 I2 Z2 v1 U3 @- z; T% s  vsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    : L* F+ ~; @  T4 c% Z/ }
    2 y) W5 U! K- i

    6 R0 |! K9 Q/ ?8 J#选用AIC准则下的模型进行回归诊断
    . q& {, y0 a' x* z0 B% C6 o7 c- {windows()
    3 b5 [- J1 P7 M" C  r4 ~par(mfrow=c(2,2))$ z" [* A2 S6 Z8 t% J7 n+ P
    plot(lm4.aic,which=c(1:4))  
    0 u+ A: s3 k, D, c& y% b9 [9 r, K+ z  V/ {# |
    ; h* F' O1 _# b

    / ]6 Z8 B3 p6 }) K' b

    5 s( x) t* O% Q$ o##数据变换( |9 v, W/ y% t, b6 }. J& Z0 ^' o

    5 c2 a8 a/ L1 {

    - O& S8 S) o3 w2 Z& P. Y#box-cox变换7 \; `% u4 D/ F. }; x1 f/ W
    library(MASS)/ P* q$ d0 @8 K/ F  D. E
    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))
    4 B. i! @3 W6 c5 dI=which(b$y==max(b$y))  #定位似然函数最大的位置
    9 _6 h/ b. O. Q. n8 V( h4 alambda = b$x[I] #精确的λ值
    ' ^  l4 j0 S3 V7 }9 @* j#λ接近于0,为模型简洁性,可以直接进行对数变换
    ! q, V+ f2 X* F, {6 K4 \logprice <- log(price)
    3 i  _/ B8 \& L" `% E" ~hist(logprice)
    0 Z3 M* V8 {9 A/ s: o6 M3 F7 Q  s  \
    9 t% v  t0 V8 B# p4 x  t7 w
    9 o& v2 q* v) e! l* s9 ?" U8 M
    ##最终模型与诊断
    1 K  Z9 g6 d& b3 S5 [1 A: g, U$ L# b6 e

    2 Q6 e4 h; |9 [4 ]( wlm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)3 r6 s6 w! W" L: i4 v
    windows()
    . `2 C$ Q9 Y3 e  f' j! P! vpar(mfrow=c(2,2))
    & E5 Y/ ]9 P+ W- Rplot(lm6,which=c(1:4))
    5 }7 N' N# T: j$ V! R3 uanova(lm6); a: m% G3 ?1 \6 i
    summary(lm6)) R8 V! K7 j6 [2 ^" j( L- ]( ^
    & S% g" g, J* E: l7 y* M0 m* f

    , j( b$ r$ h# O+ P2 J; \7 W# `请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    3 r5 v, _9 G/ T3 Q) Q8 l+ ~
    4 ~- }' P6 B% F( q7 ~6 N

    + P& }& X. B$ v4 L$ k7 D) G
    . V. D- \: ~5 a# U( N  b/ m5 c; M5 }/ s$ k- q5 `) f
    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的分析没有9 D0 ^: {! H8 h6 x
    6 f# ^2 ]4 K3 O1 t1 k- P4 l

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    ' ~% T6 j2 V4 F, q( D, E1 P( v. X% X- H8 W) O5 c

    点评

    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 1 w& }! V  G; F+ S
    太好了,又认真的看了一次,发现自已差太多了
    * V9 y- z) I: Y  ?
    我每天会发一些好资源的5 h0 j6 s# H, l2 S- A% d/ @$ C
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 " @# B% ]" e+ \5 d3 u+ W6 a$ B+ I
    一定会认真的看看,发现这是R的,有python的分析没有

    - G6 c3 b. C) G有啊
      `" d& ]9 {3 @& [$ O" s* t3 y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-27 08:00 , Processed in 2.177410 second(s), 78 queries .

    回顶部