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.
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.
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.
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.
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