QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
    ( @( O; V* [4 \; k+ A- {- ~. L这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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


    0 Z1 O; K% Q6 P" C3 Y; F6 O行描述性统计分析,各连续型变量之间的相关关系如下:# o! O2 w$ U2 y; R
    , J+ D* @6 U( L7 E3 i4 y, V" v9 M" r

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

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

    % U8 E- R8 ^& d* [

    ( f( q; A) i: B; `) B% B  I$ c# Q' B, ]4 u% q0 |' l
    最终模型残差图:
    8 q) @8 v) U$ _% m2 q( u) D5 N! e& q5 S8 A
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:; {, y8 S% z" h+ E2 [
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    4 D; a1 _5 r; a4 Z' U属性变量的具体影响在此处分析略去。/ r5 _0 g; ^" w2 O$ x7 Q- s
    连续型变量的影响主要为:% l  e. a  m' U: V5 o& z
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;; c1 ~! m/ ?/ H4 I8 W3 C. {, T1 _
     停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    & N6 K$ L" p9 L8 L( m同时,原本为连续型变量的容积率经过离散化变为属性变量后:3 o4 o' i1 a/ p7 d4 u" _: t6 @* ~
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    - c1 U) ~; M" ~* f5 j 容积率与环线之间存在着交互效应。
    $ x- ^2 [- F, Z* R/ Krm(list=ls())                                                                                #清空当前工作空间
    $ L( _5 f8 B: {4 ~# Msetwd("D:/回归分析")  ^$ D- E. ?; n: P3 a6 @
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a
    7 o1 }& z' ]+ J+ S( bView(a)
    5 J, R/ a8 W1 s: A( q: S; F8 `attach(a)* x. {  V6 A" [% R9 ~
    names(a), s1 S0 S9 {) }" r5 ]# \  e5 O

      z3 J, b0 X/ S" M* Y/ k3 u$ J4 M
    3 K3 w! B# V; f0 s4 q2 x$ P- E
    ##描述性统计
    + @+ T8 M0 k( X! |8 x  z! i3 r4 G/ U2 {

    & r  d& `. `7 G/ N#未做处理的响应变量分布情况
    & L% E! u/ c* B/ A) A  [* ppar(mfrow=c(1,1))
    : ~  k6 h2 K/ k( Zhist(price)
    7 e8 f" d) K8 i' Q6 @, F/ Rsummary(price)        #查看响应变量的描述统计量
    , Y7 W' l2 I3 u! V- Y#连续型变量描述性统计
    3 b- u0 C; U& x# b6 x% vwindows()
      [4 p! a" ?* }% |3 Epairs(a[,c(6:10)])    #所有连续型变量间的散点图
      A: Q  W3 k8 g. ~par(mfrow=c(2,2))       
    9 L8 m* K+ q5 X# Aplot(rong,price)      #每个连续型因变量与响应变量间的散点图
    # n+ v1 w% A" y" E& V- c  uplot(lv,price)
    : m. Y( w7 {& A4 k7 z- kplot(area,price)
    3 c  p4 x8 E$ W/ L( Dplot(ratio,price)" i% g$ i) w+ G% Q; j
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量6 w6 I0 l5 Y& Y
    cor(a[,c(6:10)])      #查看连续型变量的相关系数& A& L$ ^5 H- X9 K2 v
    #属性变量描述性统计9 n# @9 v0 i# ~9 \; r- Q7 m
    windows()
    ; f3 k& ~9 |/ J" @. ~par(mfrow=c(2,3))                        9 w+ [7 L6 p6 ~
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图1 ]* ?9 m' k  Z' o. @, V6 f
    boxplot(price~wuye)                                                                        ' U5 W1 {5 _- c5 u1 ]
    boxplot(price~fitment)        " ]4 f( A. ]" h4 ]4 \" K
    boxplot(price~ring)       
    6 S/ M& @  i) {2 q* w+ `* Yboxplot(price~contype)
    0 e% R8 @: \) R/ V3 ]+ z3 z) g1 m, i' e
    3 `& j7 _0 Y4 _; r2 T$ e
    3 P( y- n7 M6 C" u; U

    : o( b( B* P* X& X" z7 H##模型建立/ S% F5 |; R: d6 @/ U
    8 C6 `$ r( r7 I) v: Z) r
    / i5 j; q* [7 ^
    #在方差分析模型基础上加入连续型变量
    " M( s8 u; o, v7 d% ?2 o3 P6 blm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)  Y+ X& M8 Y" B3 l0 D% t
    anova(lm1)                #方差分析! ^* g* h  X; W, a) `
    summary(lm1)              #模型参数估计等详细结果9 R% J5 R/ H4 Q/ x" m3 ?3 x8 {
    windows()
    : X; ]5 J  P& w2 @: r3 ypar(mfrow=c(2,2))
    % O0 I9 N# _0 Z; b+ Z0 q* `# T: u' {plot(lm1,which=c(1:4))    #回归诊断做残差图
    6 @8 w$ W8 f  P) W  J, T. z. A: t4 ?3 c# Q
    " C2 H, I' I" b, h# l! ?  L
    $ Z* M2 n! G' ?% o" Y' r4 u6 @
    4 `6 R+ x1 G  m  Q2 e) K
    ##变量处理
    2 r  P9 `' E+ |+ N, m( |. M& H5 O" j" a
    5 |& b; ^+ x% S' {+ u; z$ G' I
    ###对不显著的变量采用分组的方式希望能达到显著的效果$ m: A( t, h) i# @8 T& V0 u2 w: r
    ##对容积率的处理
    3 t5 F2 {$ ?+ A8 D/ fwindows()8 b7 \5 g1 @8 X: ^2 w
    n = 4
    4 S1 n+ L- w0 @3 F/ ?3 ?: Pboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        . M1 {& Q6 r/ G: S1 e, M( y
    table(ceiling(rong/n))                                                #容积率各分组下的样本数  ~# D2 k7 L. l. \4 J0 g9 C
    ronggrp=1*(rong>n)                #进行二分类
    4 N9 l& ^- d) G  s#ronggrp=ceiling(rong/n)        . |3 W. y% Q3 E3 z9 c5 K# ^  R% ~6 G
    table(ceiling(ronggrp))           #容积率二分类下的样本数
    , O* Y. M! [8 [1 S/ ^; c( _; Vwindows()
    0 S9 s% D, k5 T$ Z8 C  }4 Q' mboxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图7 B) L( M) ^' m. W* t
    windows()
    4 W* B( p, e3 Tpar(mfrow=c(1,2))
    ) d2 ~$ Q4 G; _  R0 `boxplot(rong~ring)                #容积率与环线箱型图! n' @7 O9 q$ B: O- C3 P! [3 N
    boxplot(price~ring)               #房价与环线箱型图
    ! `* f* P3 J& w#加入容积率分组和容积率分组*所在环线交互因子的模型
    & ]. _" J0 s3 ?3 G, Ilm2=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)6 t* [. ^0 ~" E. {+ x3 L
    anova(lm2)                #方差分析9 s! R' ?- Y. \: ?- _$ K% f9 _& H
    summary(lm2)              #模型参数估计等详细结果
    $ h( _& w" ]  b; Z/ Swindows(). t' }7 ^3 v2 w1 c, ~6 v) A
    par(mfrow=c(2,2))5 }+ `, A5 e* d: x* f
    plot(lm1,which=c(1:4))    #回归诊断) U, z; Q  {1 U) m; R
    ; k6 C' }0 a+ M# `0 f* ]4 }

    " r# V! A: q, c##对小区面积的处理
    0 I4 g2 Q# X. [: G' e, lsummary(area)
    5 M' I% ]  g; B1 h* E) zplot(area,price)0 r8 z7 ^) s; U9 |% A9 ~# m; ?
    windows()( {) K/ e6 o0 ]* W
    n = 150000
    5 o/ j  y% g* H1 Pboxplot(price~ceiling(area/n))                                                        : M: V( X" Y% b' S2 ?* b
    table(ceiling(area/n))                                                                & {6 d1 o* S6 N
    areagrp=1*(area>n)9 o) K6 l3 ?6 A, I* ]& [
    table(ceiling(areagrp))
    8 n6 M7 B3 [6 G8 Z% Dboxplot(price~ceiling(areagrp))
    , z" \' g: l9 j/ d/ D, H9 `#加入小区面积分组的模型
    + A5 c0 e) R: H# X2 Q9 \' Vlm3=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)
    ' |- H+ G7 W# P) a* ^6 ianova(lm3)                #方差分析, J0 h3 C& V$ O8 T) f
    summary(lm3)              #模型参数估计等详细结果( `# w- j# t& S; l) o3 t
    windows()
      }+ f  B6 Y" q( lpar(mfrow=c(2,2))
    2 e* B! [4 |9 D/ Gplot(lm3,which=c(1:4))    #回归诊断6 ?. r+ `' R- t: r1 ?) I" [

    ) m9 w% _! Q( n/ E

    / d4 v# J6 L: r* m. x##变量选择
    * e" |. W0 d* V  p$ {- B. {- g. n3 I' B/ z. K, U5 @5 u- d) Q  N  D
    . Y! E4 `+ Z: |
    ##AIC准则下的变量选择
    6 f8 m9 i0 ~6 _) V/ blm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic' k  s/ L! w0 w) |( _  b; r8 l
    summary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节
    2 r1 x5 U2 @- O7 D2 g##BIC准则下的变量选择6 n9 p# {! W: G$ I- g
    lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic1 X9 S* Y( X7 k9 c; b. |
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    , t5 Z& \* C. k1 w4 Z# P6 r3 v4 k$ y" K8 k- Y
    6 K& l) y& [+ g, F0 u7 J. A
    #选用AIC准则下的模型进行回归诊断5 q4 x2 ^* T! q+ C
    windows()& Y$ f. r( `- ^0 v. d
    par(mfrow=c(2,2))
    % U5 `, z2 \1 W0 lplot(lm4.aic,which=c(1:4))  
    ; n  v. V% d5 F6 h0 Y* [  j: ]  Q6 o2 G- ]3 [# B
    5 V# K( E2 _; Q, L7 s2 d8 \. h

    ! j: J: E3 b+ P& P+ O7 p* u9 a4 ~
    , E2 V. N$ t  M5 Q' E
    ##数据变换& c. [4 f5 M# p1 O! E

    : o+ p# N2 {5 l3 u6 S
    , [! H7 L6 K; W- Z- g, Y9 i. T+ }$ D
    #box-cox变换& a7 V! D$ l. }2 I* c+ Z
    library(MASS)
    6 F/ ~8 x, t  e* db=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))
    , [  [6 R  m5 [" n  Q: @2 r6 r& Z) }' ]I=which(b$y==max(b$y))  #定位似然函数最大的位置5 @, R* t1 q: a8 A$ Y! C
    lambda = b$x[I] #精确的λ值
    , E/ N" J  D& Y7 Z- L! x& x#λ接近于0,为模型简洁性,可以直接进行对数变换
    , }5 ^- a( y% I7 m+ F/ `* Tlogprice <- log(price), f  x4 B( A( C
    hist(logprice)5 i  x- B! X+ o: P& S, T" ^
    $ N/ k" c% j; w4 q
    ' b& K3 w, g2 {( x
    ##最终模型与诊断. J' Y: ~7 |, k+ J. }

    % n2 l9 H5 U1 _4 H( N3 l
    ! |, y, }; c$ h( C. f' a7 l
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)
    1 [7 b4 T2 T' l0 H3 Y  @$ Ewindows()8 C) J% B0 t7 U/ w& o5 t7 g
    par(mfrow=c(2,2))
    ) J2 |9 F" y9 i, P5 R# Tplot(lm6,which=c(1:4))) V7 X, r/ ~; O% v+ s1 X6 s
    anova(lm6)
    # O; U, p+ Q( ]0 psummary(lm6)- I& ^. Z5 |5 r" m" T$ N( ?
    + V8 f# s# {* f& H6 }

    / x, F1 o! s- F& r: O& g( h% G; ]; u请关注数学中国网微博和数学中国公众号,联系QQ 3243710560; f$ U8 @1 f8 d0 p4 g5 ?/ C) H
    ' j- A: e+ z! ]% d1 T, m4 ]- z/ b
    ; P# `& o& l" a

    ) E. S2 S4 S  [1 P7 \/ K3 D
    ( p0 m; \- H5 @: z* \, y/ h. S
    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 ]3 k- F( w+ r, F

    % _; q# r/ n$ A( L; a

    点评

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

    太好了,又认真的看了一次,发现自已差太多了0 {: n. `" \  u/ _

    - S. Q# N4 X1 G+ f. b+ C3 S4 f

    点评

    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
    ' x" N8 K0 k/ b0 u+ h$ v太好了,又认真的看了一次,发现自已差太多了
    ( Y$ _1 b2 A& `. M  q. u+ u
    我每天会发一些好资源的7 i; L0 s' O4 F( N; {
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    : t: [% j/ a5 e3 M) t一定会认真的看看,发现这是R的,有python的分析没有

    * Q" {. \# V6 k2 G7 j$ O有啊
    3 c+ ?( T4 C+ X4 E. c$ j
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 08:18 , Processed in 0.438419 second(s), 79 queries .

    回顶部