QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。( a! ~( f- Q1 C6 l! k1 v
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    2 z5 ?. ^/ t; z9 E& q* A0 d' v
    行描述性统计分析,各连续型变量之间的相关关系如下:
      K2 M- _9 P8 u; i4 x' o. |  ^8 J# m9 _4 E# k$ c: G! ^

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

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

    . K9 ~# L! b* b" B, Y
    + h7 @8 n9 u3 l  r: |* c6 [( \
    2 k! Y( \% k) i1 `5 T5 d
    最终模型残差图:
    * w' r6 p/ ?1 a$ _4 ]0 q" Z) [% n9 V& j6 V3 z" c8 X6 e' \$ e
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:7 Z! K3 B! A! q; X1 t
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比2 C) X* {( q: {, v- W7 B& ]9 p
    属性变量的具体影响在此处分析略去。
    * s: ]- l9 O' R8 ~1 \3 y; U0 m连续型变量的影响主要为:
    - M6 |0 T1 u* x1 \2 I/ q 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;3 K: D  T  Y6 r+ e( L3 ^1 x/ H5 n2 J
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    - [& j/ t3 r/ }% P5 g( ~/ \5 z同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    0 e  w8 ~/ i: |0 g: r 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    2 F/ d0 ]! h4 S( g% Q  H 容积率与环线之间存在着交互效应。0 K$ A6 p6 K) T, k
    rm(list=ls())                                                                                #清空当前工作空间8 Y. f1 c0 ?7 _  }# [# M
    setwd("D:/回归分析")
    - Z+ E1 R4 X  i' c; va=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a% n. g' Q2 i2 w, l/ D9 ^
    View(a)  V! K& |* g5 {; Y
    attach(a)! ]: i* r) x0 O8 @* H
    names(a)+ ^+ o* d9 A# M" o4 F
      g, o  n- A9 F6 V8 [

    " m  \3 Y7 m, Z9 o6 k: p6 d" ~##描述性统计3 F* G# N8 e% x2 x' [4 S
    ; L: J3 g: k: D$ q1 N. b
    8 @8 [! |+ C  q+ H+ M: L; P
    #未做处理的响应变量分布情况
    & d3 P" V& P8 r6 r3 u# {par(mfrow=c(1,1))( H7 Y- U% u) u* v" p' F
    hist(price)
    8 U6 B9 }& \, _# F# t+ n( s& asummary(price)        #查看响应变量的描述统计量
    / g. T: M) w9 m- [1 L) D#连续型变量描述性统计
    & g; u6 S9 l. z% ~  \windows()
    ) @1 \; B! I7 i  H8 [- rpairs(a[,c(6:10)])    #所有连续型变量间的散点图
    ; }* _' s) [% c0 a) Ppar(mfrow=c(2,2))        ( n1 P$ K  @4 J8 Z
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    # D7 @0 g  l8 \, o5 P1 jplot(lv,price)0 R# l$ L4 ~/ N
    plot(area,price)
    6 a9 B/ {4 B& R$ P) `  Mplot(ratio,price)0 c# g/ d& ]9 O/ u5 H6 I+ @- i
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量" ]+ u/ `9 W1 ^9 c5 p+ `2 o" P6 h
    cor(a[,c(6:10)])      #查看连续型变量的相关系数: j8 l# ^' i8 _: Y
    #属性变量描述性统计- d; c/ T7 l1 c4 }1 J! M$ H
    windows()* g9 B! W4 l. [, K$ Z) ^( Z
    par(mfrow=c(2,3))                       
    % k8 g$ O, O* zboxplot(price~dis)          #每个属性变量关于响应变量的箱型图
    0 f& i# P+ \2 u4 b8 p, zboxplot(price~wuye)                                                                        . i1 }) V" q/ M# O) R  p
    boxplot(price~fitment)       
    9 ^# z! h, P; J& Kboxplot(price~ring)       
    ; c5 v6 O& g% R$ uboxplot(price~contype)& X3 @. D- C, F0 N2 U1 w

    2 R6 A+ t* l7 D! g0 s0 J
    ' m* o5 r- Z1 H1 F5 w( L

    3 s" U7 q+ V. S9 v, T7 C2 X
    0 t6 h) X5 n% [, n8 r
    ##模型建立
    0 P) `9 p0 z' |0 p% k! ]+ \6 [, o3 F  C* H" l7 h  q9 h4 Z9 L' C+ `
    + C; w/ V% Z6 I
    #在方差分析模型基础上加入连续型变量6 I  H7 }; Y/ u8 G3 N$ p7 I
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)" [* y# g2 Q) i4 r3 O8 ]& L# F
    anova(lm1)                #方差分析
    " @0 y% E  z) Ysummary(lm1)              #模型参数估计等详细结果) `8 B; C2 d! ^" i
    windows()
    # v) I, P1 r3 ?) ^. t5 @* A* `par(mfrow=c(2,2))7 z6 O  ^' v5 d1 }. F! ?
    plot(lm1,which=c(1:4))    #回归诊断做残差图
    - n! R  n/ \- f  P5 q
    - S; M  l+ B: P" U

    0 ^1 {, ?# X4 a! I; {4 j
    / N. p( k# u7 m$ ~5 |2 n) z

    . L2 L) I) g) @# N- N# D- s1 d. G4 b##变量处理
    & K* z: B' [7 G+ X* ]$ `8 C
    , Y2 l0 [/ n! i2 ^0 b

    1 Q* O) h& `$ K$ P  o2 z/ ?3 }. Y###对不显著的变量采用分组的方式希望能达到显著的效果
    2 ^, u. \7 w4 U. |+ z0 Q) K* v. s##对容积率的处理
    0 v1 g: x6 J& ^- }4 F0 nwindows()
    ! L1 {- s) Q0 @. Z8 N" a- r! _n = 4
    : u1 Q, M: b4 C' G! h2 bboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        9 B- L' G' g4 q) W! _6 m! l
    table(ceiling(rong/n))                                                #容积率各分组下的样本数* M3 ]% w. o3 y) K( B, G
    ronggrp=1*(rong>n)                #进行二分类
    , i* V' r6 p9 V9 S4 f#ronggrp=ceiling(rong/n)       
    ; o$ k' N8 |3 @4 X& R+ h* otable(ceiling(ronggrp))           #容积率二分类下的样本数
    + @) j2 p: \: u( [4 Kwindows()
    , B, \+ f3 a6 C' {/ Zboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图5 w% V2 J# ^3 e; [' V
    windows(): v* }0 o' Z# s9 [7 d
    par(mfrow=c(1,2))
    $ k# {9 C$ D& O6 P% C3 D; n; n: Jboxplot(rong~ring)                #容积率与环线箱型图
      b: H* ?3 P9 n1 q# aboxplot(price~ring)               #房价与环线箱型图
    ( @, n( g: R+ F/ P#加入容积率分组和容积率分组*所在环线交互因子的模型8 Z3 z; I0 F9 K; N
    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)
    # c+ S$ S' _0 @7 M' O9 Yanova(lm2)                #方差分析% S' @- S, S: X2 w/ _2 }8 m& l
    summary(lm2)              #模型参数估计等详细结果/ y& O1 e& D& \: I& @& ~) l
    windows()
    ' \6 ]' d" q- |5 N) Y' ipar(mfrow=c(2,2))
    , `) T7 O# P* Dplot(lm1,which=c(1:4))    #回归诊断
    5 G( d  t: q( _0 T( T2 ~4 Q4 x: ^1 I; M6 }: v0 i) m0 `

    # e. {9 ^- i8 E+ w- B8 b##对小区面积的处理
    2 s5 ^, o8 N- M! d' w9 ysummary(area)
    4 \4 {4 z5 |  ^( a0 Q4 U: K0 I/ ?plot(area,price)
    $ N4 y+ e& d. q: `4 `+ w# ^windows()
    5 s3 M& j8 ^) Cn = 150000
    - V( m6 m+ e/ r5 ]3 k, l! r* O5 n5 hboxplot(price~ceiling(area/n))                                                        ( Q; N! z. e& Y& q1 H  i- Y3 s% |  v
    table(ceiling(area/n))                                                                9 T9 v9 c9 E5 i
    areagrp=1*(area>n)
    1 S7 p* E0 D' z( gtable(ceiling(areagrp))
    $ K5 k# T0 z) W( G, bboxplot(price~ceiling(areagrp))
    $ w, B0 N/ v- g4 v2 ?  x& S#加入小区面积分组的模型
    ! @( V8 N$ ]+ S& f8 Qlm3=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)
    ) ]3 y8 s# h% @1 ianova(lm3)                #方差分析
    7 L3 |% C; _! R! y1 y4 D, isummary(lm3)              #模型参数估计等详细结果
    2 [; `7 U% u- `- X* V. ~windows()# o2 W/ V' h: o; |2 A
    par(mfrow=c(2,2))
    ' }2 C1 c1 K" [. [plot(lm3,which=c(1:4))    #回归诊断2 O: P: m  [1 X" o$ S) g
    " e# J! P, _2 X/ s( W

    % p8 _4 p1 i  ]. z##变量选择
    / Q' F/ }; T" t5 b6 f% V% K$ j# I2 j8 _- f' [) N

    6 Q0 M2 a! L" T) m$ M3 u. g##AIC准则下的变量选择
    9 F5 d6 ?1 ?& U1 i' W" M: k$ ~lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    / c8 x% u: b5 zsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    $ ?, X6 p- E1 t; u##BIC准则下的变量选择
    8 ]( j  g5 n4 |# klm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic! F% Q5 N( l# j) @3 R9 i/ X0 J
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    8 C- E7 m0 t# ~5 ]' z( x  W
    9 E/ c! I* i) J1 f! c
    , V3 z# a$ g. V  l% D
    #选用AIC准则下的模型进行回归诊断) f& {( l+ r! Q2 i
    windows()8 B/ h1 e. Y4 C) V% a
    par(mfrow=c(2,2))7 w8 C8 l% g) ~6 ]$ ?1 z
    plot(lm4.aic,which=c(1:4))  
    & W5 _& C& L! {/ z9 f4 `/ i- U+ P& C$ F# ]/ ?3 G- }

    0 [! H' t# L0 g2 c
    & K' `5 L0 d  S0 M+ `7 k

    * Z* C0 @. S( H9 C% P##数据变换  L# ]: @- A4 Y2 t
    0 i: R7 t! [4 {

    " r+ Y8 f- P# {$ r) h. g#box-cox变换9 F. v& ?; H- Y# `' G
    library(MASS)
    + e: K+ t5 H; z$ gb=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)): l1 k. h/ v/ \
    I=which(b$y==max(b$y))  #定位似然函数最大的位置: X4 k' t8 B$ i/ V. |
    lambda = b$x[I] #精确的λ值* W& ?) N) G4 t3 M/ Z% V! C
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    * |5 B  B/ Y& j, X5 w; f5 N/ llogprice <- log(price)" O+ g9 n' _# c2 G4 A8 A
    hist(logprice)
    $ F' W7 P# z  S' B3 g6 i* L( s% `2 K
    : G, Q2 a/ v- _* _6 ]( ^% |1 v" X; u2 v
    ##最终模型与诊断
    & e( d! J, k5 [' E$ N
    1 w1 l3 o  J" n' }4 r+ w

    6 @6 v( h3 j$ ^( |8 V% M' Glm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    , W% l  g/ b2 v2 k- [$ K+ w# Twindows()
    0 ]( @2 u! j' s; o. q6 L# k* r0 rpar(mfrow=c(2,2))4 L( A2 r) B1 v. e, ~) g7 W
    plot(lm6,which=c(1:4))
    $ z: \  V* z& l5 M: u. sanova(lm6)
    5 e8 K: x% y4 a  g. Gsummary(lm6)
    + {# O% J6 l7 m4 E
    3 Z5 n8 C: i# l9 O. K
    ' u8 V2 ]: v  j; j& _- G请关注数学中国网微博和数学中国公众号,联系QQ 3243710560- T, b7 l+ }: `; o! |
    1 m1 \" f5 i8 }3 M% @* S# L3 z

    2 e) w: E* S& v
    ( Z' C+ X. X# |+ t& j% r/ ]: _) N' Z
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有
    1 R+ L9 z) B6 j, V! p' p. ?- c2 ?. f" `6 G

    点评

    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的每日心情
    无聊
    2025-7-1 19:24
  • 签到天数: 695 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    % |& R7 j8 q" d8 X. T# H$ {9 C/ A- Y, G- l; W$ b, L

    点评

    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 # S5 L" K* F, U8 f, Y, }% C
    太好了,又认真的看了一次,发现自已差太多了

    0 p2 r! V9 h6 p" M2 i. A  q我每天会发一些好资源的3 Y- |6 u) B' T; U
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    4 i0 ?8 M! a7 M一定会认真的看看,发现这是R的,有python的分析没有

    - J4 D0 e6 a  x' ^' @+ i& D/ V  F有啊
    , K! M2 a2 ~3 [9 z: G% {
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-22 07:36 , Processed in 0.668056 second(s), 79 queries .

    回顶部