import javastat.multivariate.PCA;

 

/**

 *

 * <p>Example: class PCA.</p>

 * <p>Data Source: S-PLUS 6 for Windows Guide to Statistics, Volume 2,

 *    Insightful Corporation, Seattle, WA.,  pp. 40-41.</p>

 */

 

double[][] testscores = { {36, 62, 31, 76, 46, 12, 39, 30, 22, 9, 32,

                     40, 64, 36, 24, 50, 42, 2, 56, 59, 28, 19,

                     36, 54, 14},

                    {58, 54, 42, 78, 56, 42, 46, 51, 32, 40, 49,

                     62, 75, 38, 46, 50, 42, 35, 53, 72, 50, 46,

                     56, 57, 35},

                    {43, 50, 41, 69, 52, 38, 51, 54, 43, 47, 54,

                     51, 70, 58, 44, 54, 52, 32, 42, 70, 50, 49,

                     56, 59, 38},

                    {36, 46, 40, 66, 56, 38, 54, 52, 28, 30, 37,

                     40, 66, 62, 55, 52, 38, 22, 40, 66, 42, 40,

                     54, 62, 29},

                    {37, 52, 29, 81, 40, 28, 41, 32, 22, 24, 52,

                     49, 63, 62, 49, 51, 50, 16, 32, 62, 63, 30,

                     52, 58, 20} };

 

testclass1 = new PCA(0.95, "covariance", testscores);

print("1st component vector (non-null constructor)    = [" +

     testclass1.principalComponents[0][0] + "  " +

         testclass1.principalComponents[0][1] + "  " +

     testclass1.principalComponents[0][2] + "  " +

     testclass1.principalComponents[0][3] + "  " +

     testclass1.principalComponents[0][4] + "]");

print("2nd component vector (non-null constructor)    = [" +

     testclass1.principalComponents[1][0] + "  " +

         testclass1.principalComponents[1][1] + "  " +

     testclass1.principalComponents[1][2] + "  " +

     testclass1.principalComponents[1][3] + "  " +

     testclass1.principalComponents[1][4] + "]");

print("variances of components (non-null constructor) = [" +

     testclass1.variance[0] + "  " + testclass1.variance[1] + "  " +

         testclass1.variance[2] + "  " + testclass1.variance[3] + "]");

 

testclass2 = new PCA();

principalComponents = testclass2.principalComponents(testscores);

variance = testclass2.variance(testscores);

print("1st component vector (null constructor)        = [" +

     testclass2.principalComponents[0][0] + "  " +

         testclass2.principalComponents[0][1] + "  " +

     testclass2.principalComponents[0][2] + "  " +

     testclass2.principalComponents[0][3] + "  " +

     testclass2.principalComponents[0][4] + "]");

print("2nd component vector (null constructor)        = [" +

     testclass2.principalComponents[1][0] + "  " +

         testclass2.principalComponents[1][1] + "  " +

     testclass2.principalComponents[1][2] + "  " +

     testclass2.principalComponents[1][3] + "  " +

     testclass2.principalComponents[1][4] + "]");

print("variances of components (null constructor)     = [" +

     testclass2.variance[0] + "  " + testclass2.variance[1] + "  " +

         testclass2.variance[2] + "  " + testclass2.variance[3] + "]");

 

Results:

1st component vector (non-null constructor)      

= [0.598  0.361  0.302  0.389  0.519]

2nd component vector (non-null constructor)     

= [-0.675  -0.245  0.214  0.338  0.57]

variances of components (non-null constructor)   

= [845.481  85.041  45.388  39.188]

1st component vector (null constructor)

= [0.443  0.437  0.462  0.445  0.449]

2nd component vector (null constructor)

= [-0.473  -0.616  0.276  0.470  0.317]

variances of components (null constructor)

= [4.081  0.374  0.217  0.205]