QQ登录

只需要一步,快速开始

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

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

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

1158

主题

15

听众

1万

积分

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

    [LV.7]常住居民III

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

    这一案例是王汉生老师《应用商务统计分析》方差分析章节的案例,主要对离散型变量进行了处理。
      ~$ b' U% \$ `. p# O" R5 i6 s这里将连续型变量也加进来,进行协方差分析,建立完整的模型。

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

    ! t, S" B# L8 Q" @; P+ ~2 n' Q
    行描述性统计分析,各连续型变量之间的相关关系如下:
    5 }7 v) H6 F! L" P8 H: S' s4 j1 j4 `+ m$ f

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

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

    ' ^' c  c- ~$ f0 `! L; Z
    & u% F) n% g/ M3 o
    / X4 r- H- C9 [7 Q7 C
    最终模型残差图:
    7 V, G1 ]1 O: g0 g" h6 ^) t7 n" X- M5 }. h: w$ A& f
    通过模型分析结果可知,影响北京市商品房平均销售价格的主要因素有:8 A) M) m$ h$ i% W$ f/ z; u
    属性变量:所在辖区、所在环线、物业类别、装修状况、容积率大小(新引入);连续变量:绿化率、停车位住户比4 D9 G7 `/ w) ]8 m1 P$ g; K
    属性变量的具体影响在此处分析略去。* w& W% E$ r! ~3 e
    连续型变量的影响主要为:
    1 @. r" h: S5 K$ I* {& P; J7 J 绿化率:绿化率的影响十分显著,由系数估计值为正,说明对房价有正向影响,绿化率越高的楼盘房价越高;
    9 d8 b% h. g! J  \" _% F 停车位住户比:有较显著的影响,停车位住户比越高,价格越高;0 [' D! H' ~, n7 \, w
    同时,原本为连续型变量的容积率经过离散化变为属性变量后:
    " {$ {3 V) P* |6 f% K! r( }8 w2 ~0 G 容积率大小:容积率分组有较显著的影响,高容积率的小区商品房价格更贵;3 u9 v7 t% q" H# o2 q
     容积率与环线之间存在着交互效应。! }: G( N7 j" d: q7 N
    rm(list=ls())                                                                                #清空当前工作空间, h! F$ q1 [# i0 A7 v; d
    setwd("D:/回归分析")! L. Q. q" c& }: q! v  J
    a=read.csv("real.csv",header=T)                #读入csv格式的数据,赋值为a" h6 \1 \6 |1 i6 j7 R
    View(a)
    8 k- x! f$ M- t1 Vattach(a)! [- V  e/ g( V4 N! Q; M# q
    names(a)# ^0 l3 M/ C$ D# ^
    2 J+ d" D9 h7 a$ r8 C5 _* l
    3 t, ]" c- ~' z% x% j5 d  e
    ##描述性统计
    * h* C5 b) T. a/ I2 h( G% Z6 ~. c; {0 C. C4 Z1 @
    9 B. m+ {9 k% v& m* C' x) Q0 B1 H: H
    #未做处理的响应变量分布情况
    / o/ }  Y' ~% p4 K+ x8 \' {. Tpar(mfrow=c(1,1))% i2 g6 w5 L/ Z: b# a! T; l0 u$ M
    hist(price)
    5 c# e# [/ Y" W- s# C. T# @summary(price)        #查看响应变量的描述统计量. Q- `4 P: R9 K" R9 [# {
    #连续型变量描述性统计
    . I; g2 z9 |" E3 ewindows(): ~. I( r) L2 K- B' s
    pairs(a[,c(6:10)])    #所有连续型变量间的散点图) T3 r: I9 |. h  l9 b& N
    par(mfrow=c(2,2))        1 z6 r$ N0 u1 |2 K' p6 y$ J# ~
    plot(rong,price)      #每个连续型因变量与响应变量间的散点图; G  F, X3 m  W" O0 D2 R' ^
    plot(lv,price)* R: [0 X: s; Z
    plot(area,price)
    1 |9 a( }* v' x% e' z, \0 ]plot(ratio,price)8 V% B1 o' z2 J: C! V$ m! u% S- B4 l
    summary(a[,c(6:10)])  #查看连续型变量的描述统计量
    & N( O1 @; d; x; Q6 Mcor(a[,c(6:10)])      #查看连续型变量的相关系数
    ! u" _9 r9 _# h8 e. p9 ?#属性变量描述性统计4 o! `; h, g1 Z7 t4 t$ H8 J
    windows()
    2 b) F  `! V# |* d" gpar(mfrow=c(2,3))                       
    4 e% e# u% U" `0 oboxplot(price~dis)          #每个属性变量关于响应变量的箱型图- K  S# b) Y5 p! G. l9 |
    boxplot(price~wuye)                                                                       
    8 n! U: }* W( N2 V; oboxplot(price~fitment)        ) s: o( B' x* d0 x; P
    boxplot(price~ring)        1 h- L: k7 m- g  w5 V" {
    boxplot(price~contype)8 j9 c# @( Q# u& h0 ]
    ; v2 Y; N% {0 W. ?) j; L; @5 \& o
    & g5 y/ s* D2 j0 {5 G$ e. S; F6 T

    # A2 J% z4 {5 y8 F

    7 |7 n) m: G; A! T: }! C##模型建立
    ! X& B2 y  T6 @9 G' M( n( \! T6 i
    5 k3 H8 K3 O# S3 b- s8 k

    * B' X0 b2 T( t  ~/ C#在方差分析模型基础上加入连续型变量: h* }' O8 u  l) ^, \9 T
    lm1=lm(price~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(contype)+rong+lv+area+ratio)
    ( t8 P% `) T- ^$ w* j  q( `anova(lm1)                #方差分析
    ; K/ m' z' m+ M' u* K7 a- msummary(lm1)              #模型参数估计等详细结果1 u4 X9 }/ }6 O. N* h* v
    windows()
    8 H2 v. r. ~  u# m: zpar(mfrow=c(2,2))
    ; q7 D( Q% o, y7 H3 gplot(lm1,which=c(1:4))    #回归诊断做残差图' ]6 w7 C4 g4 g' J* O3 t

    ) ^# u6 A) G  H" a* p8 v

    - v3 @1 k4 ~6 K9 M" q
    ( D" ^# h) U+ M# s

    7 @( V) X7 k$ R( f##变量处理
    - n3 ?0 M) {- v) i0 Z7 v. w
    . Y* T3 w" G- X1 M3 z# y6 S
    , ]9 z) n, Z1 n! o0 V
    ###对不显著的变量采用分组的方式希望能达到显著的效果9 V5 V8 Q" o9 J- i
    ##对容积率的处理6 j, c; l. |4 Y* c$ a+ T1 E0 L
    windows()
    - C8 w$ s; t( A- |( r6 R; k+ d4 ^n = 4$ |; Y( ?* p2 L& }
    boxplot(price~ceiling(rong/n))                #容积率多分组下的箱型图                                        3 \! O2 {( A7 e, k+ x
    table(ceiling(rong/n))                                                #容积率各分组下的样本数% [7 P5 `$ ]1 c
    ronggrp=1*(rong>n)                #进行二分类
    7 m# p0 r7 Y8 K3 G, Y2 E#ronggrp=ceiling(rong/n)       
    / r5 Y# {% O+ w; q5 dtable(ceiling(ronggrp))           #容积率二分类下的样本数
    / |( C7 w( q9 C9 k  D8 X$ Y. twindows(): `- R! ?: K" d. V# w9 y) r
    boxplot(price~ceiling(ronggrp))   #容积率二分类下的房价箱型图. w2 h/ M( D  h: L
    windows()
    % g! d; ?9 z4 @% C9 ~par(mfrow=c(1,2))
    0 @3 j& [1 \. d9 J3 c( R7 M$ oboxplot(rong~ring)                #容积率与环线箱型图$ \4 Q$ r5 \# @+ b8 r
    boxplot(price~ring)               #房价与环线箱型图 3 T4 X' |) W! ?3 K' }7 V/ h* R
    #加入容积率分组和容积率分组*所在环线交互因子的模型
    ; F( ^8 G) i; |& a: b( glm2=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)5 m* _' t/ [" X
    anova(lm2)                #方差分析( i7 s# \- _* M$ e0 J
    summary(lm2)              #模型参数估计等详细结果
    " b- z2 G# e* Y5 `windows()
    ( \+ t- n! B- q! O3 S' a/ \par(mfrow=c(2,2))
    % Q/ \- q& e! ?' x6 x2 a( jplot(lm1,which=c(1:4))    #回归诊断
    : g4 P6 O! {9 \$ m" x# c0 [2 f
    + \+ h+ s' [% ~' a9 h! [

    7 b% ~+ c$ q( S2 y* j" ]; w##对小区面积的处理
      Y5 `; P9 m% @0 r3 K4 c1 f+ qsummary(area)
    " E  M' x" q' r: Vplot(area,price)( s( A3 k2 P1 i9 H' W; ~& Z
    windows(): |1 a- a/ K: h
    n = 150000
    7 \: Y- w( C% r2 E; h& g3 d  gboxplot(price~ceiling(area/n))                                                        ) K1 E# D( b' R% D8 N& H
    table(ceiling(area/n))                                                                4 G9 D+ n# y( h( ?4 ~0 `2 G8 w7 g) [
    areagrp=1*(area>n)
    / x. U- H$ F; L2 z- h  ^7 H" mtable(ceiling(areagrp))
      O1 J& E' h9 p; N6 v* \/ qboxplot(price~ceiling(areagrp)); V" o1 ~) _* |& V1 u* y
    #加入小区面积分组的模型
    6 S! ]% Q6 x1 R6 _- j* 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)
    7 m  E0 o6 S. k& _* C; J- Q' U+ oanova(lm3)                #方差分析
    3 h& _+ f6 G: r/ b. c; Gsummary(lm3)              #模型参数估计等详细结果/ `+ q! M1 s2 n6 |1 M2 x
    windows()/ y, t* q8 @6 O% f
    par(mfrow=c(2,2))+ F+ e$ B* F1 L# U, R7 A
    plot(lm3,which=c(1:4))    #回归诊断! I$ J% p) X! ^$ U  [
    8 r8 G7 o* t; [% b1 c

    8 m- ]1 l# b3 a3 P##变量选择; u9 r# M% t* M3 X0 Q9 k% `9 @
    7 e7 f" z* _" o6 {' _. |9 m2 K3 N  g
    - \( x" ~2 r5 c
    ##AIC准则下的变量选择
    . U$ ~8 v* [* _9 y* qlm4.aic=step(lm3,trace=F)       #根据AIC准则选出最优模型,并赋值给lm.aic
    ; K# q$ e  M: `. Y0 x; B# Wsummary(lm4.aic)                #给出模型lm.aic中系数估计值、P值等细节; ?3 n9 O+ c& v" N# o! T" u) _( [
    ##BIC准则下的变量选择
    $ r+ F# X5 G/ U8 r/ X/ k6 Q( _lm5.bic=step(lm3,k=log(length(a[,1])),trace=F)     #根据BIC准则选出最优模型,并赋值给lm.bic
    ' D* y3 k4 t. u/ N$ _* I3 V" Xsummary(lm5.bic)         #给出模型lm.bic中系数估计值、P值等细节% X9 f) e3 p$ [$ J
    / h& W# [* V& F' @" x0 N/ W: U/ C
    * w8 @: P9 y: e( V8 P# {
    #选用AIC准则下的模型进行回归诊断
    2 v2 U4 e8 C' h) V. \# v8 Iwindows()
    ! V) o. Q$ O/ J: s; b( x9 H% I* |par(mfrow=c(2,2))
    4 h7 U+ ]/ d, D" L+ |  Pplot(lm4.aic,which=c(1:4))  6 Q$ o+ t/ Y8 F, i/ ]
    8 z. b$ {6 l# J! A7 L

    # x; t7 m% I& b1 S! S; d4 P' c
    8 n, _* H) J# B  f) s; T1 z4 [7 T

    ' e/ h5 T  a! l5 h! J##数据变换# X& O. Z9 o& X  A; L/ a

    5 Q1 n3 Z* C; }
    ! [# ~9 Z8 v: L: a
    #box-cox变换
    " Z* o# v, V: u( t5 L  tlibrary(MASS)1 g  x% {/ @5 Z5 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))! ^8 F0 B$ P; j% I
    I=which(b$y==max(b$y))  #定位似然函数最大的位置" s& ~- Y- \7 w9 e; @
    lambda = b$x[I] #精确的λ值0 W5 Q" Z% g0 S( N, q3 B0 p
    #λ接近于0,为模型简洁性,可以直接进行对数变换
    - E! f- E, f4 d- hlogprice <- log(price)# s/ q5 }/ Q9 B( {( q) N' L
    hist(logprice). D$ l: |( v& `) r, F/ L1 r
    & K& H* J. N8 y( ^8 ^

    . P" O# r4 a  N0 u0 n! W* \' Y##最终模型与诊断
    ' N  y+ F# P$ x. ~" @- \3 a+ q: M' R' m8 @: h6 d

    6 K" S1 m5 o6 f; ^lm6=lm(logprice ~as.factor(dis)*as.factor(ring)+as.factor(wuye)+as.factor(fitment)+as.factor(ring)*as.factor(ronggrp)+lv+ratio)& [1 Q8 Y) w7 X+ M: ~
    windows()
      m; q# w9 Y3 rpar(mfrow=c(2,2))# C( j$ `, Z. O& F0 g2 a7 h+ ]' _
    plot(lm6,which=c(1:4))
    ) v- T) g0 M7 D, h9 U; ?anova(lm6)
    2 g' b7 Q1 d" g8 Osummary(lm6)
    $ Q; o# O& j4 Q  U3 n
    # x9 ^' a9 k8 d" ^% s" J
    1 e2 d, s! W; U! ?. Z/ O0 G请关注数学中国网微博和数学中国公众号,联系QQ 3243710560& I$ y, C. A7 h/ G" ^

    7 l6 R9 {4 I  t% ^' X  p, n+ x8 M' |: O
    , H5 i8 Q7 u7 i' V4 a) M* ?% x
    0 g7 L% ]1 k' e) X4 D) J
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    9

    主题

    14

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    一定会认真的看看,发现这是R的,有python的分析没有. U! v* w' n. v+ U
    + z/ Z7 B! Z' X+ C$ ]3 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

    听众

    614

    积分

    升级  3.5%

  • TA的每日心情
    无聊
    2024-5-8 12:54
  • 签到天数: 632 天

    [LV.9]以坛为家II

    新人进步奖

    群组数学建模

    群组2014年网络挑战赛交流

    群组学术交流D

    群组数学建摸协会

    群组第四届cumcm国赛实训

    太好了,又认真的看了一次,发现自已差太多了" Y. ^1 E0 ^# v6 x& g3 f* O, v* {# o
    & B+ ?: ^% c3 T+ p

    点评

    1047521767  我每天会发一些好资源的  详情 回复 发表于 2021-10-28 11:01
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 23:18 3 e  g' r6 t% ^5 L2 m2 L# w
    太好了,又认真的看了一次,发现自已差太多了
    + ]3 V! ?! k$ g  C% a& }1 U& R+ X
    我每天会发一些好资源的
    - o% Y( ~3 v$ _( G# Z3 {! u  w
    回复

    使用道具 举报

    1158

    主题

    15

    听众

    1万

    积分

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

    [LV.7]常住居民III

    自我介绍
    数学中国浅夏
    fgfroom214 发表于 2021-10-27 16:32 + e, G& d' y/ N; {
    一定会认真的看看,发现这是R的,有python的分析没有
    , Y2 \5 ?- W, ~2 n& B. z+ l$ x( i, x- @
    有啊
    8 b/ [1 y! U- p/ [
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-5-9 23:16 , Processed in 0.587405 second(s), 78 queries .

    回顶部