STRIP_PLOT Function
Analyzes data from strip-plot experiments. STRIP_PLOT also analyzes strip-plot experiments replicated at several locations.
Usage
result = STRIP_PLOT (n, n_locations, n_strip_a, n_strip_b, block, strip_a, strip_b, y)
Input Parameters
n—Number of missing and non-missing experimental observations. STRIP_PLOT verifies that:
where N_blocksi is equal to the number of blocks or replicates at the ith location.
n_locations—Number of locations. n_locations must be one or greater. If n_locations > 1 then the Locations keyword must be included as input to STRIP_PLOT. See the Locations keyword.
n_strip_a—Number of levels associated with the strip factor A. n_strip_a must be greater than one.
n_strip_b—Number of levels associated with the strip factor B. n_strip_b must be greater than one.
block—Array of length n containing the block identifiers for each observation in y. Locations can have different numbers of blocks. Each block at a single location must be assigned a different identifier, but different locations can have the same assignments.
strip_a—Array of length n containing the factor A strip-plot identifiers for each observation in y. Each level of this factor must be assigned a different integer. This routine verifies that the number of unique factor A strip-plot identifiers is equal to n_strip_a.
strip_b—Array of length n containing the factor B strip-plot identifiers for each observation in y. Each level of this factor must be assigned a different integer. This routine verifies that the number of unique factor B strip-plot identifiers is equal to n_strip_b.
y—Array of length n containing the experimental observations and any missing values. Missing values cannot be omitted. They are indicated by placing a NaN (Not a Number) at the appropriate positions in y. NaN can be defined by calling the MACHINE function. For example:
x = MACHINE(/Float)
y(i) = x.NaN
The location, strip-plot A, and strip-plot B for each observation in y are identified by the corresponding values in the input parameters strip_a, strip_b, and the Locations keyword.
Returned Value
result—A two dimensional, 12 by 6 array containing the ANOVA table. Each row in this array contains values for one of the effects in the ANOVA table. The first value in each row, anova_tablei,0 = anova_table(i,0), identifies the source for the effect associated with values in that row. The remaining values in a row contain the ANOVA table values using the convention found in Table 5-55: ANOVA Table Values.
 
ANOVA Table Values
J
anova_tablei,j = anova_table(i,j)
0
Source Identifier (values described below)
1
Degrees of freedom
2
Sum of squares
3
Mean squares
4
F-statistic
5
p-value for this F-statistic
The Source Identifiers in the first column of anova_tablei,j are the only negative values in anova_table. Assignments of identifiers to ANOVA sources use the coding shown in Table 5-56: ANOVA Assignment Identifiers.
 
 
ANOVA Assignment Identifiers
Source Identifier
ANOVA Source
-1
LOCATIONS*
-2
BLOCK WITHIN LOCATION
-3
STRIP-PLOT A
-4
LOCATION × STRIP-PLOT A*
-5
STRIP-PLOT A ERROR
-6
STRIP-PLOT B
-7
LOCATION × STRIP-PLOT B*
-8
STRIP-PLOT B ERROR
-9
STRIP-PLOT A × STRIP-PLOT B
-10
LOCATION × STRIP-PLOT A × STRIP-PLOT B*
-11
STRIP-PLOT A × STRIP-PLOT B ERROR
-12
CORRECTED TOTAL
* If n_locations = 1 sources involving location are set to missing (NaN).
Input Keywords
Double—If present and nonzero, double precision is used.
Locations—Array of length n containing the location identifiers for each observation in y. Unique integers must be assigned to each location in the study. This keyword is required when n_locations > 1.
Output Keywords
N_missing—Number of missing values, if any, found in y. Missing values are denoted with a NaN (Not a Number) value.
Cv—Array of length 3 containing the whole-plot, split-plot and sub-plot coefficients of variation. cv(0) contains the whole-plot C.V., cv(1) contains the split-plot C.V., and cv(2) contains the sub-plot C.V.
Grand_mean—Mean of all the data across every location.
Strip_plot_a_means—Array of length n_strip_a containing the factor A strip-plot means.
Strip_plot_b_means—Array of length n_strip_b containing the factor B strip-plot means.
Treatment_means—Array of size (n_split_a by n_split_b) containing the treatment means. For i > 0 and j > 0, Treatment_meansi,j contains the mean of the observations, averaged over all locations, blocks and replicates, for the ith level of the factor A strip-plot and the jth level of the factor B strip-plot.
Std_errors—Array of length 10 containing five standard errors and their associated degrees of freedom. The standard errors are in the first five elements and their associated degrees of freedom are reported in Std_errors(5) through Std_errors(9). Refer to Table 5-57: Standard Errors for a list of the standard errors and their associated degrees of freedom.
 
Standard Errors
Element
Standard Error for Comparisons Between Two
Degrees of Freedom
Std_errors(0)
Factor A Strip-Plot Means
Std_errors(5)
Std_errors(1)
Factor B Strip-Plot Means
Std_errors(6)
Std_errors(2)
Factor A Strip-Plot Means at the same level of Factor B
Std_errors(7)
Std_errors(3)
Factor B Strip-Plot Means at the same level of Factor A
Std_errors(8)
Std_errors(4)
Treatment Means (same strip-plot A and strip-plot B)
Std_errors(9)
N_blocks—Array of length n_locations containing the number of blocks, or replicates, at each location.
Location_anova_table—A 3-dimensional array of size n_locations by 12 by 6 containing the ANOVA tables associated with each location. For each location, the 12 by 6 dimensional array corresponds to the Anova table for that location. For example, Location_anova_table(i,j,k) contains the value in the kth column and jth row of the returned ANOVA table for the ith location.
Anova_row_labels—Array containing the labels for each of the rows of the returned ANOVA table. The label for the ith row of the ANOVA table can be printed with PRINT, Anova_row_labels(i).
Discussion
STRIP_PLOT is capable of analyzing a wide variety of strip-plot experiments. The essential distinction between strip-plot and split-plot experiments is the application of factor B. In a split-plot experiment, levels of factor B are nested within factor A, see Table 5-59: Split-Plot Experiments—Split-Plot B Nested within Strip-Plot A. In strip-plot experiments, factors A and B are completely crossed, see Table 5-58: Strip-Plot Experiments—Strip-Plots Completely Crossed. This occurs, for example, when an agricultural field is used as a block and the levels of factor A are applied in vertical strips across the entire field. Levels of factor B are assigned to horizontal strips across the same block.
 
Strip-Plot Experiments—Strip-Plots Completely Crossed
 
 
Strip Plot Factor A
 
 
A2
A1
A4
A3
Strip
Plot
Factor B
B3
A2B3
A1B3
A4B3
A3B3
B1
A2B1
A1B1
A4B1
A3B1
B2
A2B2
A1B2
A4B2
A3B2
 
Split-Plot Experiments—Split-Plot B Nested within Strip-Plot A
Whole Factor Plot
A2
A1
A4
A3
A2B1
A1B3
A4B1
A3B3
A2B3
A1B1
A4B3
A3B1
A2B2
A1B2
A4B2
A3B2
In some studies, a strip-plot experiment is replicated at several locations. STRIP_PLOT can analyze strip-plot experiments replicated at multiple locations, even when the number of blocks or replicates at each location are different. If only a single replicate or block is used at each location, then location should be treated as a blocking factor, with n_locations set equal to one. If n_locations = 1, it is assumed that the experiment was conducted at a single location with more than one block or replicate at that location. In this case, the four entries associated with location in the ANOVA table will contain missing values.
However, if n_locations > 1, it is assumed the experiment was repeated at multiple locations, with blocking occurring at each location. Although the number of blocks at each location can be different, the number of levels for the factor A and B strip-plots must be the same at each location. The locations associated with each of the observations in y are specified in the keyword Locations, which is a required input keyword when n_locations > 1.
Locations are assumed to be random effects, then tests involving factor A strip-plots use the interaction between factor A strip-plots and locations as the error term for testing whether there are statistically significant differences among the levels of factor A. However, this assumes that the interaction of factor A and locations is not statistically significant. A test of this assumption is included in the ANOVA table. If the interaction between factor A strip-plots and locations is statistically significant, then the nature of that interaction should be explored since it impacts the interpretation of the significance of the factor A.
Similarly, when locations are assumed to be random effects, tests involving factor B do not use the strip-plot B errors pooled across locations. Instead, the error term for factor B is the interaction between locations and factor B.
Example
This example uses data from a strip-plot design with two levels for the first strip and four for the last strip.
; Total number of observations
n = 24
; Number of locations
n_locations = 1
; Number of factor A strip-plots within a location
n_strip_a = 2
; Number of factor B strip-plots within a location
n_strip_b = 4
 
block = [1, 1, 1, 1, 1, 1, 1, 1, $
         2, 2, 2, 2, 2, 2, 2, 2, $
         3, 3, 3, 3, 3, 3, 3, 3]
strip_a = [1, 1, 1, 1, 2, 2, 2, 2, $
           1, 1, 1, 1, 2, 2, 2, 2, $
           1, 1, 1, 1, 2, 2, 2, 2]
strip_b = [1, 2, 3, 4, 1, 2, 3, 4, $
           1, 2, 3, 4, 1, 2, 3, 4, $
           1, 2, 3, 4, 1, 2, 3, 4]
y = [30.0, 40.0, 38.9, 38.2, $
     41.8, 52.2, 54.8, 58.2, $
     20.5, 26.9, 21.4, 25.1, $
     26.4, 36.7, 28.9, 35.9, $
     21.0, 25.4, 24.0, 23.3, $
     34.4, 41.0, 33.0, 34.9]
 
aov = STRIP_PLOT(n, n_locations, n_strip_a, n_strip_b, $
                 block, strip_a, strip_b, y, $
                 N_missing=n_missing, Cv=cv, $
                 Grand_mean=grand_mean, $
                 Strip_plot_a_means=strip_plot_a_means, $
                 Strip_plot_b_means=strip_plot_b_means, $
                 Treatment_means=treatment_means, $
                 Std_errors=std_errors, $
                 N_blocks=n_blocks, $
                 Location_anova_table=location_anova_table, $
                 Anova_row_labels=anova_row_labels)
 
labels = ['Location            ', $
          'Block Within        ', $
          '  Location          ', $
          'Strip-Plot A        ', $
          'Location x          ', $
          '  Strip-Plot A      ', $
          'Strip-Plot A Error  ', $
          'Strip-Plot B        ', $
          'Location x          ', $
          '  Strip-Plot B      ', $
          'Strip-Plot B Error  ', $
          'Strip-Plot A x      ', $
          '  Strip-Plot B      ', $
          'Location x          ', $
          '  Strip-Plot A x    ', $
          '  Strip-Plot B      ', $
          'Strip-Plot A x      ', $
          '  Strip-Plot B Error', $
          'Corrected Total     ' ]
 
idx = 0
; Print Analysis of Variance Table
PRINT, "             *** ANALYSIS OF VARIANCE TABLE ***"
PRINT, 'ID', 'DF', 'SSQ', 'MS', 'F-Test', 'p-Value', $
  Format='(A24, A5, A9, A8, A7, A8)' & $
FOR i=0L, (SIZE(aov))(1)-1 DO BEGIN & $
   PRINT, labels(idx), aov(i,0), aov(i,1), aov(i,2), $
     aov(i,3), aov(i,4), aov(i,5), Format= '(A20, 1X, ' + $
     'I3, 2X, F3.0, 2X, F7.2, 2X, F6.2, 2X, F5.2, 2X, ' + $
     'F6.3)' & $
   idx = idx + 1 & $
   IF idx LT N_ELEMENTS(labels)-1 THEN $
      WHILE STRPOS(labels(idx), ' ', 0) EQ 0 DO BEGIN & $
         PRINT, labels(idx) & idx = idx + 1 & $
      ENDWHILE & $
ENDFOR
 
PRINT, ''
PRINT, grand_mean, Format="('Grand mean: ', F9.6, '\012')"
 
PM, treatment_means, Title="Treatment means"
PRINT, ''
PRINT, 'Standard Error for Comparing Two Treatment Means:'
PRINT, std_errors(2), std_errors(7), $
  Format="('  Same Level of Factor B          ', F8.6, " + $
  "' (df=', F9.6, ')')"
PRINT, std_errors(3), std_errors(8), $
  Format="('  Same Level of Factor A          ', F8.6, " + $
  "' (df=', F9.6, ')')"
PRINT, std_errors(4), std_errors(9), $
  Format="('  Different Factor A and B Levels ', F8.6, " + $
  "' (df=', F9.6, ')')"
PRINT, ''
 
PM, strip_plot_a_means, Title="Factor A Means"
PRINT, ''
 
PRINT, "Standard Error for Comparing Two Factor A Means:"
PRINT, std_errors(0), std_errors(5), $
  Format="(F10.6, ' (df=', F8.6, ')')"
PRINT, ''
 
; Perform multiple comparison of strip_plot_a_means using
; the LSD procedure
equal_means = MULTICOMP(strip_plot_a_means, std_errors(5), $
                        std_errors(0)/SQRT(2), /LSD, $
                        Alpha=0.05)
; Print multiple comparison results
PM, equal_means, $
  Title="LSD Comparison: Size of Groups of Means"
PRINT, ''
 
; Print Factor B Means
PM, strip_plot_b_means, Title="Factor B Means"
PRINT, ''
 
PRINT, "Standard Error for Comparing Two Factor B Means:"
PRINT, std_errors(1), std_errors(6), $
  Format="(F10.6, ' (df=', F8.6, ')')"
 
; Perform multiple comparison of strip_plot_b_means
; using the LSD procedure
equal_means = MULTICOMP(strip_plot_b_means, std_errors(6), $
                        std_errors(1)/SQRT(2), /LSD, $
                        Alpha=0.05)
PRINT, ''
 
; Print multiple comparison results
PM, equal_means, $
  Title="LSD Comparison: Size of Groups of Means"
Output
             *** ANALYSIS OF VARIANCE TABLE ***
                      ID   DF      SSQ      MS F-Test p-Value
Location              -1  NaN      NaN     NaN    NaN     NaN
Block Within          -2   2.  1310.28  655.14  19.89   0.009
  Location          
Strip-Plot A          -3   1.   858.01  858.01  40.37   0.024
Location x            -4  NaN      NaN     NaN    NaN     NaN
  Strip-Plot A      
Strip-Plot A Error    -5   2.    42.51   21.26   4.62   0.061
Strip-Plot B          -6   3.   227.73   75.91   4.66   0.052
Location x            -7  NaN      NaN     NaN    NaN     NaN
  Strip-Plot B      
Strip-Plot B Error    -8   6.    97.76   16.29   3.54   0.075
Strip-Plot A x        -9   3.    13.40    4.47   0.97   0.466
  Strip-Plot B      
Location x           -10  NaN      NaN     NaN    NaN     NaN
  Strip-Plot A x    
  Strip-Plot B      
Strip-Plot A x       -11   6.    27.63    4.60    NaN     NaN
  Strip-Plot B Error
Corrected Total      -12  23.  2577.33     NaN    NaN     NaN
 
Grand mean: 33.870834
 
Treatment means
      23.8333      30.7667      28.1000      28.8667
      34.2000      43.3000      38.9000      43.0000
 
Standard Error for Comparing Two Treatment Means:
  Same Level of Factor B          2.417643 (df= 4.772558)
  Same Level of Factor A          2.639322 (df= 9.140634)
  Different Factor A and B Levels 3.121075 (df= 8.405353)
 
Factor A Means
      27.8917
      39.8500
 
Standard Error for Comparing Two Factor A Means:
  1.882171 (df=2.000000)
 
LSD Comparison: Size of Groups of Means
           0
 
Factor B Means
      29.0167
      37.0333
      33.5000
      35.9333
 
Standard Error for Comparing Two Factor B Means:
  2.330465 (df=6.000000)
 
LSD Comparison: Size of Groups of Means
           2
           3
           0