QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    $ b4 J! }$ W# [( K" v这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    # g) H6 v, C5 J/ N
    行描述性统计分析,各连续型变量之间的相关关系如下:2 D1 i# z+ h% i0 g

    / J% p" e3 G3 M0 [

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

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

    2 S, j, U* B$ e7 m1 }
    8 G2 L+ [7 Q9 i& R0 Q
    : l$ K  m8 x# e9 k
    最终模型残差图:1 |* L, t+ E' [; G
    2 _7 f' a' k) e# k$ ~( p3 I
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:7 ?! I) t! ?# q( P, E3 E
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比: U8 z1 t7 I/ N7 y; y
    属性变量的具体影响在此处分析略去。
    - w8 I) O6 }  ?9 L/ v连续型变量的影响主要为:
    2 N# [8 m. T- h/ G5 F+ G* A 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;- ~1 F2 Y( }1 y4 |; v
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    - ]7 w) O% l& F3 b8 U同时,原本为连续型变量的容积率经过离散化变为属性变量后:0 v3 {. T; a0 Z* @
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;( o/ J% R7 n) v3 W
     容积率与环线之间存在着交互效应。* i5 ^1 F: E1 t6 q
    rm(list=ls())                                                                                #清空当前工作空间% y( Q4 O" S: U$ ]# U6 t
    setwd("D:/回归分析")
    ) F& @5 n8 M7 y  M5 c3 s& ga=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    5 s: @. S& n# p! y9 T* E: V4 x9 nView(a)
    1 D4 n9 I/ V4 s6 @attach(a)& m  Z3 o% @- w' x1 G
    names(a)
    : _9 z( E4 [. A1 r" F  b
    / c# K, X* @: n) F1 F

    ' r, M* @6 d/ o% C##描述性统计
    ' X1 J) U5 V# g8 ]
    6 G1 b8 U  N& Y
    ; W' f0 \. F2 \! o& I
    #未做处理的响应变量分布情况$ z7 G/ n% e0 F1 L3 Q/ J) K2 W3 f
    par(mfrow=c(1,1))
    $ z1 E# h( N' h7 F) ^& ]( a6 @hist(price)
    : A! T; o: G. C0 Psummary(price)        #查看响应变量的描述统计量, I7 v5 n2 z1 o0 w. o2 y  d
    #连续型变量描述性统计' P9 ?: ^. ^9 U  C
    windows()
    $ K* n$ B1 l+ I' R2 cpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    ; m$ h  J7 y1 |8 i- I3 z, Opar(mfrow=c(2,2))       
    9 ?& i6 t2 O! U1 O# A4 g+ Splot(rong,price)      #每个连续型因变量与响应变量间的散点图5 ?8 ^) T! k# b
    plot(lv,price)
    1 Q' `: D; g0 `9 {9 [4 x& o" xplot(area,price)+ s" D, b; K* r+ U. t
    plot(ratio,price)3 B/ A  \2 \6 g
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量' B  G2 r+ m; e6 Y: w+ `8 q
    cor(a[,c(6:10)])      #查看连续型变量的相关系数5 M0 p: t& F) v
    #属性变量描述性统计: q. L8 s! r6 E
    windows()
    1 g0 T, i$ f! I' Ppar(mfrow=c(2,3))                       
    ( T2 Z& I8 w. h4 i3 k4 X* nboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    / K, k- j: o( p+ X( nboxplot(price~wuye)                                                                       
    0 a6 {+ J( p+ F( C$ Fboxplot(price~fitment)       
    : o& X' C, e! {, ~3 bboxplot(price~ring)       
    ( Q" U7 P( t, k8 P: P5 G, o+ Aboxplot(price~contype)/ {0 `, S9 B; ^0 ^7 V- k6 m% O
    # h3 D, T( h: U& ~
    9 {% [$ [" ?3 i) j4 `0 ]: Q9 d

    % T% ?% S5 l+ y' ?# B

    : ?1 h) t7 {  {6 `+ I/ e  {3 k##模型建立
    2 }  l6 Y; a5 K) K$ k3 e+ t
    / `. a& Z1 |; k8 b" E, w5 f

    ! t$ f" B' o4 O! ]* v#在方差分析模型基础上加入连续型变量3 y; A/ ~1 J; E( _0 R
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    $ M4 g$ j( R- Danova(lm1)                #方差分析
    1 k9 q5 T2 o6 ^$ q+ W4 `2 R' u" Osummary(lm1)              #模型参数估计等详细结果
    . P- U. S+ z7 M0 q7 M( _& _windows()
    ) v' k7 Y9 T4 ^; J7 Fpar(mfrow=c(2,2))
    ) W2 e% t6 a# ]! I# a1 O+ o% ]plot(lm1,which=c(1:4))    #回归诊断做残差图
    - N+ r  V% p# U: D' V; N& G1 S
    . \/ ?7 ?& _5 x& E

    & y" \) K- [' v/ e% a2 R* M9 V; z" F5 I- D
    9 u0 u2 y0 ?1 l4 T* a% B# x
    ##变量处理
    8 O% x' l2 t: `! @( A* d/ m( t$ M4 P6 t0 W% A( M
    3 f0 `4 d; u5 [5 i1 a
    ###对不显著的变量采用分组的方式希望能达到显著的效果2 [4 B4 o/ q5 A: U# R6 I" c* }# b
    ##对容积率的处理8 n, M( E" B+ h
    windows()6 p$ _' v* e/ k1 T  ^
    n = 4. j) \* A# B! c# C; I* V8 J/ ]' I
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        % X2 Q$ p7 v* N' D3 |
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    ! X6 O! O1 P, c0 n2 u& W: kronggrp=1*(rong>n)                #进行二分类- h$ ?. E" z# J/ J  S
    #ronggrp=ceiling(rong/n)       
    0 i7 M2 Z* H4 N6 k6 _table(ceiling(ronggrp))           #容积率二分类下的样本数: z4 h- R& T( h
    windows()
    ' F6 {# n! i: V" p( G2 Q9 i: qboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    ( b4 P; ~: j4 n9 q5 Qwindows()+ }  H, a  A) e
    par(mfrow=c(1,2))
    / }# m  r" J- m! f6 `1 p' gboxplot(rong~ring)                #容积率与环线箱型图
    4 `9 P* Y( t, Y! w0 f3 c8 _6 aboxplot(price~ring)               #房价与环线箱型图
    . m  k5 M7 X. f( ~: W) j. b' ~#加入容积率分组和容积率分组*所在环线交互因子的模型$ g; l( L% J- z$ }# u
    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)
    5 X# z5 n& g& }- H$ eanova(lm2)                #方差分析
    1 w+ X2 r: f" J$ _. Z( i' Vsummary(lm2)              #模型参数估计等详细结果9 j# Y) X, M$ e1 I) D. f( P
    windows()
    ( h& P+ l( u- L# q: @7 X! {" x0 Upar(mfrow=c(2,2)), Y6 ^& F; B0 o8 p
    plot(lm1,which=c(1:4))    #回归诊断
      |1 l* v# E+ E. Y  x
    ! i$ b! @$ C* k8 Y. @3 Z

    % Z2 z. m0 J1 @6 L, t: D& ?##对小区面积的处理
    ( ^7 e8 `. v8 v) [0 c; {; ^. i' Q8 ?summary(area)
    : X0 G- e: @4 _4 ^plot(area,price)) G6 e/ T6 w, \& z
    windows()
    0 Z% q2 K, h' X; tn = 150000
    ; {6 P7 F1 Z* y6 Tboxplot(price~ceiling(area/n))                                                       
    6 t. @+ z* q* d6 U9 htable(ceiling(area/n))                                                               
    3 T9 J+ }1 f4 [" a0 gareagrp=1*(area>n)0 Q* C) V* m; D9 [' b- d8 f
    table(ceiling(areagrp))% n8 l: U" X0 f' V, }) Q
    boxplot(price~ceiling(areagrp))
    5 f6 ?. |, Y+ u# q- u#加入小区面积分组的模型1 I; P* }5 T" p4 b: [. t% B# 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): V! l+ Z1 r2 F) C, q
    anova(lm3)                #方差分析& p/ C' ~6 a3 m. u( Y. |: _! n
    summary(lm3)              #模型参数估计等详细结果
    6 d6 X! A: r. Ywindows(), y# ]+ I* n- j! a' N
    par(mfrow=c(2,2))
    # q) ?, M) g3 P- L: a, splot(lm3,which=c(1:4))    #回归诊断0 m' l: C5 a! N, W9 G) m! M+ C

    1 P3 y/ ^2 D$ d5 `, C6 \" E4 S

    ' ?' p1 w1 R4 C5 f, L##变量选择
    . T& w; _8 S+ b
    6 E% P7 ^* j/ e8 H$ Y; q
    : A( |8 L$ i6 U9 Y# C0 A/ J
    ##AIC准则下的变量选择
    4 Y# m+ l% ~) o& j* J9 Elm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic; j- n0 G+ s6 g1 h
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    / @( [0 S$ u& V3 m( y- T4 r##BIC准则下的变量选择$ t. f4 H' b: y& e( Y
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    3 t. K3 m& E9 @- y" B" B' Gsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    + e" d. ^9 D' f& w3 O5 k. b! v+ }* H& y- M* l% P
    ( F! f/ R: c; Y/ h" D' g, M
    #选用AIC准则下的模型进行回归诊断
    0 k4 D! E! ?" g+ a. Uwindows()
    - q" G* }$ b$ a, g" Zpar(mfrow=c(2,2)), S$ ?9 D$ l" G+ ^- C
    plot(lm4.aic,which=c(1:4))  
    6 w6 v# I% s# g9 V5 m+ m) Z- o
      @$ H% Z" W3 E1 r) X# x

    3 R5 H& Q  Q5 }- T# w0 i/ I( @' L' a' O$ Z* H
    / C; d: q* _$ F7 E
    ##数据变换1 N1 ]6 P. F3 F1 {- @' z6 v( T* V

    + j! X# I) [; L8 i* c% f
    5 b# e% \; w& L$ E; L2 |  @
    #box-cox变换2 o3 B& |1 |! i" N0 h/ e1 Q) J
    library(MASS)
    ' P: J' u) n5 K3 zb=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))/ G$ @4 `) N. h  W
    I=which(b$y==max(b$y))  #定位似然函数最大的位置
    + Y0 q: [6 z; i0 C7 N5 wlambda = b$x[I] #精确的λ值
    " J8 b/ F- K4 A+ \; @7 N5 z#λ接近于0,为模型简洁性,可以直接进行对数变换9 n1 ~* g0 K9 p: [  K2 @
    logprice <- log(price)
    0 Z+ G4 U# {6 V( L0 S# X# S0 [hist(logprice)3 K: e$ g* E2 G! t' U+ z! T# d0 }
    : S( l/ g. R3 A% z. [
    . G5 `3 g" R" l4 ?' u9 J0 _
    ##最终模型与诊断4 o9 a8 k. l  a) g
    ' H) O0 I$ @. ^3 m& ^
    - q) i/ x+ e+ Z
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    ( H+ R8 r1 s8 i3 k+ Gwindows()
    1 @" i% b5 o  @, ]4 k+ Vpar(mfrow=c(2,2))
    0 Z8 w/ K$ X+ M5 Cplot(lm6,which=c(1:4)), }7 J5 ^( w/ Y: U! r: s
    anova(lm6)
    0 `" \' h' _& h( Z, |0 Osummary(lm6)
    # r0 Q4 h7 g0 d& q# j2 E3 x8 P' N# k' o

    9 |: A$ p: |: Z  }8 x请关注数学中国网微博和数学中国公众号,联系QQ 3243710560$ R$ h- S3 w$ [9 O, s9 N

    1 x" o, G' C8 a' M
    % u: `& b# B  A2 h9 H% s7 I' W3 Q9 C( ?3 l& `* M
    # V, `$ b' y, I) R. U- b! Y
    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的分析没有
    8 T' E8 j1 R. Q+ ]9 P5 |6 w* Y2 k' B6 ^  p  f6 @

    点评

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

    太好了,又认真的看了一次,发现自已差太多了4 G( j& `+ K6 t3 [
    ; ]' J9 a  Y' y" D1 C9 n

    点评

    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
    0 v# m7 g& ^& @* q7 |3 f) @太好了,又认真的看了一次,发现自已差太多了
    * Q' M# n9 D% B" M
    我每天会发一些好资源的- a/ X6 o7 r, B+ r) c2 s# F
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    3 V! V1 [  S- {+ z& D一定会认真的看看,发现这是R的,有python的分析没有
    5 l8 a6 i% s$ ]! h( }( N0 G3 V
    有啊1 ?- I5 i+ \# j/ H
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-4 07:28 , Processed in 0.454443 second(s), 79 queries .

    回顶部