QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ) t- g8 }. W: O! q) m4 F+ l3 f. {这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    5 T" J" O! j8 H: y( A1 u0 @
    行描述性统计分析,各连续型变量之间的相关关系如下:; M& I' p' M) n9 V$ J( i2 \* x
    1 v9 M6 O6 n: h5 F+ O. @, A+ @! h# H

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

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


    8 g  O1 j) w6 x4 C- S* X0 C1 ~" v  D6 [1 d& D5 l$ p' H9 E
    0 R% @9 }) F$ V9 o/ G; H( S! g  c$ y
    最终模型残差图:2 t. ?" G% Q) B! n

    - v2 v5 x5 r8 i/ {6 M+ q% _+ s
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:
    # J$ R  ^, [) {5 G7 I属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    3 J. O2 _6 }6 S! e7 X' w6 @4 d- S5 p% k属性变量的具体影响在此处分析略去。
    6 f5 B, ?" ^% t7 \3 T7 L; J连续型变量的影响主要为:
    8 B! N5 }7 S; b/ H( a 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;2 q* u# `0 }  p% [) ~
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    ) o1 b/ M3 V$ k; d6 X5 ], ]/ ?同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    9 p2 j# B3 w4 R6 I. t5 B' _ 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    ! Y: t! m5 M  F) j4 Z' i 容积率与环线之间存在着交互效应。
    ' ^+ Z: |5 ~; P& m$ x; b% Hrm(list=ls())                                                                                #清空当前工作空间: `2 V/ o( O+ _6 b( ?: |. S0 G
    setwd("D:/回归分析")3 V6 J7 x) F; `; A! W6 }7 D- [" G
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a* C8 r9 `, W/ j0 M; V
    View(a)
    ' d+ L' T( V. battach(a)1 Y1 K8 E3 w: h
    names(a)5 z9 G8 z0 n! {# B6 e# A3 _
    & K, P- d) O' Q8 X

    9 z( X% J0 R# B4 M& f##描述性统计
    & I. @( |& m" y& w0 ]/ H( s! y
    . V! E* x  e; o5 L! f7 n

    # T8 l" K6 S! y; y9 l' W* j2 s#未做处理的响应变量分布情况
    # ^9 ~' w% U6 M- ?par(mfrow=c(1,1))
    : e1 b5 a" D- [hist(price)) [) f4 }9 w( ^" k
    summary(price)        #查看响应变量的描述统计量1 _  `4 c, Y9 p) {
    #连续型变量描述性统计0 P3 g; K6 I" _; m
    windows()
    9 _2 k8 D5 |, A4 Ppairs(a[,c(6:10)])    #所有连续型变量间的散点图
      M0 g. z: Q: k6 e/ epar(mfrow=c(2,2))        / @2 `( }0 {5 ^5 ?7 g. {- x
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图
    $ r' H4 R. A7 Y! }) a' o2 r9 Qplot(lv,price)/ J  e5 U; X; }
    plot(area,price)6 z8 J% x. }# [6 E! T9 d3 `
    plot(ratio,price)
    2 n+ g8 p8 l0 O3 ~1 Wsummary(a[,c(6:10)])  #查看连续型变量的描述统计量
    ; t; E( c% L7 q- Pcor(a[,c(6:10)])      #查看连续型变量的相关系数; x# {. S- ?4 q  D7 |, m) J6 K
    #属性变量描述性统计
    # B; O- f1 ^8 N6 j. w3 G7 Nwindows()) W8 C4 V7 J) W! |
    par(mfrow=c(2,3))                       
    & f$ U5 X0 h6 g% W1 q0 o& S0 u( y" Zboxplot(price~dis)          #每个属性变量关于响应变量的箱型图- X; y) t! z6 y! G: h+ W0 w* C
    boxplot(price~wuye)                                                                       
    9 a6 x: }/ M# }boxplot(price~fitment)          W& ]! T" l) i5 ]- V. x! q6 R
    boxplot(price~ring)        $ ?; e5 U7 f3 A
    boxplot(price~contype)' p$ g  K6 O) v7 h' w+ I

    7 x/ x$ O' t. r: o+ t

    % R- p$ J8 T# E$ Z# V0 P1 b3 [7 m' s. _$ [7 F6 w' e

    6 x+ B$ V7 W0 j##模型建立
    4 O8 x$ p) D# O+ a% Y# M
    0 ]( H9 k( x9 X& m" `7 B8 [& O) h# p

    * [6 y' d, l. x6 r* w$ g' D8 i  _#在方差分析模型基础上加入连续型变量
    8 u2 U0 j/ c( klm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)0 b8 F' C! C# k5 |) ]! N
    anova(lm1)                #方差分析
    ( j6 v1 D; `& ksummary(lm1)              #模型参数估计等详细结果
    3 [! d( R+ S9 Cwindows()
    : A4 Y  i; x: u& G! ~/ i* ppar(mfrow=c(2,2))5 D& u4 p( W/ t9 e' ?
    plot(lm1,which=c(1:4))    #回归诊断做残差图4 Y  H( [. q- y! A5 R$ `

      v; Y, n5 h! ]( z

    ) W* n; }( l4 z( P( g5 ~& S6 }9 G% ]" i& m- M7 o

    & v8 H+ Y' ]4 O* }( Z& x& S##变量处理' A) U& T  J2 k! l

    ! A. m  G7 E5 E" X% U7 v2 o' E
    8 ]- o+ ^: o6 C( f* }4 A
    ###对不显著的变量采用分组的方式希望能达到显著的效果
    . q; o3 t/ g! H: x2 i+ S##对容积率的处理
    8 y& M+ m/ M; V8 |" A& t3 iwindows()6 D6 o$ O: U9 n1 J  w
    n = 4
    3 s( ?# Y- U4 Dboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        3 t- C4 j; s/ C# o
    table(ceiling(rong/n))                                                #容积率各分组下的样本数
    $ l3 i/ b/ ?2 X4 N& @ronggrp=1*(rong>n)                #进行二分类/ B& Q& t& \% D+ m% n3 O
    #ronggrp=ceiling(rong/n)        7 p: d7 n1 Q1 h6 I9 ]# Z
    table(ceiling(ronggrp))           #容积率二分类下的样本数3 ~3 R7 H' ]# c. \5 W2 s" s
    windows()/ \% g! ?2 F+ S) G9 G5 n6 ?! K! I9 d$ C0 h
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图
    3 b7 C$ O9 c; e) |, _3 p, Mwindows()
    ( Z0 y  T, i" O2 m5 P1 t* apar(mfrow=c(1,2))/ O; E, V( L7 T+ n- `' P
    boxplot(rong~ring)                #容积率与环线箱型图( E/ J9 ^! J9 Z; H) i' W5 U' F
    boxplot(price~ring)               #房价与环线箱型图
    " U; A( \" l, r, h) [% h#加入容积率分组和容积率分组*所在环线交互因子的模型& V6 ?9 Q" `" s  X. k( Y
    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)! q) M' ^  T% T/ y2 a; F, w
    anova(lm2)                #方差分析5 O% L- }* @  Y' @4 t  L
    summary(lm2)              #模型参数估计等详细结果
    - X; T2 S/ L6 ywindows()( k6 E: A; P3 i0 N: x' A
    par(mfrow=c(2,2))" ]: t, W  v3 F9 ^" m7 C" D
    plot(lm1,which=c(1:4))    #回归诊断& D5 L; c5 w' q( n0 N; f& `5 o

    $ M- e+ h* m6 Y2 ]( V! Z
    . l1 n9 W/ R' w/ B$ S1 ?0 s& e9 d
    ##对小区面积的处理
    9 z& N; j: b( w2 Y+ D/ ~summary(area)/ J1 v: y; b, X& }2 n3 a# K: A! {
    plot(area,price)
    7 s; W7 W0 R6 f0 U' s, E1 hwindows()- I7 @: k# b. X; z/ O2 {
    n = 150000# v4 s+ T, ]! F2 `+ ~5 m0 a1 K0 Q
    boxplot(price~ceiling(area/n))                                                        3 s' A0 o; S% y1 G
    table(ceiling(area/n))                                                                ; t# Y3 y5 N6 y1 c2 w) o' F
    areagrp=1*(area>n)8 V' ?2 Q3 q, ]
    table(ceiling(areagrp))
    6 M! S9 @  X3 U) G" [boxplot(price~ceiling(areagrp))' x  q$ p* x  q% Z- c3 C1 K4 P
    #加入小区面积分组的模型3 w  B( ]( i' 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)
    ) t! j/ b1 e* H' I: a6 yanova(lm3)                #方差分析
    7 z5 ?. S! {" o" Y% Z: ~. lsummary(lm3)              #模型参数估计等详细结果
    : I; t+ ~) d1 k8 Lwindows()
    5 R; b) n  a7 H! {' t  ]par(mfrow=c(2,2))
    / c+ S9 t' {: v. |8 v3 a) gplot(lm3,which=c(1:4))    #回归诊断
    ; ^6 B: W5 b; X) U8 P% E+ [+ J/ b: s+ H% I' @$ d

    % M5 k2 v& ~" T" H& h##变量选择
    0 L1 E6 @- c7 h+ x0 i4 y4 D
    ; F  g0 v. X: h2 \$ I' m  u

    , `% ^: t, r' o9 T4 w& V##AIC准则下的变量选择
    $ i, a0 r9 o1 t* klm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic( ~$ M& T& Q+ p7 ?. y
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    $ ~* P/ Z" M# `) k1 C) g##BIC准则下的变量选择3 h! D8 F; a0 c
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic+ d! }3 m& X. U; H
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    . D) `/ c" W" s
    . R+ {9 N* B8 d5 Q

    , E4 h3 w" x3 I. @$ p( Y, ~4 ~  z#选用AIC准则下的模型进行回归诊断& n& |3 U1 P! |  q
    windows()- C5 |2 ~# h% `6 H+ |
    par(mfrow=c(2,2))
    ' m0 `4 X) t; V, @& yplot(lm4.aic,which=c(1:4))  ' w! e+ N, m7 |- T

    0 H; \+ @. K0 ?& C; N6 I
    / B' `; B" ~' W, u4 e' t; I

    . N) x9 C: n$ t4 v6 O

    ( c5 _" t8 V4 `- o##数据变换* l. P  \# @2 T0 t: n7 W

    9 X/ f  p6 n8 x1 ?

    " \1 `) n1 Z# S3 Y: N! ^#box-cox变换
    % x5 X% t$ F) p7 z$ F3 zlibrary(MASS)+ `0 _) e. L# d8 A4 h( j
    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))1 u. ]1 f8 |0 X& r4 u  M# Y( P5 g' y; u
    I=which(b$y==max(b$y))  #定位似然函数最大的位置. g7 m/ G6 @5 `, g% M
    lambda = b$x[I] #精确的λ值
    3 T2 J+ ~4 ~" O4 y3 C# D+ h9 h2 Z#λ接近于0,为模型简洁性,可以直接进行对数变换, \- K: \8 _6 k8 k4 ]# c
    logprice <- log(price)
    ) s1 p! p* [- b' Whist(logprice)
    , m2 Q* a% @$ U/ r) B
      S. C7 ?* s+ Z) C

    " n# i" ~, t2 u( L4 C  n##最终模型与诊断' Q2 ?; h5 j7 O) g$ K; X
    & W$ N& s6 [! F  W/ n" m0 W7 [
    0 w* q8 f- d1 C/ K; W& o. t8 m
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    3 o( q7 _: ?, _, Wwindows()* o2 K6 i5 V7 Y2 ^$ i' _0 D5 r! G
    par(mfrow=c(2,2))
    . Z* v  }; L( S. i! Q1 fplot(lm6,which=c(1:4))
    % Q- B3 {$ l6 S' v) [- j  ganova(lm6)
    ( X4 r8 H% ~" e7 _% g6 asummary(lm6)% q* |8 C- i& `# V
    3 k6 O5 C' {; S* u) E

    + L9 ]  s8 P$ r7 x请关注数学中国网微博和数学中国公众号,联系QQ 3243710560+ C7 u! p6 R/ A
    # G, [( ?6 Z$ Z  R% b3 V3 V

    % E: C: D7 B7 r' x( ~
    9 z( k1 i6 l& o! d. b6 d7 I7 J' I5 |) ~) t
    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的分析没有
    : M5 K- J+ I# p; l- ]: F7 |
    ' A6 w7 {1 x8 `( ^

    点评

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

    太好了,又认真的看了一次,发现自已差太多了% w) A9 R& A. E: D- k

    / p& d* j' B- h# q2 b

    点评

    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
    ! h, G1 R7 u9 P/ e太好了,又认真的看了一次,发现自已差太多了
    # Y4 |6 g' g9 T& r) J& G
    我每天会发一些好资源的7 k0 G2 @& w( _8 V
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 1 g6 s) r5 Z6 }( F( \  P( W
    一定会认真的看看,发现这是R的,有python的分析没有

    # c( N. d0 |# r. p( c' H+ ^有啊
    & _* R* y( x: N& B8 \
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-5-31 03:24 , Processed in 0.516463 second(s), 78 queries .

    回顶部