QQ登录

只需要一步,快速开始

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

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

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

1178

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    跳转到指定楼层
    1#
    发表于 2021-10-27 14:50 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    【R语言】回归分析案例:北京市商品房价格影响因素分析
    ; V. ]7 D, Q/ e- C7 e: p

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。9 ?5 v1 N: d5 ?' Z! Z
    这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

      ~7 m; u3 Z$ q4 [5 |, o- _6 l
    行描述性统计分析,各连续型变量之间的相关关系如下:
    5 Z5 J- z+ Q) E! Y  w: e* s( I1 m9 m* d5 ?! ]! |% K

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

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

    0 ^% Q6 s0 s3 D5 q# l

    " K9 m! X' p8 U5 ~4 J% h, U  h( O3 y! [/ o5 _
    最终模型残差图:
    0 Y" d9 Q5 `6 K* V5 D/ X# D4 E4 o( b, E) N3 b( u
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:' m: l' o7 F9 h6 w3 c" S7 v
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比
    4 m# R( N# ^! o% z属性变量的具体影响在此处分析略去。
    1 C1 x% _4 ]0 E( i连续型变量的影响主要为:" x' m3 q+ K3 _8 E% z/ e
     绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    - }4 ^9 V6 V2 \# I! P2 a9 ^/ k9 y 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;
    8 l6 b9 B1 G4 D1 y. R同时,原本为连续型变量的容积率经过离散化变为属性变量后:2 `5 k2 N' W9 A5 g& Y) w; \, J
     容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;
    & ?* m( V6 V+ i/ W9 s 容积率与环线之间存在着交互效应。
    # p1 m$ t$ q! k7 w  zrm(list=ls())                                                                                #清空当前工作空间
    1 B% Q/ A7 m  v/ D4 nsetwd("D:/回归分析"), z2 O7 F& r2 P8 x/ e/ e5 E
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a  z$ {2 f3 Z+ V  C/ N8 V
    View(a); Z, d2 |. m$ d; D9 L' a
    attach(a)4 p( o' B; m5 @% L& w( h" P
    names(a); K% Z# {. u6 s9 @  ]" h0 ]/ U+ O
    $ S# c5 S' Z7 o
    9 b; A( W  z7 M" Q3 Z
    ##描述性统计
    5 i1 N$ ^8 ~" F& _3 `) S0 W) n$ T7 U5 U: M5 E* l
    2 [4 e7 ]2 I2 d: `0 k' K8 H
    #未做处理的响应变量分布情况5 s3 s2 j7 t$ t5 P9 T
    par(mfrow=c(1,1))& b: b5 R  l7 W5 p) Q
    hist(price)! m5 W( f% j8 K- Y% A2 @" I* X! K0 F
    summary(price)        #查看响应变量的描述统计量
    % |1 ]+ \) C- |& a" c5 i. T#连续型变量描述性统计8 F  o- z; G- x
    windows()
    ( {5 [& f' N# s7 m/ L  V8 Upairs(a[,c(6:10)])    #所有连续型变量间的散点图" B0 m& B" ^# @8 q  J; B5 [
    par(mfrow=c(2,2))        ; {7 t& G- O2 P: T/ s; X
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图( x; A8 }0 L0 j8 A8 Y
    plot(lv,price)
    8 U9 a* p) f1 _2 k( X1 xplot(area,price)
    4 x& a) M" r% S+ v  q& Splot(ratio,price), y* _/ f. T% N
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量3 l7 [# ^# K* s- ]
    cor(a[,c(6:10)])      #查看连续型变量的相关系数7 d6 J8 J3 U% L
    #属性变量描述性统计; t% \3 H' y$ f3 W, q) P, r' n
    windows()+ f3 H5 J6 a; A4 y6 F
    par(mfrow=c(2,3))                        . |$ g. h& Q1 b
    boxplot(price~dis)          #每个属性变量关于响应变量的箱型图5 M0 `9 |: v7 |+ y4 n! Q
    boxplot(price~wuye)                                                                        & \5 q  X1 o; f3 J6 L! O- D4 T% n
    boxplot(price~fitment)       
    ) L; A' O% x4 [2 n! x# p; tboxplot(price~ring)        . b( K  D5 {! s3 F! O# \
    boxplot(price~contype): e4 @1 E* ~% y; i( Q! ^* g" f- T

    ! H7 X7 y/ `7 c; t% W" m
    0 l8 y: j9 W& I$ P2 x! }4 l
    4 U8 X6 M  H( A0 R7 m5 \

    $ V. e5 y$ K+ S/ [##模型建立- ?% F4 z0 H9 W  n' a, b9 x9 \: }5 j
    " \) i) ^2 \5 t3 |+ u
    . Z! d$ F+ d3 Q. L
    #在方差分析模型基础上加入连续型变量2 k9 g3 Y- Y! x4 H' K0 H
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
      H$ h  \% J) n% ^' z, |" ianova(lm1)                #方差分析& N6 L0 w/ v0 v3 W9 b) K' c0 W. Z& g
    summary(lm1)              #模型参数估计等详细结果
    8 |- M5 I$ X* gwindows()6 E  V( d, K' _
    par(mfrow=c(2,2))
    : ~* q8 _3 r, `plot(lm1,which=c(1:4))    #回归诊断做残差图
    & Y$ H3 K- h7 h$ r
    8 Y) I# ]% v9 h6 E+ M; }3 O' w
    . Q9 E* S: u  b! [9 I* \
    ' J2 }# j2 C/ f, f1 M* n. I

    . B& }# H4 T' [2 j##变量处理. ?' U9 @  B+ h# {/ c: |! L

    : m" E7 ?9 S3 c% h9 m$ a+ p
    / I9 O" d9 J% _9 A) [$ Q/ P
    ###对不显著的变量采用分组的方式希望能达到显著的效果" A& a: C; N6 l  i) T
    ##对容积率的处理
    ( G% D2 W- C3 H( d0 L1 N" o; Rwindows()9 i. i# `+ ]0 ~
    n = 4
    , \. i4 w" p8 J- t( A' Wboxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                       
    ( q) k( e3 q) p6 dtable(ceiling(rong/n))                                                #容积率各分组下的样本数" _- t! N. I  Z1 }- S( @3 w
    ronggrp=1*(rong>n)                #进行二分类1 l) @+ ?$ m5 U9 v: ~7 i
    #ronggrp=ceiling(rong/n)       
    6 F/ [4 n0 R/ r5 }table(ceiling(ronggrp))           #容积率二分类下的样本数; G- ]& M  N: ^% U9 J+ O
    windows()( W1 D8 ]4 _+ D0 X, ~8 V
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图7 ?, C. g' R5 @+ a+ [# M! m
    windows()
    3 {  \% D% @4 W0 ^4 d# ^/ X3 ^par(mfrow=c(1,2))2 |$ E4 j2 ?- p3 l  d
    boxplot(rong~ring)                #容积率与环线箱型图
    ) c1 \0 ]3 d) y2 l  sboxplot(price~ring)               #房价与环线箱型图 0 I  ?( k6 G5 \9 T+ a. a: X
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    ; b' v) ]6 G. Ulm2=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)
    2 Y. _: m: L5 eanova(lm2)                #方差分析
    . F  I4 R: Q  asummary(lm2)              #模型参数估计等详细结果
    9 Y- P0 c3 X  R, ?/ Z' X4 wwindows()
    0 \/ z* S, _3 X+ O& epar(mfrow=c(2,2))
    2 B5 P/ _* N; w# C7 splot(lm1,which=c(1:4))    #回归诊断
    # O: q, m( v: G2 {+ u; z% P& `. Z# a" e, |' f4 |( i$ o
      R9 }. F, p  ~6 o
    ##对小区面积的处理  ?- F' |; D# X0 `1 C
    summary(area)
    * B( |) [' H- ^( H" dplot(area,price)
    ) |, n. ?* \0 N# z* z9 H  hwindows()
    ! X$ X: ~1 ?: ^% S' W" E. d0 mn = 1500006 i4 ], C6 g( G- s5 h
    boxplot(price~ceiling(area/n))                                                       
    ) z3 q4 ?: p8 @# T, z6 |2 A7 ~table(ceiling(area/n))                                                                8 M! Y6 V0 y7 d
    areagrp=1*(area>n)
    + l) G  l6 K* o* g! _, mtable(ceiling(areagrp))
    + |& ~8 O7 f' e% pboxplot(price~ceiling(areagrp))  c4 ]5 e* h+ `& U: V; a# T# d( ~) w0 e
    #加入小区面积分组的模型+ M" c, V+ i: N% i+ w4 i* x, [% K
    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). F2 U' K: S) X0 q& s; A  c
    anova(lm3)                #方差分析
    4 w; t4 Y" _, Y- ]% rsummary(lm3)              #模型参数估计等详细结果3 e4 K- o4 b9 W  a* Q8 a
    windows()
    7 M- I0 Z1 r+ T- d$ Apar(mfrow=c(2,2))
    3 W7 q3 o, o" D1 kplot(lm3,which=c(1:4))    #回归诊断% e, j7 r7 H  G5 K# T$ U2 c
    4 K6 y: V3 ]' t+ D" |4 W$ j$ @
    5 w; N. A5 i2 [: o2 e* k4 k( g
    ##变量选择; w* S4 ~! N: x  f  V6 `

    6 s+ `' W) R; G  H8 M

    $ H' ^+ n! w* S: H##AIC准则下的变量选择% ^( K$ ^3 _' ^# D3 K$ c0 i3 \" C
    lm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    ; @& x9 H, [1 I' S# dsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节# H$ G4 k& ?: E
    ##BIC准则下的变量选择
    0 h: W- x! @# p* v7 f- B4 {7 g1 Olm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic' {7 r" J) @% p1 W/ |$ m
    summary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节
    ! e! k' L& a1 p1 h# {
    ) j# j, E  ~. ]; o* z% O

    ! c. e0 ~( y! Z) z#选用AIC准则下的模型进行回归诊断- H  I5 {. q! u+ Z) r2 [
    windows(). _% X: f# c5 o9 g; A0 p# n
    par(mfrow=c(2,2))9 c$ D0 M% d& R0 o6 B! L  i
    plot(lm4.aic,which=c(1:4))  
    # q  u( a7 D3 k& n* U+ y9 Z
    4 _( n3 w2 J: V( k

    6 l/ @: _( w! f3 x  Z4 f2 l1 A/ i2 ]6 o  S" O& l# I+ j
    + t7 X1 J, K  S' t
    ##数据变换  N$ T- K* q7 p8 X6 y. I

    4 v9 n0 ~3 B7 r& C  k% F

    : K& `. ]1 X; C5 J& x. a' j& @#box-cox变换
    3 M+ i& ^0 H  j2 k! llibrary(MASS)0 r5 b) y* m$ s4 L( k' G* O3 t
    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))$ o% ?3 E! q) B7 |/ `) P; G+ U
    I=which(b$y==max(b$y))  #定位似然函数最大的位置# ?! y7 H" f1 {5 D6 X' i
    lambda = b$x[I] #精确的λ值; M  t# n% y. O) \7 D. U
    #λ接近于0,为模型简洁性,可以直接进行对数变换  c' N( e8 E5 _4 d
    logprice <- log(price)( I7 S) `8 M. A( f; y3 I3 h. o
    hist(logprice)
    : U5 k" C3 E% ]- t3 ?2 ~
    4 w4 z1 H7 Y. {( f; x

    $ A. E2 g- s7 F% Y2 h2 C5 f##最终模型与诊断
    3 y! i% \, u7 u2 q% h& v9 ]( B. S2 ?% w
    $ A; [/ F9 t# t: M' U7 m) ?. W
    lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)( X: t8 {; R1 ^' ^; n
    windows()
    & W' W! |9 U1 q1 Hpar(mfrow=c(2,2)); Y5 E: J" d4 h. U
    plot(lm6,which=c(1:4))
    7 v- {" F# f" Z2 [/ {anova(lm6)( n, ?7 n6 E% E9 f
    summary(lm6)& S8 n7 X! A0 Q* \5 {9 o

    : k0 r" V3 i4 x" C+ J0 S7 ]+ @9 \% C9 ^! q. }3 q: a& D. X
    请关注数学中国网微博和数学中国公众号,联系QQ 3243710560
    8 Q6 t4 H1 z, N* S4 X5 h
      z" Z, P2 k( H
    9 g5 o( f& M+ p; z5 B4 U$ ~
    7 E# `: M4 r: k  u. H# v8 g, Z
    # @  w; Q  J$ A( o
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32
    8 R: N; q- [8 r+ A4 T5 b$ ~: }一定会认真的看看,发现这是R的,有python的分析没有

    & ?$ O6 i& K2 w1 ]有啊: ^' V8 h7 l7 G+ D! D
    回复

    使用道具 举报

    1178

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18 $ ~9 F9 [( g! d# |; s. i8 X# k' X7 [
    太好了,又认真的看了一次,发现自已差太多了
    8 K" E2 R/ N# D' p% d+ k4 {
    我每天会发一些好资源的' m4 N# z8 z( ?( Z& |7 S. S
    回复

    使用道具 举报

    9

    主题

    14

    听众

    688

    积分

    升级  22%

  • TA的每日心情
    无聊
    2026-4-23 20:54
  • 签到天数: 697 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了
    ( S6 X) e$ Y) V) v! I1 l$ H/ `
    # d/ \" o$ X: S" w1 W/ c; x

    点评

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

    一定会认真的看看,发现这是R的,有python的分析没有* G$ c/ T8 T4 Q. O; u

    8 p, X# C% q; v9 ?1 ^

    点评

    1047521767  有啊  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-5 07:47 , Processed in 0.357729 second(s), 79 queries .

    回顶部