QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。& d, s& @) v7 h6 e+ V' V
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    4 j) S3 s3 R) U& w: I7 M8 K行描述性统计分析,各连续型变量之间的相关关系如下:7 U+ i9 F. V3 b. V) e
    0 R& I! _0 d$ F1 G) M5 p" \

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

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

    8 P0 T  c6 w; ~$ m, ?
    , s7 i1 Q3 [, x
    3 W- K) D( c: i0 X1 W0 L3 K
    最终模型残差图:
    3 m7 k& K5 {" O9 D1 M" J6 X4 s9 A$ Y3 L7 x; i( D2 Q
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:  h+ F9 x! w$ M% J
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    4 u4 Q/ K& B, o6 e属性变量的具体影响在此处分析略去。+ Z( k. Q" k8 M
    连续型变量的影响主要为:5 {5 [" J/ M( {/ G1 t9 N1 {$ @  [1 ~
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    * V5 f9 H2 Y) O+ t; X6 B9 G, T9 d 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    * L1 v5 O  {  k同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    2 G1 h+ I2 j$ v5 R 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    * H2 i1 Y0 p6 C7 E  `) ? 容积率与环线之间存在着交互效应。5 K3 c. e) |1 d) v) S9 Y
    rm(list=ls())                                                                                #清空当前工作空间- ~4 k, L, R& z* G3 O6 ^2 ?
    setwd("D:/回归分析")3 h, @8 ?8 D; ^/ ?  _* g0 M- e1 k
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    8 f4 u( g  b+ fView(a)" I  L6 c4 Y0 S5 e
    attach(a)' U- ~  D: g3 N3 j
    names(a)
    % h* K+ d3 ^) B5 r2 _) M6 e" a) S/ i+ y+ f3 T) I0 [

    , I4 \- h5 m4 h5 M* Y" V! j##描述性统计
    2 ]+ e$ h" L9 a% R" F! T- u* T/ m/ P* A1 O% t

    ) S) u: W; A- C/ Y% ~% Q#未做处理的响应变量分布情况
    - R1 B8 e/ U5 ]) k+ d) Q3 cpar(mfrow=c(1,1)), Q  A& _% ~; \2 v: J! }
    hist(price)$ L. C5 N" L% [
    summary(price)        #查看响应变量的描述统计量- H+ G5 D  B6 `1 B
    #连续型变量描述性统计) }) A- {9 s+ ?' A# v2 p# L
    windows()
    9 O2 v, t# a5 Y7 p. Zpairs(a[,c(6:10)])    #所有连续型变量间的散点图; M9 v* I+ `5 I/ [, D
    par(mfrow=c(2,2))        4 V$ D1 b: B+ a3 g/ `2 y9 x
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图3 j: F, @, }/ W: P; W  o
    plot(lv,price)+ I0 C* V# J  ^0 Q6 G
    plot(area,price)" i  z: {- e5 D1 W
    plot(ratio,price)2 R  @  v# o! ]: Y$ f, V- Z+ p
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量2 `/ f- J2 h$ A& C. L" w
    cor(a[,c(6:10)])      #查看连续型变量的相关系数
      T+ t! b4 e# k#属性变量描述性统计
    2 V+ K+ v7 T( G3 q" j) p% Owindows()* T8 ?9 ~  ]% l! Z/ y
    par(mfrow=c(2,3))                        9 a) H' _( u5 N% j( u1 S
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    2 r: |0 ^. c$ y% d( oboxplot(price~wuye)                                                                       
    / K- a$ f7 `- aboxplot(price~fitment)        ' m- @  u% j) ~" @) e3 B! B. u
    boxplot(price~ring)       
    5 C4 ]9 Y4 l( l8 G  U8 J9 O% iboxplot(price~contype)
    . [, w4 {( {2 p' h+ Y: b9 `1 [* E. Z* T$ u6 n
    6 I( a0 H  P6 n9 o1 g2 x
    * t9 v3 _4 V! c/ n' o
    " M: R# {- [6 E4 ]$ |" B
    ##模型建立
    . ^+ O  h  w0 F9 o+ X& y% N+ d% M9 Z% S% L
    ! _% M8 o/ N- p( V/ a5 O& @0 v
    #在方差分析模型基础上加入连续型变量9 [) V/ Q" a5 I; V1 d  A
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    + \/ {2 N. Y2 O' G& manova(lm1)                #方差分析
    ' y6 }, i9 E4 W" B8 K; _summary(lm1)              #模型参数估计等详细结果
    * S+ q  J' {0 ]$ C2 J/ Lwindows()
    ; ?2 _) x- X$ ]par(mfrow=c(2,2))& t7 u" q! c* ?% z( v1 `
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    4 C- u( j2 l8 W& n$ W7 {
    - H* N" e) @& Y% E6 J* D7 T# r
    " K" v" q, V! G8 J( p

    8 H9 K# ~5 k/ h! d0 D
    9 P( }5 L5 K5 g/ v
    ##变量处理/ o4 H% C# [! |( p

    ) [7 B( ~, e1 Y' P

    5 c# k1 R* F9 |) R* V  G  j8 [###对不显著的变量采用分组的方式希望能达到显著的效果
    ' |3 g  t/ k, Q! \7 u5 x, k- r, X' V##对容积率的处理' l# v0 o: B# r1 Q: S& }
    windows(); [3 e% q# m! L
    n = 40 i8 d% s* @3 j. m1 v" A% i$ {
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        ( Y$ E* {9 K! I& S1 X
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    - p! g0 r$ E8 ~( g& hronggrp=1*(rong>n)                #进行二分类" U, r  L+ \0 I( z& Y! p+ ~1 N
    #ronggrp=ceiling(rong/n)       
    $ u3 E) y- x* S& T& }, w0 G+ htable(ceiling(ronggrp))           #容积率二分类下的样本数
    ) }7 O7 `; |4 c% Rwindows()
    9 d0 t! N  ~" k& m3 Oboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    + N- \0 H0 v- w( p$ q3 }windows()
    4 a& b% B3 F& }& }9 F8 U! w/ Ppar(mfrow=c(1,2))
    8 ^7 n2 {7 R# q8 v- |$ [( m- R' w( Wboxplot(rong~ring)                #容积率与环线箱型图" w! b1 R; v5 a; l1 L5 ~
    boxplot(price~ring)               #房价与环线箱型图
    7 Y: N" X8 d$ S/ Z#加入容积率分组和容积率分组*所在环线交互因子的模型
    1 @1 i: v  v' B% Hlm2=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)" n" n8 b6 l# ]" T+ [4 m
    anova(lm2)                #方差分析
    ; T; J+ c: F0 ^summary(lm2)              #模型参数估计等详细结果
    . o1 K9 a: {. A& N$ ?windows()" Q5 r- q! }4 d$ R6 A( _
    par(mfrow=c(2,2))& y) D4 B( o$ ?2 t) x
    plot(lm1,which=c(1:4))    #回归诊断
    9 k* F) n6 M* y; k% D0 o! e2 ?$ b
    7 R6 W& e- T) i, g  M
    ##对小区面积的处理, b8 g) f1 w2 Z: \, V$ ]! W9 U# [
    summary(area)* W) I3 V' f6 v& ?8 x' _
    plot(area,price)1 b6 C2 [! J4 d: P/ B
    windows()
    " z* ]6 }# _4 O5 `9 zn = 150000
    : F( N4 p  t% F) B7 u5 O3 Q$ Hboxplot(price~ceiling(area/n))                                                       
    ; L, c; O9 e- \" R9 ^table(ceiling(area/n))                                                               
    / l; r9 C$ a* }, qareagrp=1*(area>n)
    . @' |2 T) k7 F  I; ntable(ceiling(areagrp))
    . ~, `1 n0 s0 y0 z3 mboxplot(price~ceiling(areagrp))
    ' N* r- M" x. b% N- V- ?#加入小区面积分组的模型5 u# U% K! O; ^; R5 `% l
    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)& U6 x; g! C) p+ s& Z1 N
    anova(lm3)                #方差分析
    7 `0 ?3 I! Y* O' Lsummary(lm3)              #模型参数估计等详细结果
    * Y5 O$ R/ ?& X; U! B7 I- r) Gwindows()
    3 V4 S  U" Z, `5 A/ {; epar(mfrow=c(2,2))& \9 `5 C& w3 D- F
    plot(lm3,which=c(1:4))    #回归诊断
    ! ^6 w" `* `! Q6 H) N7 m; c# M1 Z0 D9 _4 h6 |9 I

    3 V, }, U* C, O##变量选择
    ) e/ D& v/ \  Y* f
    ) @. w7 O) X# ?0 L/ j
    & R0 g, L% K2 N2 H
    ##AIC准则下的变量选择
    8 ?$ r. }: x  c# x0 x! xlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    : u$ w) B: c/ h2 b9 P- tsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节: M- Y9 B! D; s0 w' i: p
    ##BIC准则下的变量选择. q/ k1 b3 o! J$ `: I) x
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic6 l. p0 F! L; p- J
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ( K; m: |/ z0 `2 E( E5 i* w
    ) A/ y2 P0 ]" c8 X* k1 m. ^
    1 i5 O6 p: D! o8 Z. N2 [
    #选用AIC准则下的模型进行回归诊断+ h3 E3 U: X, }) @
    windows()
    . l( Y9 m( G! hpar(mfrow=c(2,2))
    3 ~  {( i  U) u, w: v; T2 lplot(lm4.aic,which=c(1:4))  5 j: u+ b0 U/ n6 R7 ?

    3 [: |6 `& a3 r" s/ l0 j! q

    * d: M6 T3 ^& [/ B" w
    + S) `$ t- l" W! S1 A+ d5 H, \
    ; ^/ r( a! L  ~9 ^
    ##数据变换. j# V7 f! n& U: K$ R7 T' X

    - j$ x; v. F% ?3 o( ], T7 [8 a

    & X# Z; J" j7 y5 c- h$ b#box-cox变换
    ' J. B7 W, k4 N& ]  i# l$ ^library(MASS)
    7 ?" m' X( F0 I9 Jb=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))
    % g1 h5 K  P. |) Q! T3 `5 W1 sI=which(b$y==max(b$y))  #定位似然函数最大的位置
    * F3 A( f3 ]9 V7 ?lambda = b$x[I] #精确的λ值- ~) g+ _, |$ m: c* L4 A5 b* F
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    ' [* j4 D) }5 F& T/ l/ g! ?logprice <- log(price)
    0 g& C/ I0 x) m" W" Yhist(logprice)4 Q" S  o$ h3 _4 M3 `7 g

    * O8 L7 E9 z+ v1 n

    ; P. W+ a+ V. q" b##最终模型与诊断" c, g; W7 S, d# q

    & {% X: m; w% @  f; m2 J

    - j' k& o- T+ {9 c3 {# I4 v- W5 mlm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio), B8 X) u7 F8 S5 h! H3 Z; D5 {
    windows()
    1 q# R/ u, U! R. Y3 \- n6 I8 Spar(mfrow=c(2,2))6 f+ d; f4 n/ i: y$ S
    plot(lm6,which=c(1:4))7 e$ ]6 a0 e! u) r/ J9 ]
    anova(lm6)9 o3 `& P# i% E8 N
    summary(lm6)6 Z1 Z% G2 _* }, d- R1 V( r
    ) U. h+ q. p" G+ m7 ~' u) O2 C

    / l+ l; ~' T6 z9 ?请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    1 ]6 `9 a8 O/ Y( X0 y" j
    : ?9 o# a4 t8 X1 S4 e
    6 S: t& t* r2 i) G
    4 N, P! i+ d) [
    % `& F! {# d2 c  ]8 O
    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的分析没有
    7 Z  H9 S- A4 n5 y) a1 C
    4 p8 y) X0 a3 x8 f1 o

    点评

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

    太好了,又认真的看了一次,发现自已差太多了% l  Y$ b; q& G/ q7 P, O

    ( q. S+ M& M8 G

    点评

    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
      d7 p! l, e9 B3 I7 t太好了,又认真的看了一次,发现自已差太多了
    * |+ g( O6 n- C
    我每天会发一些好资源的0 Z8 R" n; a* Z% s) y
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    6 ]. R2 A7 l4 j0 T7 K一定会认真的看看,发现这是R的,有python的分析没有
    & x' {9 H! R5 Z- B7 k4 a, w
    有啊. ?! _8 v6 V: F; u
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 09:24 , Processed in 0.547007 second(s), 78 queries .

    回顶部