QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    + c0 ]9 c/ [4 d$ g6 l8 H. r

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    * p5 d* }8 Z* M, z( Z* v这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    + i9 {: _* f3 w
    行描述性统计分析,各连续型变量之间的相关关系如下:
    % p" I! D4 W/ u& `* h' |" j% t" z# ?& Q9 t

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

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


    1 t/ n( n! U. e7 S; c5 S, }& D$ l& c

    $ Z4 |4 A3 ]  ^4 `最终模型残差图:
    ! j$ w* O0 V) }9 V. J* y" L
    " w, m" O- Z$ U: @2 G7 M/ l& s
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    * Z% z: Q' i! c: G+ C( I5 _属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    & q8 l( v; z) X属性变量的具体影响在此处分析略去。
    5 u$ O0 T; N5 H9 U连续型变量的影响主要为:$ x: h# F, J: T; m0 Z
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;& |8 m% U; \! }/ w3 v
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ! u3 `2 B/ j! b3 m9 n4 u+ }3 q同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    1 D& [$ t: S  |& d 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    # B& E6 @8 m& q3 Z 容积率与环线之间存在着交互效应。! M! w2 d( ~& [) P+ m
    rm(list=ls())                                                                                #清空当前工作空间9 G' Z9 U- [& g' ^* z  F
    setwd("D:/回归分析")
    3 u- X1 Y, i. ^- L9 ?2 ia=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a, Q5 L6 q# `/ i
    View(a)% x6 p1 q, J8 E4 e
    attach(a)1 e1 B  B' F0 ~4 _
    names(a)" b/ l) ~/ D) {3 F
    3 @! Y! B3 U# [5 P: ?" A# S
    & ?, ]1 t  C( R" k" W
    ##描述性统计, ^! k: D+ _. P- [

    3 c# S- s% o8 w! m+ K& a9 k0 T

    1 E: e( M8 \9 W#未做处理的响应变量分布情况) K/ W& |6 N  D$ G  g8 ^2 H
    par(mfrow=c(1,1))
      b4 B+ }* d& T& \4 q& chist(price)( Y4 M5 ^2 z2 C( Q" Q" _8 z
    summary(price)        #查看响应变量的描述统计量; Z  N6 }# {& ?/ v
    #连续型变量描述性统计( Q" O2 R0 O6 J4 Y7 ]2 D
    windows()
    2 r- U3 H, R4 e6 ppairs(a[,c(6:10)])    #所有连续型变量间的散点图9 ^/ j# G  e! j6 M
    par(mfrow=c(2,2))       
    4 T" [1 Q7 _; R1 S* gplot(rong,price)      #每个连续型因变量与响应变量间的散点图! y7 W' l* V- u; [. w. t
    plot(lv,price): p) |- K9 i1 ~% |: i
    plot(area,price)
    5 \# ?; T2 x; ^; P& Hplot(ratio,price)! W7 I, K6 S5 [4 t4 H0 i- A9 C
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量5 D+ ]. t% A. F' X- p; w
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
    3 W/ z) b# b) C7 h  Y) |#属性变量描述性统计5 G2 f9 l- ^% Z. p- f5 S6 f
    windows()5 E) j) s6 l  r; x  E/ p
    par(mfrow=c(2,3))                       
    . W! C2 H: w  Q- a9 Iboxplot(price~dis)          #每个属性变量关于响应变量的箱型图  i4 @  z7 p" a  `, j9 ?% s
    boxplot(price~wuye)                                                                        9 T! [, o" _  n! C" x" b
    boxplot(price~fitment)        3 [) F  |) J5 R7 s. }9 ^$ \( V
    boxplot(price~ring)        " }+ \) }. v! z) G# S3 P
    boxplot(price~contype)
    7 P! x7 F; g( B, R$ R! \6 ?
      h6 F" C1 O( q) i
    " q7 N# R/ Z' q1 L* l& ?2 y, A
    1 w8 F0 e$ w1 J/ I

    + r+ M. X1 x9 D) c0 u5 {##模型建立: w9 a- W( H) {& ^" k

    2 T- g8 B7 f3 t8 u

    . J# B( H/ c! b. k) j- u6 Q' [6 j#在方差分析模型基础上加入连续型变量
      m; H  e, w% r3 rlm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio), q! V) Y0 X! `+ t' }2 f. h
    anova(lm1)                #方差分析3 ^* [3 R. U0 b$ g4 k( N' h: |
    summary(lm1)              #模型参数估计等详细结果6 ^8 k1 o+ E  e1 R0 V3 H
    windows()
    8 @( k5 _$ L6 hpar(mfrow=c(2,2))- m! `) w2 O0 Y  f# [
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    ) ?; Y5 m8 I! P& Z+ u6 V4 s, c5 o0 L

    & o% V/ i6 ~2 G; i7 N6 N+ X) c/ @1 c9 S3 @4 O
    1 z8 m+ o3 a' B3 F* I, C2 y7 ]
    ##变量处理
    5 w( ]4 Q. y% Q2 `( P; Q5 p7 x' V6 q" w% O/ _7 y

    # |- ~$ f: E; F, D3 I$ n###对不显著的变量采用分组的方式希望能达到显著的效果
    7 ]8 j: p7 @9 {: B6 G$ t6 E6 `0 v##对容积率的处理; ^0 `+ X  y2 J, Q/ @
    windows()6 [2 C0 n% R# W' l0 U
    n = 4; Q- b" W  ]. i2 b) f& ^
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        ! q; t+ d  d& p" @9 {
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    * |0 ?) G: `. u6 k% S. [ronggrp=1*(rong>n)                #进行二分类
    2 a  s9 m5 ]$ [  C  u# r#ronggrp=ceiling(rong/n)        " p/ ^* w9 h+ {/ I" F2 Y0 [
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    0 `* n+ y1 [9 h9 Y/ O6 rwindows(): [3 X2 M" Y( ]3 @( B3 V) Z* o
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    9 Q; w4 u" C8 L. H4 g; ~. D& Uwindows()1 H& x, F  H8 e
    par(mfrow=c(1,2))
    $ e5 N( X6 I* ~1 g" O" r! \boxplot(rong~ring)                #容积率与环线箱型图
    3 W  u7 n7 k% J; W' R2 C% aboxplot(price~ring)               #房价与环线箱型图 3 W' n4 c2 y4 [8 |' w0 H
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    : L' q& U: r9 y4 N. jlm2=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)
    6 g) A: _  G$ G) Z& {anova(lm2)                #方差分析
    2 j+ N4 p8 X+ p/ ksummary(lm2)              #模型参数估计等详细结果2 \' \; d$ c4 {$ C" v' i8 Z
    windows(); F, m" x# D$ w2 ^% [* d
    par(mfrow=c(2,2))
    5 H, U% A( C: U( cplot(lm1,which=c(1:4))    #回归诊断" b" H8 |7 c3 \7 m4 B7 X% q

    0 W/ P9 d! A4 n) }7 i' Q  X3 b, u) V* y

    3 T+ z- Y! b" B" p  N& P- C  H##对小区面积的处理
    % R7 o6 r6 w5 Hsummary(area), ~) T- h" e( m8 q
    plot(area,price)& N( O" {+ y! s
    windows()! E* Y& B4 T2 r4 I3 N; L: c
    n = 1500001 w) @8 H. `" D9 e
    boxplot(price~ceiling(area/n))                                                        % }: h; k. `1 P+ W7 A1 q/ v  p
    table(ceiling(area/n))                                                               
    ; K3 n9 o- l$ {' j2 \( Wareagrp=1*(area>n)$ j  u$ Y$ o, R) m8 Z: L
    table(ceiling(areagrp))
    . A. }2 f$ Z7 `boxplot(price~ceiling(areagrp))
    7 `4 \7 L6 Y% a! m# W! E#加入小区面积分组的模型; h7 d. l6 y7 K. ?& M9 u
    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)
    * N% c2 Q5 x2 Ianova(lm3)                #方差分析
      `$ \6 Q4 ?2 Nsummary(lm3)              #模型参数估计等详细结果+ A( c! t) E$ y8 P, c# z4 T$ p4 |3 m
    windows()
    / O* J# j; g8 n7 R, K) [par(mfrow=c(2,2))& M7 ]' y; j$ p. q8 B  |  D
    plot(lm3,which=c(1:4))    #回归诊断
    7 B4 |4 v7 o9 D4 g8 j2 c: x% Q
      e; ?* r$ C) i" W* _+ F

    + \% T! Q5 q4 p! r$ t) [+ h7 p##变量选择
    ' l6 Z1 H0 Z9 I6 Z1 C7 S2 Z) ~( |8 j/ q4 A
    9 ?' P  u/ k. O% y
    ##AIC准则下的变量选择6 s2 z) r8 h& [/ [: Y
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    ! |$ h# }) Z" u2 D; `- Nsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节; V7 a9 U; b  B
    ##BIC准则下的变量选择
    % w' }( R6 G1 {! I5 e/ C1 S: }' klm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic' K$ x2 `2 y# s1 P
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ! {: w% u, H" }) ~% ~
    * v. _& F; s( ~! c3 m
    + K! w5 [; \' W: `6 X* Q, P: z
    #选用AIC准则下的模型进行回归诊断
    % j" l% }- U: t. X( r2 fwindows()$ |, l, N% b! z4 D
    par(mfrow=c(2,2))
    + U# W0 x/ Z) A8 P+ C, ~plot(lm4.aic,which=c(1:4))  / @: j% J% O" ~5 l0 u, |: y

    # T* h' x" |5 Y1 E

    # B& D( p' G8 l8 r: A. [, y' _4 J2 e- @2 ]: `& [8 x
    ' e0 v. @' w% X  v2 Y
    ##数据变换* o* f$ T! N! ?# L; A  ]

    * t6 D2 A2 P" L9 l- v4 j

    + M! A4 @4 M% s#box-cox变换( {( m+ {0 w* v  y" f6 L0 z8 W
    library(MASS)( K1 r( p. T. D6 `/ 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))
      ?# H, ^" A3 j- `3 p  p* w/ a0 dI=which(b$y==max(b$y))  #定位似然函数最大的位置
    8 J! Z2 u& F$ y  W- ~1 f6 k, llambda = b$x[I] #精确的λ值( h  Y( M6 _8 ^' i: E  W4 b
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    3 a& z6 }1 ]- G5 u9 N4 elogprice <- log(price)
    ' z' K: I6 X+ C1 s  N& M( Chist(logprice)0 }& y2 |! P0 \( `  k8 d/ V
    . {9 n4 E$ @8 _' o2 x8 X) h$ w
    , s8 X1 i7 C0 q# m" {+ \  z
    ##最终模型与诊断
    + S, H8 |) ]$ b; a. [. q
    # I8 [3 r" }% Z: t8 u0 C
    # W1 C8 [3 N5 i1 }- H% i
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)4 X  q7 D- f5 A0 k8 R! M
    windows()
    ; Y2 d, c- M  @& M! _0 apar(mfrow=c(2,2))
    " ?* C( A* d6 Tplot(lm6,which=c(1:4))
    ) P% \/ Z5 A8 T! g0 W0 Nanova(lm6)
    : a, ^5 r' C) k- h3 d0 Wsummary(lm6)
    ! `0 t1 @/ V5 A' f1 o+ l
    4 [# o. K. |0 f8 R0 G& [: C. Y. O* Z# p: o+ j
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560- z# H2 D: B4 N( x8 [) j
    6 e. L5 X$ U! @9 N; l& ~

    # h4 L) g) N' Z: ]+ K; K, M  c
    8 Q$ }& \) \* r! t8 _6 Q$ f9 ]1 `/ H9 D9 y1 p. 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的分析没有7 U$ U; f  H  E! J, I6 w! d

    - ]1 P: W- Z. s" P

    点评

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

    太好了,又认真的看了一次,发现自已差太多了* V  Q* `' Y  C1 \6 {5 g

    " `+ `: ~' H( M$ j, V- y0 g0 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
      F2 M2 i7 P# b) J+ P太好了,又认真的看了一次,发现自已差太多了

    ) f0 g2 n' ], I) s我每天会发一些好资源的
    - u2 l6 D' n' r, @/ k
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    5 C6 Y/ E- \0 O% i0 l* j! H; L一定会认真的看看,发现这是R的,有python的分析没有

    ) Y  _2 H7 U; E6 T有啊
    ; X8 ~% u$ c* I1 ~7 j% Y
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-21 09:41 , Processed in 0.517545 second(s), 83 queries .

    回顶部