

sammon(multiv)                               R Documentation

_S_a_m_m_o_n_'_s _N_o_n_-_L_i_n_e_a_r _M_a_p_p_i_n_g

_D_e_s_c_r_i_p_t_i_o_n_:

     Finds a new, reduced-dimensionality, coordinate system
     for multivariate data such that the an error criterion
     between distances in the given space, and distances in
     the result space, is minimized.

_U_s_a_g_e_:

     sammon(a, p=2, maxit=100, tol=0.05, alpha=0.3, diagnostics=F)

_A_r_g_u_m_e_n_t_s_:

       a: input matrix, coordinate data. No missing values.

       p: dimensionality of output space.

     tol: tolerance on error criterion.

   alpha: step size for gradient descent optimization.

diagnostics: whether or not error value is output at each
          step of the iterative optimization.

_V_a_l_u_e_:

     projections in the new space.

   rproj: matrix of projections of the row observations, as
          yielded by the nonlinear mapping algorithm.

_N_O_T_E_:

     It may be useful to run this routine a number of times
     and to keep the result yielding the smallest error.
     This mapping error, and the number of iterations
     required for convergence, are output to the command
     window.

_R_e_f_e_r_e_n_c_e_s_:

     W. Siedlecki, K. Siedlecka and J. Sklansky, An overview
     of mapping techniques for exploratory pattern analysis,
     Pattern Recognition, 21, 411-429, 1988.

     J.W. Sammon, A nonlinear mapping for data structure
     analysis, IEEE Trans. Computers, C-18, 401-409, 1969.

_E_x_a_m_p_l_e_s_:

     # Assume the 150x4 iris data matrix is in `iris.var'.
     mds <- sammon(iris.var, tol=0.05, maxit=200)
     # Now plot observations 1-50, 51-100 and 101-150 distinctively;
     # add a set of axes through x=0 and y=0.
     plot(mds$rproj[,1], mds$rproj[,2], type="n", xlab="Axis 1", ylab="Axis 2",
     main="2-d Sammon mapping of iris data")
     points(mds$rproj[1:50,1], mds$rproj[1:50,2], pch="*")
     points(mds$rproj[51:100,1], mds$rproj[51:100,2], pch="+")
     points(mds$rproj[101:150,1], mds$rproj[101:150,2], pch="o")
     plaxes(mds$rproj[,1], mds$rproj[,2])

