QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ) |5 S- o' ^3 y+ G! `这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ; Q+ p0 o, _/ B6 `8 ]7 [
    行描述性统计分析,各连续型变量之间的相关关系如下:
    & O5 W8 J" ]: E! h' K/ [8 t- U; S

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

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

    + L( W/ Y1 m; ]2 `; _4 G
    ( a+ d! R( v6 R
    $ z+ D+ ^- Y! X; |4 G+ L
    最终模型残差图:7 C& I) w2 Z0 w4 ^3 P

    5 F; x" \% X. {9 l
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    6 J  [+ t2 y: A4 O1 P) S属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    5 F# s- `1 P8 c3 x( D属性变量的具体影响在此处分析略去。+ O- p3 u" t7 q$ B. G  p" L- a3 C7 X$ H
    连续型变量的影响主要为:6 q' f8 n/ U. j: n* Y
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;5 B% ^8 v* {8 L, @3 L
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    9 @5 t- f  L9 ]: _( S同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    * K4 ~4 [( x1 j. a+ W; u2 Y- i# \ 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    # n# M6 e$ m6 ?( Z+ N* S. m: I 容积率与环线之间存在着交互效应。
    % f- s- a, q. s; P& h+ qrm(list=ls())                                                                                #清空当前工作空间" ]4 ^/ G5 z$ \- ?
    setwd("D:/回归分析")
    : ~  f2 d4 O9 |0 C# `1 Da=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    " B  h3 k, E5 U  B6 h9 \1 ?3 LView(a)
    ( r$ v0 Y  J% \, Q, G0 X* Y- {attach(a)3 M/ [) }) M" d7 w3 y3 W
    names(a)
    & Z8 U. ^# O3 k9 M6 A8 ?# A+ a# _8 i8 @) W$ k) O4 W9 b' ]# C' v
    ' E& C% A& D$ r9 K; M, S5 j+ m
    ##描述性统计9 A) w5 T3 P* [- U

    2 @& G. B& g  X0 L7 U3 ~: F0 h- [5 V
    - T# Z5 A( W: E9 f
    #未做处理的响应变量分布情况
    7 G2 ?; W% O9 e, p# Npar(mfrow=c(1,1))# Y2 ?) ?( i0 g
    hist(price)
    3 d( b3 g4 `+ o: B" }, ~summary(price)        #查看响应变量的描述统计量- f/ W& E! u8 y. Y0 W3 `
    #连续型变量描述性统计
    - v! c/ j' z. W3 B) b6 a% a  uwindows()
    ; o% Y) ~0 O# x$ _, k9 u2 Vpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    - `$ G0 D5 v8 ], \. ^par(mfrow=c(2,2))        1 c2 B! d5 ?! j: l6 ~# j
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图4 `0 @7 c, {7 d8 R
    plot(lv,price)
    3 r' e. _, g# L7 Yplot(area,price)) N7 i) f. U. C1 q+ `( ]
    plot(ratio,price)/ m0 q4 ^$ d) J2 \( e
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    5 q# z/ t3 d3 o7 Q" ?8 Ncor(a[,c(6:10)])      #查看连续型变量的相关系数
    & r" ~  Q" c, I! ^- p3 x#属性变量描述性统计
    7 L3 D2 Q) c  ~$ Pwindows()
    3 W" o% p2 Q1 d1 y2 D6 D* cpar(mfrow=c(2,3))                       
    : f, [# ?( f& [! u, Yboxplot(price~dis)          #每个属性变量关于响应变量的箱型图9 N' W& `7 E5 p( d( R
    boxplot(price~wuye)                                                                        - N9 |2 s9 A  K* ^: {
    boxplot(price~fitment)       
    " \$ }& E) H1 y2 ?) r9 Q' [8 ^boxplot(price~ring)        1 ~& A" d7 b  X; P
    boxplot(price~contype)$ H! Z* k' i- B! l
    6 L$ w/ u/ g7 e( d6 p- g
    ' b: i5 n  }& P! O, X/ D/ i
    ) H2 T% G) M1 d& b( Q+ h
    ) t# M0 ?# P: ?4 y' j9 A
    ##模型建立' v6 ]# ?5 p# l

    $ p* Z( g  n- L$ a8 j; u9 d
    8 A- C: T- m1 p1 y" b% ?4 X
    #在方差分析模型基础上加入连续型变量5 N, c* C: E  Q! @9 o- F! D
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    " U$ g) I3 r- T+ A  e  Z# F* {anova(lm1)                #方差分析0 v# v- k% i4 F
    summary(lm1)              #模型参数估计等详细结果2 `7 h9 N& ]4 K$ B4 N! s
    windows()
    ! I% X; Q& \, X7 U& @. Y* apar(mfrow=c(2,2))
    : u/ p, h# R7 f: b5 d7 Jplot(lm1,which=c(1:4))    #回归诊断做残差图
    $ Q# J( l* s) N
    * D6 [8 r9 q5 e" t, _. F$ |7 B" W

    & |8 Z' C* z2 i' d
    0 J, M1 [$ A# h% [
    6 V7 P( D+ h$ r+ a) T/ \# a
    ##变量处理
    & ]2 H9 @$ s$ s# T* Y- U: u7 E/ o0 }
    ' x2 `, x9 r) }4 J  Z
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    - h' r% w1 \/ n8 w##对容积率的处理
    . n- c# r! j* @$ u8 K+ u$ cwindows()
    0 Z* c' j. J$ x8 S! w2 A) {  Fn = 4) \% N  E2 e4 O: t, j6 C, }
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    * a1 r$ n$ P/ }% p: T( N  V, N, F  U4 ztable(ceiling(rong/n))                                                #容积率各分组下的样本数! j  m" Y, ~8 M/ t
    ronggrp=1*(rong>n)                #进行二分类
    - Z0 h) Q' J$ @. d5 ~#ronggrp=ceiling(rong/n)       
    9 j) K/ v; Q" B, [  Y- X! Qtable(ceiling(ronggrp))           #容积率二分类下的样本数& o! y) C8 p- n6 X
    windows()5 m& [2 u' j' a& P2 e5 ]( I5 {
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
      g( Z& z, g5 c0 p6 {$ {. r+ ewindows()
    ' z4 L6 C$ M8 A9 B; mpar(mfrow=c(1,2))
    & z0 g+ t: Q% Z, A, ^boxplot(rong~ring)                #容积率与环线箱型图4 c: o4 c% j* w+ H0 F
    boxplot(price~ring)               #房价与环线箱型图 ; I. D1 H) l5 H* i/ D
    #加入容积率分组和容积率分组*所在环线交互因子的模型' N2 N0 F% b7 Q
    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)  ^+ `- ?$ B& W2 w  ~+ d
    anova(lm2)                #方差分析# j2 z5 D) |3 a1 v/ h+ V. _
    summary(lm2)              #模型参数估计等详细结果
    5 r5 N% m9 d" {windows()9 r" o) b$ J- Y2 D
    par(mfrow=c(2,2))
    6 r( Z0 c6 E/ N# jplot(lm1,which=c(1:4))    #回归诊断
    9 o$ i% y9 k2 Y3 F0 O0 O# M4 D; F1 P
    7 E- X# J5 l. B
    ##对小区面积的处理( u2 V7 G" T/ G/ O' c
    summary(area)0 u9 s+ \  O( M9 U) `6 \/ `  g' _
    plot(area,price)" F! v) u* @7 o! S) t. C
    windows()$ D; a8 {: }2 c- h7 i9 E
    n = 150000
    & u6 r) o1 e0 v" k% f! Fboxplot(price~ceiling(area/n))                                                       
      ~. ^" P7 `& ntable(ceiling(area/n))                                                               
    & |' @: n# X9 Z8 Eareagrp=1*(area>n), H! M9 W; p5 a
    table(ceiling(areagrp))
    + C& ?; |' d8 `( Xboxplot(price~ceiling(areagrp))+ ?$ ~. u$ M! m) w
    #加入小区面积分组的模型+ J! f) b1 B$ ^$ ]; M: x" H( g
    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)% [4 D( ]3 A' D- G' i2 [% a
    anova(lm3)                #方差分析
    ; {! z) _6 w$ L% t1 ]: e, msummary(lm3)              #模型参数估计等详细结果
    7 J5 O4 b% y% c2 V: J7 _: lwindows()
    6 ~- @: |( f( Tpar(mfrow=c(2,2))- r9 Z$ F, X4 ]* E; W4 n* r7 A( _
    plot(lm3,which=c(1:4))    #回归诊断
    1 b& b9 R0 Y% ^( Q1 f0 G
    2 K# N8 d: R' p4 i" G1 g

    . z( M& H+ i& p6 F/ `  f##变量选择" r, M% Z' b8 p1 d7 x; z8 e+ [
    - G8 g/ W3 q8 I  x
    + o; d9 Z5 n# Z, q( D2 b# x7 B
    ##AIC准则下的变量选择( N( ^' S1 a' ~) u: O
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic1 R) I/ p: D) I
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    ) x: o. X) s3 X; U& b% k6 n# C##BIC准则下的变量选择6 d2 d: I0 y$ {8 X2 A, N( \
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic, b6 m5 |( B/ C# F" N2 w
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    9 g& N& y% c6 M$ t: H) R0 E
    5 Y: @6 l5 R+ T' s- l: x

    , a. Y( u4 [4 {, h- }% m4 N#选用AIC准则下的模型进行回归诊断) W/ V' o2 J$ M# o  f
    windows()* y0 f" P5 ]$ D+ ]' q3 |+ o
    par(mfrow=c(2,2))
    - j4 o" G7 E" ~plot(lm4.aic,which=c(1:4))  ) X$ k5 F# h  b+ L( G' `
    ) y! v1 j6 R8 @6 v5 O: q( P

    , a) `/ K- {. v/ h& ?  b# N
    + D; @8 W/ S8 j# q/ D9 G% K

    ; ]( Z! w- z$ W2 I% R3 C##数据变换
    4 O& I& K. c! F( k: g5 r' i  d! a% ~% _
    / W: S) p. ~; L! G. N! W$ o& P

    8 B8 J. d/ E. }% P: x# {; w# ~#box-cox变换
    . \/ \- O5 y( rlibrary(MASS), {# g* }7 s) D$ \) u/ u
    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))* S( L$ a3 y& O9 m+ T
    I=which(b$y==max(b$y))  #定位似然函数最大的位置- A( \4 @9 e3 ?, B. N! f" ?
    lambda = b$x[I] #精确的λ值
    2 C9 W7 A) S- I$ N+ f' n! D- H#λ接近于0,为模型简洁性,可以直接进行对数变换7 e5 A, [+ l4 A' J
    logprice <- log(price)  a" a* U) h7 o
    hist(logprice)4 I6 T/ `3 z' c8 j( ^8 @
    ( p# n  ?& M; D3 @6 X, G7 l; t" o5 U
    $ e$ h" Y  J& M2 p
    ##最终模型与诊断  W5 q) Y6 ]/ B! t& Q: r" @7 ?
    % f! `8 R6 D2 B) [6 L
    ( C" I& [  `! T0 ^$ l+ N
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio). p0 `% M4 ~  a4 `" {3 P9 u
    windows(). A( B+ U# t/ E, K& X5 t1 ~5 A
    par(mfrow=c(2,2))" }& g6 c: [* ^! H: }. G
    plot(lm6,which=c(1:4))9 p7 m" u8 [& S% f( H
    anova(lm6)
    % B# j- M: O: p. ?# A& G6 lsummary(lm6)
    2 k' S: a7 n* `! s7 n( ?: P0 E. |5 \. }2 L2 {6 U$ i5 l

    ; T  i% ^: }: ~请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    . N+ [" [* b8 |4 s7 B2 V" n
    $ C4 S" F' N4 F: H7 G% I9 u
    , v4 w3 {" x1 }- A
    / S1 Z: q$ ?" J7 ?/ G
    5 [( i# p. E( v# Y8 E. o
    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的分析没有
    , R- d6 L; e$ S8 V5 ?7 u& j
    6 {  r) M2 D/ N: D( U7 S

    点评

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

    太好了,又认真的看了一次,发现自已差太多了
    : t' j2 ^4 `! ?8 J" b- k
    2 ]7 J3 H/ H) Q( P5 L5 k4 U. w

    点评

    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 & P. e6 k9 ~' Q/ h& c0 l
    太好了,又认真的看了一次,发现自已差太多了

    9 s. k# X0 W* \. i5 }& }我每天会发一些好资源的) w7 @- l8 h$ `" G" V) x$ _5 n& l( L! r
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 2 M5 Y7 x: O7 C  e) i# U
    一定会认真的看看,发现这是R的,有python的分析没有
    " }$ p1 a8 I% G. x
    有啊
    - b/ z$ b# r0 F( j
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-19 23:24 , Processed in 0.606028 second(s), 78 queries .

    回顶部