QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。7 K" g: z0 k! Z% x* y7 u) `# ?
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ' a4 _/ Q. \+ x5 i6 \
    行描述性统计分析,各连续型变量之间的相关关系如下:
    ' C/ S% V$ X9 B& `+ i0 V( g1 R& R' w# t

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

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


    $ r. V1 Y+ `) l
    , l. _( D: N$ w; S4 i  i$ R' [! u3 ]0 b4 C
    最终模型残差图:
    . {6 Z6 i: ~# m/ W& v! z' ~! k( z
    6 |2 l, ?/ w6 z! o: Y4 N; k
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    8 Q! d/ k- C6 v  N; V属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    % ?2 b$ A: I1 f: Z属性变量的具体影响在此处分析略去。
    : h0 Y6 f: {& N7 k  `! E$ J连续型变量的影响主要为:) M* o% P) w- q5 `' L* t* @
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    1 ^( y( F# w, m  M+ I3 e# T 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    - T+ N4 T- W4 S8 A) _同时,原本为连续型变量的容积率经过离散化变为属性变量后:/ n' S8 w/ d- {, i
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;. t. {4 g2 F& F0 p, y3 S9 k
     容积率与环线之间存在着交互效应。" X  @3 ]9 z$ P+ G* d! Q4 g
    rm(list=ls())                                                                                #清空当前工作空间
    & q* U/ k* k$ D$ d- _setwd("D:/回归分析")( N! P# \4 f2 c) V$ r8 }! \% B
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    3 ]3 r8 V/ S7 ?" |7 C6 rView(a)
    * V! U0 s6 _2 V. lattach(a); n( n8 a9 G" Y" m  A3 s
    names(a)" V8 q. ]7 u* s0 s

    + F7 f) k3 D. _* D5 N8 m9 X* b
    * _- c! t/ D' e* ?( N1 P
    ##描述性统计
    3 v2 Z8 p9 |, v# P$ L
    . d  E- b1 s) ?; n! r
    4 }3 g/ S6 o! Y% B6 q6 B: j/ R$ m5 X
    #未做处理的响应变量分布情况
    7 E" \0 P( Y) R% y, p1 q8 [, [par(mfrow=c(1,1))
    6 E( B  I) e: l$ Z6 Mhist(price)3 x3 c4 b+ ?" U+ P% U6 x4 Z
    summary(price)        #查看响应变量的描述统计量
    8 h8 N3 t0 Y% }) B$ _2 |( M#连续型变量描述性统计: v0 N( ~9 f" J$ i5 W
    windows()
    : @. W; Z; v) S$ o- c4 kpairs(a[,c(6:10)])    #所有连续型变量间的散点图
      J( b+ [7 L4 A3 Epar(mfrow=c(2,2))        4 F3 o% g# g+ ?7 Z6 X! D
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图7 o6 F1 k+ A% f$ x- A2 j
    plot(lv,price)
    & Q# f/ y( D% A0 O. `8 E1 Aplot(area,price)3 s( z) G$ e; P' W) m# O
    plot(ratio,price). a0 p" i  N9 |- C8 M
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    5 Z- a7 a# ~1 L5 |3 E1 H% T. j; L' mcor(a[,c(6:10)])      #查看连续型变量的相关系数
    ( Y; P$ ]+ O& u#属性变量描述性统计! o8 ~8 S9 b( ?( X" C, R
    windows()
    ; m' u% r% m0 i* E3 k  Lpar(mfrow=c(2,3))                        , ]& ?2 A- r0 R1 |
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    & D  R! D, g3 sboxplot(price~wuye)                                                                        % f5 [& z  R" Q$ E
    boxplot(price~fitment)        3 d) ?$ U! I* E% U
    boxplot(price~ring)        # {3 i7 {2 H1 f* Y- W- r
    boxplot(price~contype)
    : X. s$ _" I; A) e8 t7 o$ D1 z  r6 T9 x
    2 Q% p0 g! S- t7 k: a  l" Y

    4 y( |2 _+ u0 \( E7 e

    7 O4 }1 k# i' k6 _* b+ @##模型建立
    9 g. f. }/ N! ~* o; Q; Y& M% Z% B: _4 B' ?; I: H
    : R! r% g/ }5 A$ H4 S" l
    #在方差分析模型基础上加入连续型变量! b& g1 w: R/ q6 D& S! l
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)$ `4 ~9 }5 h1 r5 c4 D
    anova(lm1)                #方差分析) j( O+ R# H+ c  o1 Z$ v# ]
    summary(lm1)              #模型参数估计等详细结果
    & F* F+ m3 o3 ?' o. H' N  cwindows()' m" a: C- M( u% i- `# }8 ~' r  A
    par(mfrow=c(2,2))
    ! Z7 n& k% n# `2 D' aplot(lm1,which=c(1:4))    #回归诊断做残差图6 j1 y: T1 j# @* U. S2 m- F' C' u

    0 B4 v6 c: n" ~. T0 T
    $ q* D7 y( u2 a2 t6 N

    * v4 w( l3 q' F5 t
    , j  W8 f& ~& R! |
    ##变量处理- w3 J& d$ H% U7 k/ z
    ( a, q& I8 J4 ?" @2 Z6 }- G5 b( D8 l
    4 y0 _2 `4 v7 }5 k  g  R
    ###对不显著的变量采用分组的方式希望能达到显著的效果% ?6 c+ P6 U0 F; ~  B9 n
    ##对容积率的处理
    ( s- M. G5 @( R* X2 x% b1 Ywindows()) x* \- \8 s( t8 I# J$ X$ ]! U
    n = 4
    , K( M: y9 A$ X7 K2 x1 J4 Uboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    0 c1 t7 N+ s! g' z6 [table(ceiling(rong/n))                                                #容积率各分组下的样本数# c- p3 K6 N" N$ G" I1 i
    ronggrp=1*(rong>n)                #进行二分类) F  N. x6 n  v2 d% l
    #ronggrp=ceiling(rong/n)        4 u) ~0 ]5 y8 W4 L3 ?) e" X
    table(ceiling(ronggrp))           #容积率二分类下的样本数) u$ O. v: s0 U0 L2 c
    windows()" B  l  a+ m9 U/ T
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    & O1 H* K8 d* d9 bwindows()
    7 G1 o  Z  [- K  Wpar(mfrow=c(1,2))
    2 b: H3 r2 j7 i4 G7 p( A+ Y& Cboxplot(rong~ring)                #容积率与环线箱型图
    8 d1 O8 i3 i* w' Tboxplot(price~ring)               #房价与环线箱型图
    8 E* g1 U8 C& h- U5 D- V#加入容积率分组和容积率分组*所在环线交互因子的模型) [/ `! q  T) g7 d5 i1 s  q. K
    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)/ j2 l3 h! F! ?) c2 R
    anova(lm2)                #方差分析0 c% w9 J* W( u/ R. @
    summary(lm2)              #模型参数估计等详细结果  k6 c  E6 i, X$ F: j4 T0 q, _
    windows()! N8 _! B$ ]/ S- M6 i+ M8 q' \, F
    par(mfrow=c(2,2))  g2 B! C; I: f$ p8 m
    plot(lm1,which=c(1:4))    #回归诊断
    8 R' f5 y% N) w% u: o- n
    / x: _1 u$ ~* M, ]& N9 Q5 Y4 o

    - b! U5 J' i" d9 h##对小区面积的处理( |& I, k, Y7 Z8 M% j7 h
    summary(area)5 G: q- l* a( x
    plot(area,price)3 _; M2 l! Y# E, J. C5 Y$ M( ]
    windows()" P! L' m4 j/ {, s) w( \9 J
    n = 1500005 J( i! S  U- C9 o  a+ J
    boxplot(price~ceiling(area/n))                                                        3 V& ?* e7 y( U7 Y# P4 {& m
    table(ceiling(area/n))                                                               
    ! A  q9 O' W2 ~areagrp=1*(area>n)
      P# x' J& m5 k/ b$ P  P3 Wtable(ceiling(areagrp))% o# F+ a% F7 l1 z2 j
    boxplot(price~ceiling(areagrp))# {9 a# j6 I2 i" w# D
    #加入小区面积分组的模型
    1 Q, I2 h9 s: o. k& |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)$ |# ~2 C  E/ B. S4 S
    anova(lm3)                #方差分析1 i! O. V# o& {& g- U7 W7 O+ Q
    summary(lm3)              #模型参数估计等详细结果
    + ^+ o0 I: q7 [, R0 @windows()
    9 b6 V" V2 L, Apar(mfrow=c(2,2))( d* m' |6 L9 U6 Q; W  t
    plot(lm3,which=c(1:4))    #回归诊断, Q* m, k- ^! ~% E6 t

    ! _- c" }! y. t+ ?9 g9 U8 {, c; [# O

    # L! J: N1 N: f  F8 E% U& Z##变量选择
    6 C" x1 M* F3 `& n
    " ^  U3 `8 L6 e' X6 Y$ D8 l
    : |3 p. {: a: G% t4 c0 e
    ##AIC准则下的变量选择, D7 L; V2 w# \7 B
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic, U3 ^) y  v% @, F
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    % E- J" W& q. u4 p  x% n##BIC准则下的变量选择
    / _; `  \3 i% a% ~) E) ^lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic% C6 F4 T( \9 s
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    : R& [* C4 u# d3 t
    / q  i3 X$ A& X( |: H
    * R, d, I2 `0 P5 d5 I1 k- `/ n7 @
    #选用AIC准则下的模型进行回归诊断
    5 u6 p) H) o: r% Swindows()2 I2 _. f5 U: U. ~% _9 u" ]' I
    par(mfrow=c(2,2))
    6 b; ^: H8 \+ l$ x: Rplot(lm4.aic,which=c(1:4))  
    ( c$ d5 S) G9 I2 z2 b0 y( C
    6 B8 X/ X3 ]1 f/ C. I/ U) V$ i" |1 h
    / r' x/ W0 l! B5 S$ j; |- A

    , c- n( q* K  x3 B

    $ K, m  Z9 N6 t& ^5 K3 L##数据变换
    2 _2 U. }! G( E+ g. K% `
    ) c' N1 N- Y6 N7 L

    / B3 h$ [' Y5 t! K/ v#box-cox变换! Y* i. M1 ]! N& J# Y5 |% V3 n
    library(MASS)7 A- i2 o0 w, K/ z5 V: O: F" Y
    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))0 s9 e8 c! A, A! ]
    I=which(b$y==max(b$y))  #定位似然函数最大的位置3 N, u4 H- u3 A! w' L
    lambda = b$x[I] #精确的λ值
    2 V2 I  Y* l, x$ z" M/ D3 D#λ接近于0,为模型简洁性,可以直接进行对数变换# x0 F2 l) k, w
    logprice <- log(price)
    0 N! z6 b% l2 Jhist(logprice)- r; D- h8 J% h' w9 T2 q
    4 O* F" H$ k0 x
    & O3 Q7 E. L$ n4 m9 E& a- L: l
    ##最终模型与诊断
    / ?, w  L: D( ^
    3 {: e8 [( `% }. _, h0 W
    5 I( v' {! w$ V; _
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    3 e+ u# y" F" l* Y) Rwindows()
    5 _( F1 ~. _* c, V5 {par(mfrow=c(2,2))
    3 v+ l: v7 @* m: j  B! l6 l! Bplot(lm6,which=c(1:4))
    & }0 U3 c6 S$ i7 y7 Fanova(lm6)
    3 C" p8 Z6 r( D. o0 I  U1 M% Tsummary(lm6)$ E5 z2 x9 R, c( N! i+ |" ^+ R

    ( H. |0 S/ \3 N# t( _, O! y+ z4 m  d9 f
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560: i% D# s6 g; t' w% |

    - ]2 K9 W0 a- }7 k9 ]& u0 u1 R3 n( w# n2 N% I7 d
    # [! V, G! F' m
    ' m7 l& G9 f4 G
    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的分析没有
    & H1 ~2 C" ?; W' i$ ~
    , s6 \% n, Q5 @; ^; B8 N

    点评

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

    太好了,又认真的看了一次,发现自已差太多了5 U5 w2 j( w5 t6 E
    ( B. J3 [8 J6 y6 Z

    点评

    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 & I4 [; F* |5 a4 X6 ]
    太好了,又认真的看了一次,发现自已差太多了

    9 e9 h# m: |6 s& c2 ]; x- U我每天会发一些好资源的
    0 ^! W; u* W8 y5 i
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 ( e% @; u+ M1 ~' ~, ?8 A* ]# }3 e
    一定会认真的看看,发现这是R的,有python的分析没有

    + T2 |8 S$ H; E有啊, B5 n1 R7 G8 P% x
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-9-28 22:39 , Processed in 0.713250 second(s), 79 queries .

    回顶部