文章目录

  • 写在前面
  • MDS概念与基本思想
  • 一些基本概念与定义
    • 距离阵
    • 欧式型距离阵
  • 欧式型距离阵判定定理
    • 证明★\bigstar★
      • 必要性
      • 充分性
  • MDS古典解计算步骤
  • R语言实现
    • 方法一:使用内置的`cmdscale()`函数
    • 方法二:使用自定义函数
  • 参考文献

写在前面

最近忙于作业一直没有更新,后续会慢慢补上。这次写一下前一阶段学习的多维标度 (Multi-Dimensional Scaling, MDS) 分析的古典解部分,包括欧式型距离矩阵判定定理的证明以及利用R语言进行MDS的古典解实现。

MDS概念与基本思想

MDS是以空间分布的形式表现对象之间相似性亲疏关系的一种多元数据分析方法,其基本思想是将高维坐标中的点投影到低维空间中,保持点彼此之间的相似性尽可能不变。其结果主要是偏好图(又称多维标度图)等。

一些基本概念与定义

距离阵

一个n×nn\times nn×n矩阵D=(dij)D=(d_{ij})D=(dij​),若满足 DT=DD^T=DDT=D, dii=0\,d_{ii}=0dii​=0, dij⩾0\,d_{ij}\geqslant0dij​⩾0, (i,j=1,2,⋯,n;i≠j)\,(i,\,j=1,\,2,\,\cdots,\,n;\,i\neq j)(i,j=1,2,⋯,n;i​=j),则称 ⁣D⁣\!D\!D 为距离阵

欧式型距离阵

一个距离阵D=(dij)D=(d_{ij})D=(dij​)称为欧式型的,若存在某个正整数ppp及ppp维空间Rp\mathbb{R}^pRp中的nnn个点 x1,⋯,xnx_1,\,\cdots,\,x_nx1​,⋯,xn​, 使得
dij2=(xi−xj)′(xi−xj),其中,令A=(aij),aij=−12dij2,B=H′AH,H=In−1n1n1n′.\begin{aligned} d^2_{ij} &= (x_i-x_j)'(x_i-x_j), \\ \text{其中,令}\\ A &= (a_{ij}),\ \ \,\ a_{ij}=-\frac12d_{ij}^2, \\ B &= H'AH,\ H=I_n-\frac1n1_n1'_n. \\ \end{aligned} dij2​其中,令AB​=(xi​−xj​)′(xi​−xj​),=(aij​),   aij​=−21​dij2​,=H′AH, H=In​−n1​1n​1n′​.​

欧式型距离阵判定定理

一个n×nn\times nn×n的距离阵DDD是欧式型的充要条件是:B⩾0B\geqslant0B⩾0.

证明★\bigstar★

必要性

设距离阵DDD是欧式型的,则由欧式型距离阵的定义可知,存在x1,⋯,xn∈Rpx_1,\,\cdots,\,x_n\in\mathbb{R}^px1​,⋯,xn​∈Rp,使得
dij2=−2aij=(xi−xj)′(xi−xj),d_{ij}^2=-2a_{ij}=(x_i-x_j)'(x_i-x_j), dij2​=−2aij​=(xi​−xj​)′(xi​−xj​),
由B=H′AH,H=In−1n1n1n′B = H'AH,\ H=I_n-\frac1n\mathbf{1}_n\mathbf{1}'_nB=H′AH, H=In​−n1​1n​1n′​可得:
B=H′AH=A−1nAJ−1nJA+1n2JAJ,B=H'AH=A-\dfrac1nAJ-\dfrac1nJA+\dfrac1{n^2}JAJ, B=H′AH=A−n1​AJ−n1​JA+n21​JAJ,
上式中,J=1n1n′J=\mathbf{1}_n\mathbf{1}_n'J=1n​1n′​。并注意到

1nAJ=[aˉ1.aˉ2.⋮aˉn.]1n′,1nJA=1n(aˉ.1,aˉ.2,⋯,aˉ.n),1n2JAJ=aˉ..1n1n′,\dfrac1nAJ=\begin{bmatrix} \bar{a}_{1.}\\ \bar{a}_{2.}\\ \vdots\\ \bar{a}_{n.}\\ \end{bmatrix} \mathbf{1}_n',\ \dfrac1nJA=\mathbf{1}_n(\bar{a}_{.1},\,\bar{a}_{.2},\,\cdots,\,\bar{a}_{.n}),\ \dfrac1{n^2}JAJ=\bar{a}{..}\mathbf{1}_n\mathbf{1}_n', n1​AJ=⎣⎢⎢⎢⎡​aˉ1.​aˉ2.​⋮aˉn.​​⎦⎥⎥⎥⎤​1n′​, n1​JA=1n​(aˉ.1​,aˉ.2​,⋯,aˉ.n​), n21​JAJ=aˉ..1n​1n′​,

其中,
aˉi.=1n∑j=1naij,aˉ.j=1n∑i=1naij,aˉ..=1n2∑i=1n∑j=1naij.\bar{a}_{i.}=\dfrac1n\sum\limits_{j=1}^na_{ij},\ \bar{a}_{.j}=\dfrac1n\sum\limits_{i=1}^na{ij},\ \bar{a}_{..}=\dfrac1{n^2}\sum\limits_{i=1}^n\sum\limits_{j=1}^na_{ij}. aˉi.​=n1​j=1∑n​aij​, aˉ.j​=n1​i=1∑n​aij, aˉ..​=n21​i=1∑n​j=1∑n​aij​.

将上述各式代入 B=H′AH=A−1nAJ−1nJA+1n2JAJB=H'AH=A-\dfrac1nAJ-\dfrac1nJA+\dfrac1{n^2}JAJB=H′AH=A−n1​AJ−n1​JA+n21​JAJ ,得到

bij=aij−aˉi.−aˉ.j+aˉ..,b_{ij}=a_{ij}-\bar{a}_{i.}-\bar{a}_{.j}+\bar{a}_{..}, bij​=aij​−aˉi.​−aˉ.j​+aˉ..​,

再由dij2=−2aij=(xi−xj)′(xi−xj)d_{ij}^2=-2a_{ij}=(x_i-x_j)'(x_i-x_j)dij2​=−2aij​=(xi​−xj​)′(xi​−xj​)式可分别求得aij,aˉi.,aˉ.j,aˉ..a_{ij},\,\bar{a}_{i.},\,\bar{a}_{.j},\,\bar{a}_{..}aij​,aˉi.​,aˉ.j​,aˉ..​,将其代入式bij=aij−aˉi.−aˉ.j+aˉ..b_{ij}=a_{ij}-\bar{a}_{i.}-\bar{a}_{.j}+\bar{a}_{..}bij​=aij​−aˉi.​−aˉ.j​+aˉ..​,得到
bij=aij−aˉi.−aˉ.j+aˉ..=aij−1n∑j=1naij−1n∑i=1naij+1n2∑i=1n∑j=1naij=−12(xi2+xj2−2xixj)+12n[∑j=1n(xi2+xj2−2xixj)+∑i=1n(xi2+xj2−2xixj)]−12n2∑i=1n∑j=1n(xi2+xj2−2xixj)=−12(xi2+xj2−2xixj)+12n(nxi2+∑j=1nxj2−2xi∑j=1nxj+∑i=1nxi2+nxj2−2xj∑i=1nxi)−12n2∑i=1n(nxi2+∑j=1nxj2−2xi∑j=1nxj)=xixj+12n(∑j=1nxj2−2xi∑j=1nxj+∑i=1nxi2−2xj∑i=1nxi)−12n(∑i=1nxi2+∑j=1nxj2−2n∑i=1nxi∑j=1nxj)=xixj−1n(xi∑j=1nxj+xj∑i=1nxi)+1n2∑i=1nxi∑j=1nxj=xixj−xixˉ−xjxˉ+xˉ2=(xi−xˉ)′(xj−xˉ)\begin{aligned} b_{ij} =&a_{ij}-\bar{a}_{i.}-\bar{a}_{.j}+\bar{a}_{..}\\ =&a_{ij}-\frac1n\sum_{j=1}^na_{ij}-\frac1n\sum_{i=1}^na_{ij}+\frac1{n^2}\sum_{i=1}^n\sum_{j=1}^na_{ij} \\ =&-\frac12(x_i^2+x_j^2-2x_ix_j)\\ &+\frac{1}{2n}\left[\sum_{j=1}^n(x_i^2+x_j^2-2x_ix_j)+\sum_{i=1}^n(x_i^2+x_j^2-2x_ix_j)\right]\\ &-\frac{1}{2n^2}\sum_{i=1}^n\sum_{j=1}^n(x_i^2+x_j^2-2x_ix_j)\\ =&-\frac12(x_i^2+x_j^2-2x_ix_j)\\ &+\frac{1}{2n}\left(nx_i^2+\sum_{j=1}^nx_j^2-2x_i\sum_{j=1}^nx_j+\sum_{i=1}^nx_i^2+nx_j^2-2x_j\sum_{i=1}^nx_i\right)\\ &-\frac{1}{2n^2}\sum_{i=1}^n\left(nx_i^2+\sum_{j=1}^nx_j^2-2x_i\sum_{j=1}^nx_j\right) \\ =&x_ix_j+\frac{1}{2n}\left(\sum_{j=1}^nx_j^2-2x_i\sum_{j=1}^nx_j+\sum_{i=1}^nx_i^2-2x_j\sum_{i=1}^nx_i\right)\\ &-\frac{1}{2n}\left(\sum_{i=1}^nx_i^2+\sum_{j=1}^nx_j^2-\frac2n\sum_{i=1}^nx_i\sum_{j=1}^nx_j\right) \\ =&x_ix_j-\frac{1}{n}\left(x_i\sum_{j=1}^nx_j+x_j\sum_{i=1}^nx_i\right)+\frac{1}{n^2}\sum_{i=1}^nx_i\sum_{j=1}^nx_j \\ =&x_ix_j-x_i\bar{x}-x_j\bar{x}+\bar{x}^2=(x_i-\bar{x})'(x_j-\bar{x}) \end{aligned} bij​=======​aij​−aˉi.​−aˉ.j​+aˉ..​aij​−n1​j=1∑n​aij​−n1​i=1∑n​aij​+n21​i=1∑n​j=1∑n​aij​−21​(xi2​+xj2​−2xi​xj​)+2n1​[j=1∑n​(xi2​+xj2​−2xi​xj​)+i=1∑n​(xi2​+xj2​−2xi​xj​)]−2n21​i=1∑n​j=1∑n​(xi2​+xj2​−2xi​xj​)−21​(xi2​+xj2​−2xi​xj​)+2n1​(nxi2​+j=1∑n​xj2​−2xi​j=1∑n​xj​+i=1∑n​xi2​+nxj2​−2xj​i=1∑n​xi​)−2n21​i=1∑n​(nxi2​+j=1∑n​xj2​−2xi​j=1∑n​xj​)xi​xj​+2n1​(j=1∑n​xj2​−2xi​j=1∑n​xj​+i=1∑n​xi2​−2xj​i=1∑n​xi​)−2n1​(i=1∑n​xi2​+j=1∑n​xj2​−n2​i=1∑n​xi​j=1∑n​xj​)xi​xj​−n1​(xi​j=1∑n​xj​+xj​i=1∑n​xi​)+n21​i=1∑n​xi​j=1∑n​xj​xi​xj​−xi​xˉ−xj​xˉ+xˉ2=(xi​−xˉ)′(xj​−xˉ)​

其中xˉ=1n∑i=1nxi\bar{x}=\dfrac1n\sum\limits_{i=1}^nx_ixˉ=n1​i=1∑n​xi​,即对矩阵B的每个元素,有
bij=(xi−xˉ)′(xj−xˉ),b_{ij}=(x_i-\bar{x})'(x_j-\bar{x}), bij​=(xi​−xˉ)′(xj​−xˉ),

将上式写成矩阵形式,并注意到
H=In−1n1n1n′=[11⋱1]n×n−1n[11⋯111⋯1⋮⋮⋱⋮11⋯1]n×n=[1−1n−1n⋯−1n−1n1−1n⋯−1n⋮⋮⋱⋮−1n−1n⋯1−1n]n×n\begin{aligned} H=I_n-\frac1n\mathbf{1}_n\mathbf{1}'_n &=\begin{bmatrix} 1&&\\ &1&\\ &&\ddots&\\ &&&1 \end{bmatrix}_{n\times n}- \frac1n \begin{bmatrix} 1&1&\cdots&1\\ 1&1&\cdots&1\\ \vdots&\vdots&\ddots&\vdots\\ 1&1&\cdots&1 \end{bmatrix}_{n\times n}\\ &= \begin{bmatrix} 1-\frac1n&-\frac1n&\cdots&-\frac1n\\ -\frac1n&1-\frac1n&\cdots&-\frac1n\\ \vdots&\vdots&\ddots&\vdots\\ -\frac1n&-\frac1n&\cdots&1-\frac1n \end{bmatrix}_{n\times n} \end{aligned} H=In​−n1​1n​1n′​​=⎣⎢⎢⎡​1​1​⋱​1​⎦⎥⎥⎤​n×n​−n1​⎣⎢⎢⎢⎡​11⋮1​11⋮1​⋯⋯⋱⋯​11⋮1​⎦⎥⎥⎥⎤​n×n​=⎣⎢⎢⎢⎡​1−n1​−n1​⋮−n1​​−n1​1−n1​⋮−n1​​⋯⋯⋱⋯​−n1​−n1​⋮1−n1​​⎦⎥⎥⎥⎤​n×n​​

X=[x11x12⋯x1px21x22⋯x2p⋮⋮⋱⋮xn1xn2⋯xnp]n×pX=\begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1p}\\ x_{21}&x_{22}&\cdots&x_{2p}\\ \vdots&\vdots&\ddots&\vdots\\ x_{n1}&x_{n2}&\cdots&x_{np} \end{bmatrix}_{n\times p} X=⎣⎢⎢⎢⎡​x11​x21​⋮xn1​​x12​x22​⋮xn2​​⋯⋯⋱⋯​x1p​x2p​⋮xnp​​⎦⎥⎥⎥⎤​n×p​

HX=[1−1n−1n⋯−1n−1n1−1n⋯−1n⋮⋮⋱⋮−1n−1n⋯1−1n][x11x12⋯x1px21x22⋯x2p⋮⋮⋱⋮xn1xn2⋯xnp]n×p=[x11−∑i=1nxi1nx12−∑i=1nxi2n⋯x1p−∑i=1nxipnx21−∑i=1nxi1nx22−∑i=1nxi2n⋯x2p−∑i=1nxipn⋮⋮⋱⋮xn1−∑i=1nxi1nxn2−∑i=1nxi2n⋯xnp−∑i=1nxipn]n×p=[x11−xˉx12−xˉ⋯x1p−xˉx21−xˉx22−xˉ⋯x2p−xˉ⋮⋮⋱⋮xn1−xˉxn2−xˉ⋯xnp−xˉ]n×p=(X1−X‾,X2−X‾,⋯,Xn−X‾)′\begin{aligned} HX&=\begin{bmatrix} 1-\frac1n&-\frac1n&\cdots&-\frac1n\\ -\frac1n&1-\frac1n&\cdots&-\frac1n\\ \vdots&\vdots&\ddots&\vdots\\ -\frac1n&-\frac1n&\cdots&1-\frac1n \end{bmatrix} \begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1p}\\ x_{21}&x_{22}&\cdots&x_{2p}\\ \vdots&\vdots&\ddots&\vdots\\ x_{n1}&x_{n2}&\cdots&x_{np} \end{bmatrix}_{n\times p} \\\\ &=\begin{bmatrix} x_{11}-\frac{\sum\limits_{i=1}^n x_{i1}}{n}&x_{12}-\frac{\sum\limits_{i=1}^n x_{i2}}{n}&\cdots&x_{1p}-\frac{\sum\limits_{i=1}^n x_{ip}}{n}\\ x_{21}-\frac{\sum\limits_{i=1}^n x_{i1}}{n}&x_{22}-\frac{\sum\limits_{i=1}^n x_{i2}}{n}&\cdots&x_{2p}-\frac{\sum\limits_{i=1}^n x_{ip}}{n}\\ \vdots&\vdots&\ddots&\vdots\\ x_{n1}-\frac{\sum\limits_{i=1}^n x_{i1}}{n}&x_{n2}-\frac{\sum\limits_{i=1}^n x_{i2}}{n}&\cdots&x_{np}-\frac{\sum\limits_{i=1}^n x_{ip}}{n} \end{bmatrix}_{n\times p}\\ &=\begin{bmatrix} x_{11}-\bar{x}&x_{12}-\bar{x}&\cdots&x_{1p}-\bar{x}\\ x_{21}-\bar{x}&x_{22}-\bar{x}&\cdots&x_{2p}-\bar{x}\\ \vdots&\vdots&\ddots&\vdots\\ x_{n1}-\bar{x}&x_{n2}-\bar{x}&\cdots&x_{np}-\bar{x} \end{bmatrix}_{n\times p}\\ &=(X_1-\overline{X},\,X_2-\overline{X},\,\cdots,\,X_n-\overline{X})'\\ \end{aligned} HX​=⎣⎢⎢⎢⎡​1−n1​−n1​⋮−n1​​−n1​1−n1​⋮−n1​​⋯⋯⋱⋯​−n1​−n1​⋮1−n1​​⎦⎥⎥⎥⎤​⎣⎢⎢⎢⎡​x11​x21​⋮xn1​​x12​x22​⋮xn2​​⋯⋯⋱⋯​x1p​x2p​⋮xnp​​⎦⎥⎥⎥⎤​n×p​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​x11​−ni=1∑n​xi1​​x21​−ni=1∑n​xi1​​⋮xn1​−ni=1∑n​xi1​​​x12​−ni=1∑n​xi2​​x22​−ni=1∑n​xi2​​⋮xn2​−ni=1∑n​xi2​​​⋯⋯⋱⋯​x1p​−ni=1∑n​xip​​x2p​−ni=1∑n​xip​​⋮xnp​−ni=1∑n​xip​​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​n×p​=⎣⎢⎢⎢⎡​x11​−xˉx21​−xˉ⋮xn1​−xˉ​x12​−xˉx22​−xˉ⋮xn2​−xˉ​⋯⋯⋱⋯​x1p​−xˉx2p​−xˉ⋮xnp​−xˉ​⎦⎥⎥⎥⎤​n×p​=(X1​−X,X2​−X,⋯,Xn​−X)′​

其中Xi=(xi1,xi2,⋯,xip),i=1,2,⋯,nX_i=(x_{i1},\,x_{i2},\,\cdots,\,x_{ip}),\ \ i=1,\,2,\,\cdots,\,nXi​=(xi1​,xi2​,⋯,xip​),  i=1,2,⋯,n.

于是得到B=(HX)(HX)′B=(HX)(HX)'B=(HX)(HX)′,用任一nnn维列向量α\alphaα构造二次型可知,
α′Bα=α′(HX)(HX)′α=α′(HX)[α′(HX)]′=∥α′HX∥2⩾0,\alpha' B\alpha=\alpha'(HX)(HX)'\alpha=\alpha'(HX)[\alpha'(HX)]'=\|\alpha' HX\|^2\geqslant0, α′Bα=α′(HX)(HX)′α=α′(HX)[α′(HX)]′=∥α′HX∥2⩾0,
所以BBB为半正定阵,必要性得证,下证充分性。

充分性

记p=rank(B),λ1,λ2,⋯,λpp=\mathrm{rank}(B),\,\lambda_1,\,\lambda_2,\,\cdots,\,\lambda_pp=rank(B),λ1​,λ2​,⋯,λp​为BBB的正特征根,x(1),⋯,x(p)x_{(1)},\,\cdots,\,x_{(p)}x(1)​,⋯,x(p)​为对应的特征向量。

由已知条件,B⩾0B\geqslant0B⩾0,根据施密特正交化方法得

B=H′AH=ΓΛΓ′B=H'AH=\varGamma\Lambda\varGamma' B=H′AH=ΓΛΓ′

其中Λ=diag(λ1,λ2,⋯,λp),λ1⩾⋯⩾λp\Lambda=\mathrm{diag}(\lambda_1,\,\lambda_2,\,\cdots,\,\lambda_p),\,\lambda_1\geqslant\cdots\geqslant\lambda_pΛ=diag(λ1​,λ2​,⋯,λp​),λ1​⩾⋯⩾λp​为BBB的ppp个正特征根Γ=XΛ−12,Γ\varGamma=X\Lambda^{-\frac12},\,\varGammaΓ=XΛ−21​,Γ的ppp个列为对应的ppp个标准正交化的特征向量。

取X=ΓΛ12X=\varGamma\Lambda^{\frac12}X=ΓΛ21​,为一n×pn\times pn×p阶矩阵。将XXX写成X=(x1,x2,⋯,xn)′=(x(1),x(2),⋯,x(p))X=(x_1,\,x_2,\,\cdots,\,x_n)'=(x_{(1)},\,x_{(2)},\,\cdots,\,x_{(p)})X=(x1​,x2​,⋯,xn​)′=(x(1)​,x(2)​,⋯,x(p)​),于是有
X′X=(ΓΛ12)′(ΓΛ12)=Λ,B=XX′,X'X=(\varGamma\Lambda^{\frac12})'(\varGamma\Lambda^{\frac12})=\Lambda,\ B=XX', X′X=(ΓΛ21​)′(ΓΛ21​)=Λ, B=XX′,
即bij=xi′xjb_{ij}=x_i'x_jbij​=xi′​xj​。由此得到xix_ixi​与xjx_jxj​两点的距离平方
(xi−xj)′(xi−xj)=xi′xi−2xi′xj+xj′xj=bii−2bij+bjj=aii−2aij+ajj=−2aij=dij2\begin{aligned} (x_i-x_j)'(x_i-x_j) &= x_i'x_i-2x_i'x_j+x_j'x_j=b_{ii}-2b_{ij}+b_{jj}\\ &= a_{ii}-2a_{ij}+a_{jj}= -2a_{ij}=d_{ij}^2 \end{aligned} (xi​−xj​)′(xi​−xj​)​=xi′​xi​−2xi′​xj​+xj′​xj​=bii​−2bij​+bjj​=aii​−2aij​+ajj​=−2aij​=dij2​​
根据上述推导可知:存在正整数ppp和一个n×pn\times pn×p阶矩阵X=x1,x2,⋯,xn)=ΓΛ12X=x_1,\,x_2,\,\cdots,\,x_n)=\varGamma\Lambda^{\frac12}X=x1​,x2​,⋯,xn​)=ΓΛ21​,使得XXX是DDD的构造点,所以DDD为欧式型。

MDS古典解计算步骤

  1. 由距离阵D=(dij)D=(d_{ij})D=(dij​) 构造矩阵A=(aij)=−12dij2A=(a_{ij})=-\dfrac12d_{ij}^2A=(aij​)=−21​dij2​;

  2. 令矩阵B=(bij)B=(b_{ij})B=(bij​), 其中bij=aij−a‾i.−a‾.j+a‾..b_{ij}=a_{ij}-\overline{a}_{i.}-\overline{a}_{.j}+\overline{a}_{..}bij​=aij​−ai.​−a.j​+a..​;

  3. 求矩阵BBB的特征根λ1⩾λ2⩾⋯⩾λn\lambda_1\geqslant\lambda_2\geqslant\cdots\geqslant\lambda_nλ1​⩾λ2​⩾⋯⩾λn​, 若无负特征根,表明B⩾0B\geqslant 0B⩾0, 从而距离阵DDD是欧式型的; 若有负特征根,距离阵DDD一定不是欧式型的。此时令

    a1,k=∑i=1kλi∑i=1n∣λi∣,a2,k=∑i=1kλi2∑i=1nλi2,a_{1,\,k}=\dfrac{\sum\limits_{i=1}^k\lambda_i}{\sum\limits_{i=1}^n|\lambda_i|},\quad a_{2,\,k}=\dfrac{\sum\limits_{i=1}^k\lambda_i^2}{\sum\limits_{i=1}^n\lambda_i^2}, a1,k​=i=1∑n​∣λi​∣i=1∑k​λi​​,a2,k​=i=1∑n​λi2​i=1∑k​λi2​​,
    上面两个量相当于主成分分析(PCA)中的累积贡献率;

  4. 令X^=(x^(1),⋯,x^(k))\hat{X}=\big(\hat{x}_{(1)},\,\cdots,\,\hat{x}_{(k)}\big)X^=(x^(1)​,⋯,x^(k)​), 则X^\hat{X}X^的行向量x1,⋯,xnx_1,\,\cdots,\,x_nx1​,⋯,xn​即为待求的古典解。

R语言实现

方法一:使用内置的cmdscale()函数

直接输入距离阵即可进行求解

方法二:使用自定义函数

根据定义及计算步骤编写自定义函数

# 输入距离阵D
calc_mds <- function(D) {dim <- nrow(D)A <- -1/2*D^2onen <- matrix(rep(1, dim), nrow=dim)H <- diag(dim) - 1/dim * onen %*% t(onen)B <- t(H) %*% A %*% Hval <- eigen(B, symmetric=F)$valuesvec <- eigen(B, symmetric=F)$vectorsif (all(val>=0)) {MDS <- vec[,1:2] %*% diag(sqrt(val[1:2])); data.frame(points = round(MDS, 3))}else print("距离阵非欧式型!")}MDS <- calc_mds(D)
plot(MDS)

参考文献

[1] 王斌会. 多元统计分析及R语言建模(第四版). 暨南大学出版社. 2016.

多维标度法MDS古典解的证明与R语言实现相关推荐

  1. 多维标度法(MDS,Multidimensional Scaling)及普氏分析(Procrustes Analysis)在人体姿态关节点上的简单示例(python)

    多维标度法(MDS,Multidimensional Scaling) 多维标度法一个简单的应用示例就是,已知一组城市之间的相对距离关系(相似矩阵),如何求解出各个城市在地图上的位置,使其尽可能满足前 ...

  2. r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS

    定义:利用客体间相似性数据去解释它们之间的空间关系的统计分析方法 多维变量--二维三维空间表示,标度到低维空间上 种类: 度量化模型:相似性数据游距离.比例尺度测得 非度量化模型:顺序量表(有序)水平 ...

  3. Matlab 多维标度,详解多维标度法(MDS,Multidimensional scaling)

    流形学习(Manifold Learning)是机器学习中一大类算法的统称,而MDS就是其中非常经典的一种方法.多维标度法(Multidimensional Scaling)是一种在低维空间展示&qu ...

  4. r语言plotmds_在R语言中使用MDS(多维标度法)

    多维标度法(Multidimensional Scaling),是一种维数缩减方法,把高维的数据点映射到一个低维的流形上:同时也是一种可视化方法,实践中通常利用2D或3D的MDS 结果观察(投影后)点 ...

  5. mds算法python函数_多维标度法(MDS)的Python实现

    标签: 多维标度法(multidimensional scaling,MDS)是一种在低维空间展示"距离"数据结构的多元数据分析技术,是一种将多维空间的研究对象( 样本 或 变量 ...

  6. {降维} ISOMAP等距特征映射 MDS多维标度法

    首发:https://zhuanlan.zhihu.com/p/60599491 介绍两种降维方法 镇楼_MDS: http://www.utdallas.edu/~herve/Abdi-MDS200 ...

  7. 数学建模常用模型18 :多维标度法

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

  8. 多维尺度分析MDS详解

    一 概述 MDS的初衷是将图结构中的距离在空间的一种表示.例如,已知几个城市的距离,但是不知道城市的坐标,那么MDS就能通过距离矩阵转换成空间坐标向量来近似描述距离.更重要地是,MDS可以更广泛地应用 ...

  9. R语言绘制二维密度图

    R语言绘制二维密度图 二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示.二维密度图有几种类型,以下主要 ...

最新文章

  1. R语言使用yardstick包的lift_curve函数评估多分类(Multiclass)模型的性能、并使用autoplot函数可视化模型在每个交叉验证(或者重采样)的每一折fold在每个分类上的提升
  2. 自动驾驶,别再谈「接管」色变了
  3. 2016 实习招聘面试经历 - 3
  4. 让对方ping不通你的主机
  5. arcengine遍历属性表_记录一次Hive表清理过程
  6. 【干货】专注用户体验,用最小代价验证你想法的可执行性
  7. hdu 6962 I love tree 线段树维护二次函数
  8. P5048-[Ynoi2019 模拟赛]Yuno loves sqrt technology III【分块】
  9. BAT教程 :第五节(set命令详解)
  10. Selenium自动化测试-3.元素定位(3)
  11. 关于前端浏览器 IE6bug 解决方案
  12. 内蒙古电大计算机考试成绩查询成绩查询,中考查分系统
  13. 微信小程序的Django后端极简部署
  14. hdu2037-简单dp
  15. pika异步consumer简单使用
  16. unix 增强工具_适用于任何UNIX系统的10种出色工具
  17. HTML的背景颜色和背景图片
  18. python海龟漂亮图案代码大全_带有海龟图案的Python花
  19. html手机陀螺仪,手机中的陀螺仪竟然也不值得信任
  20. MyBatis(一)MyBatis概述

热门文章

  1. 比赛-暑假训练赛1 (26 Jul, 2018)
  2. 用自己电脑做服务器,建个人网站
  3. 探索Windows命令行系列(7):通过命令编译C#类和Java类
  4. Hibernate一张图
  5. python编程挑战——使用python实现恩格玛机(1)
  6. Linux下通配符总结
  7. oopc——5.多态
  8. 用子函数实现strlen.strcpy.strcat.strcmp(完整代码)
  9. libssl-dev linux下载,libssl
  10. 专家论道,把脉数据库技术发展新方向