当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R isoMDS Kruskal 的非度量多维标度


R语言 isoMDS 位于 MASS 包(package)。

说明

非度量多维标度的一种形式

用法

isoMDS(d, y = cmdscale(d, k), k = 2, maxit = 50, trace = TRUE,
       tol = 1e-3, p = 2)

Shepard(d, x, p = 2)

参数

d

dist 返回形式的距离结构,或完整的对称矩阵。数据假定为差异或相对距离,但必须为正值,self-distance 除外。缺失值和无限值都是允许的。

y

初始配置。如果未提供任何内容,则使用 cmdscale 来提供经典解决方案,除非存在缺失或无限的差异。

k

解决方案所需的维度,传递给 cmdscale

maxit

最大迭代次数。

trace

跟踪优化的逻辑。默认TRUE

tol

收敛容差。

p

配置空间中闵可夫斯基距离的幂。

x

最终配置。

细节

这会选择k-dimensional(默认 k = 2)配置来最小化应力,即输入距离与配置距离之差的平方和与配置距离平方和之比的平方根。然而,输入距离允许单调变换。

使用迭代算法,通常会在 10 次迭代左右收敛。由于这必然是 计算,因此对于大型数据集来说速度很慢。此外,由于对于默认的 ,配置仅取决于旋转和反射(按照惯例,质心位于原点),因此不同机器的结果可能会有很大差异。

两个组成部分:

points

拟合配置的 k-column 向量。

stress

最终达到的应力(百分比)。

副作用

如果 trace 为 true,则每 5 次迭代打印出初始应力和当前应力。

例子

swiss.x <- as.matrix(swiss[, -1])
swiss.dist <- dist(swiss.x)
swiss.mds <- isoMDS(swiss.dist)
plot(swiss.mds$points, type = "n")
text(swiss.mds$points, labels = as.character(1:nrow(swiss.x)))
swiss.sh <- Shepard(swiss.dist, swiss.mds$points)
plot(swiss.sh, pch = ".")
lines(swiss.sh$x, swiss.sh$yf, type = "S")

参考

T. F. Cox and M. A. A. Cox (1994, 2001) Multidimensional Scaling. Chapman & Hall.

Ripley, B. D. (1996) Pattern Recognition and Neural Networks. Cambridge University Press.

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

也可以看看

cmdscale , sammon

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Kruskal's Non-metric Multidimensional Scaling。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。