首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多维标度分析:城市距离与省市消费

多维标度分析:城市距离与省市消费

作者头像
herain
发布2022-04-27 15:53:41
3110
发布2022-04-27 15:53:41
举报
文章被收录于专栏:数据指象数据指象

文章期号:20190604

第二章统计进阶,多元统计:多维标度分析

多维标度(Multidimensional scaling,缩写MDS,又译“多维尺度”)也称作“相似度结构分析”(Similarity structure analysis),属于多重变量分析的方法之一,是社会学、数量心理学、市场营销等统计实证分析的常用方法。

运用R工具进行实战演练如下:

案例:古典多维标度法 [8个城市的距离矩阵]

> X<-read.table(pipe("pbpaste"),header=T)
> X
     北京 天津 济南 青岛 郑州 上海 杭州 南京
北京    0  118  439  668  714 1259 1328 1065
天津  118    0  363  571  729 1145 1191  936
济南  439  363    0  362  443  886  872  626
青岛  668  571  362    0  772  776  828  617
郑州  714  729  443  772    0  984  962  710
上海 1259 1145  886  776  984    0  203  322
杭州 1328 1191  872  828  962  203    0  305
南京 1065  936  626  617  710  322  305    0
> 
> dd<-cmdscale(X,k=2,eig=T)
> dd
$points
           [,1]        [,2]
北京 -658.14610  -52.301759
天津 -522.00992 -133.917153
济南 -229.30657   32.365307
青岛  -80.72182 -277.225217
郑州 -171.98297  474.047645
上海  610.52727 -102.636996
杭州  659.93216    5.717159
南京  391.70794   53.951014

$eig
[1]  1.756015e+06  3.367695e+05  7.888679e+04  3.770390e+04  1.320482e+04 -7.275958e-12 -1.434722e+04 -3.259473e+04
$GOF
[1] 0.9221257 0.9416014

> sum(abs(dd$eig[1:2]))/sum(abs(dd$eig))
[1] 0.9221257
> sum(abs(dd$eig[1:2]^2))/sum(abs(dd$eig^2))
[1] 0.9971656
> x<-dd$points[,1]
> y<-dd$points[,2]
> plot(x,y, xlim=c(-700, 800),ylim=c(-300,600))
> text(x,y, labels=row.names(X), adj=c(0,-0.5), cex=0.8, family = 'SimSun')

上图R计算结果可知,矩阵B的八个特征值为:

$eig [1] 1.756015e+06 3.367695e+05 7.888679e+04 3.770390e+04 1.320482e+04 -7.275958e-12 -1.434722e+04 -3.259473e+04

由于存在两个特征值为负数,小于0,表明距离矩阵不是欧拉矩阵。用两个特征向量可以很好的拟合出8个构造点,在二维空间中 表示8个城市的距离和相等位置。

距离矩阵拟合图

案例:非度量多维标度法

> X<-read.table(pipe("pbpaste"),header=T)
> X
            x1     x2      x3     x4      x5     x6     x7     x8
北京   2994.66 699.42 1990.21 473.62 1112.44 950.61 840.61 193.21
天津   2060.83 365.86  888.32 233.02  467.48 462.25 360.47  98.50
河北   1351.41 250.92  839.66 218.90  464.80 462.25 360.47  78.87
山西   1372.49 315.78  614.70 173.62  357.74 420.21 328.92  80.40
内蒙古 1675.04 317.71  751.99 177.91  598.61 374.19 467.97  97.41
辽宁   1714.15 369.15  745.03 185.23  448.97 500,28 413.83 112.87
吉林   1523.32 309.75  752.79 171.92  368.64 454.05 462.42 104.47
黑龙江 1483.95 387.17  793.80 164.63  455.90 560.71 443.16 101.86
上海   3806.82 554.13 2020.25 528.01 1459.45 997.65 584.51 209.66
江苏   2491.51 350.01 1170.88 327.69  785.53 908.10 362.28 146.87
浙江   3055.59 551.53 2044.32 410.62 1145.99 839.19 709.30 172.34
安徽   1632.96 232.20  867.51 231.23  338.99 363.92 264.39  82.10
福建   2537.15 310.14  865.50 292.71  638.07 462.17 251.36 141.23
江西   1812.66 174.61  782.72 205.27  331.81 285.23 243.84  75.48
山东   1804.45 305.56  832.95 324.70  649.21 421.91 383.89  84.51
河南   1371.17 261.52  765.18 254.47  401.44 250.47 287.83  90.14
湖北   1763.05 217.61  816.42 262.26  331.35 288.12 295.24 116.73
湖南   2087.85 209.85  719.20 243.90  343.82 315.93 293.59  96.23
广东   2630.05 215.51  986.70 235.01  637.08 326.53 307.43 177.27
广西   1675.41 110.46  692.51 192.77  310.30 182.55 228.99  62.30
海南   1724.47 117.36  609.77 135.22  312.53 318.04 138.35  90.49
重庆   1750.01 224.13  548.00 260.71  281.73 239.03 270.31  50.70
四川   1881.18 226.62  625.28 239.48  360.70 218.62 276.06  69.59
贵州   1319.43 137.49  621.80 135.64  229.66 186.19 178.07  44.21
云南   1604.50 160.72  638.09 167.66  337.85 206.45 239.94  43.11
西藏   1325.71 326.65  352.88 181.27  282.43  51.06  71.16  75.77
陕西   1299.22 237.87  837.54 233.37  336.22 397.61 376.20  75.77
甘肃   1315.25 184.23  551.63 146.93  256.70 238.03 203.13  46.09
青海   1442.88 255.19  944.23 193.59  369.60 198.53 307.92  62.55
宁夏   1541.77 302.61  776.44 188.12  444.02 241.08 417.92 101.22
新疆   1394.38 303.66  695.17 137.69  382.14 170.15 314.73  59.94
> dd<-as.matrix(X)
> dd
> d<-dist(dd)
Warning message:
In dist(dd) : 强制改变过程中产生了NA

> library(MASS)
> fit<-isoMDS(d,k=2)
initial  value 3.267778 
final  value 3.267686 
converged
> fit
$points
              [,1]         [,2]
北京   -1882.08165 -405.5501799
天津    -181.18356   83.5568197
河北     378.06842 -316.9090361
山西     519.63551 -161.3723531
内蒙古   140.53475 -118.3236722
辽宁     239.59269  -57.3466211
吉林     311.06135 -196.5769112
黑龙江   257.18237 -303.2689490
上海   -2574.54791  164.4633867
江苏    -864.88942   19.9653109
浙江   -1891.26840 -273.7180203
安徽     241.99333  -56.7533361
福建    -562.74468  426.2460037
江西     187.41927  149.4628003
山东     -23.94055  -68.0772001
河南     480.52386 -165.0996828
湖北     186.03261   68.3345125
湖南     -11.86522  317.5767900
广东    -645.99328  471.6486570
广西     377.05811  164.2765177
海南     362.23481  229.5403989
重庆     360.53994  226.6307228
四川     206.07019  261.9414880
贵州     708.60794   -0.5224843
云南     435.30179  117.9074584
西藏     836.32175  163.8641180
陕西     475.58204 -309.3702220
甘肃     712.09253  -10.0972309
青海     372.00020 -192.4072738
宁夏     321.09711 -124.8186386
新疆     529.56410 -105.2031733
$stress
[1] 3.267686
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据指象 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档