lattice¶
Analyzes balanced and partially-balanced lattice experiments. In these
experiments, a requirement is that the number of treatments be equal to the
square of an integer, such as 9, 16, or 25 treatments. Function lattice
also analyzes repetitions of lattice experiments.
Synopsis¶
lattice (nLocations, nReps, nBlocks, nTreatments, rep, block, treatment, y)
Required Arguments¶
- int
nLocations
(Input) - Number of locations or repetitions of the lattice experiments.
nLocations
must be one or greater. IfnLocations
>1 then the optional argumentslocations
must be included as input tolattice
. - int
nReps
(Input) - Number of replicates per location. Each replicate should consist of t =
nTreatments
organized into \(k=\sqrt{t}\) blocks. - int
nBlocks
(Input) - Number of blocks per location. For every location,
nBlocks
must be equal tonBlocks
= r·k, where r =nReps
and \(k=\sqrt{t}\). - int
nTreatments
(Input) - Number of treatments t =
nTreatments
must be equal to \(k^2\). - int
rep[]
(Input) - An array of length
n
containing the replicate identifiers for each observation iny
. For a balanced-lattice, the number of replicate identifiers must be equal tonReps=
(k+1). For a partially-balanced lattice, the number of replicate identifiers depends upon whether the design is a simple lattice, triple lattice, etc.lattice
verifies that the number of unique replicate identifiers is equal tonReps
. If multiple locations or repetitions of the experiment is conducted, i.e.,nLocations
>1, then the replicate and block numbers contained inrep
andblock
must agree between repetitions. - int
block[]
(Input) - An array of length
n
containing the block identifiers for each observation iny
.lattice
verifies that the number of unique block identifiers is equal tonBlocks
. If multiple locations or repetitions of the experiment is conducted, i.e.,nLocations
>1, then block numbers must agree between repetitions. That is, the i‑th block in every location or repetition must contain the same treatments. - int
treatment[]
(Input) - An array of length
n
containing the treatment identifiers for each observation iny
. Each treatment must be assigned values from 1 tonTreatments
.lattice
verifies that the number of unique treatment identifiers is equal tonTreatments
. - float
y[]
(Input) - An 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) iny
. The NaN value can be set using the functionmachine(
6). The location, replicate, block, and treatment number for each observation iny
are identified by the corresponding values in the argumentslocations
,rep
,block
, andtreatment
.
Return Value¶
A two dimensional, 7 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, \(\texttt{anovaTable}_{i,0} = \texttt{anovaTable}[\texttt{i}*6]\), 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 following convention:
j |
\(\texttt{anovaTable}_{i,j} = \texttt{anovaTable}[\texttt{i}*6+\texttt{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 |
Note that the p‑value for the F-statistic is returned as 0.0 when the value is so small that all significant digits have been lost. |
The Source Identifiers in the first column of
\(\text{anovaTable}_{i,j}\) are the only negative values in
anovaTable[]
. Assignments of identifiers to ANOVA sources use the
following coding:
Source Identifier | ANOVA Source |
---|---|
-1 | LOCATIONS † |
-2 | REPLICATES |
-3 | TREATMENTS(unadjusted) |
-4 | TREATMENTS(adjusted) |
-5 | BLOCKS(adjusted) |
-6 | INTRA-BLOCK ERROR |
-7 | CORRECTED TOTAL |
Note: † If nLocations=
1, all entries in this row are set to
missing (NaN).
Optional Arguments¶
locations
(Input)- An array of length
n
containing the location or repetition identifiers for each observation iny
. Unique integers must be assigned to each location in the study. This argument is required whennLocations
>1. nMissing
(Output)- Number of missing values, if any, found in
y
. Missing values are denoted with a NaN (Not a Number) value. cv
(Output)- The coefficient of variation computed by using the location standard deviation.
grandMean
(Output)- The overall adjusted mean averaged over every location.
treatmentMeans
(Output)- An array of size
nTreatments
containing the adjusted treatment means. stdErrors
(Output)- An array of length 4 containing the standard error and associated
degrees of freedom for comparing two treatment means.
stdErrors[0]
contains the standard error for comparing two treatments that appear in the same block at least once.stdErrors[1]
contains the standard error for comparing two treatments that never appear in the same block together.stdErrors[2]
contains the standard error for comparing, on average, two treatments from the experiment averaged over cases in which the treatments do or do not appear in the same block. Finally,stdErrors[3]
contains the degrees of freedom associated with each of these standard errors, i.e.,stdErrors[3]
= degrees of freedom for intra-block error. locationAnovaTable
(Output)- A 3-dimensional array of size
nLocations
by 7 by 6 containing the anova tables associated with each location or repetition of the lattice experiment. For each location, the 7 by 6 dimensional array corresponds to the anova table for that location. For example,locationAnovaTable
[(i-1)×42+(j-1)×6 + (k-1)] contains the value in the k‑th column and j‑th row of the anova-table for the i‑th location. anovaRowLabels
(Output)- An array containing the labels for each of the
nAnova
rows of the returned ANOVA table. The label for the i‑th row of the ANOVA table can be printed withprint anovaRowLabels[i]
.
Description¶
The function lattice
analyzes both balanced and partially-balanced
lattice experiments, possibly repeated at multiple locations. These designs
were originally described by Yates (1936). A defining characteristic of
these classes of lattice experiments is that the number of treatments is
always the square of an integer, such as t = 9, 16, 25, etc. where t is
equal to the number of treatments.
Another characteristic of lattice experiments is that blocks are organized into replicates, where each replicate contains one observation for each treatment. This requires the number of blocks in each replicate to be equal to the number of observations per block. That is, the number of blocks per replicate and the number of observations per block are both equal to \(k=\sqrt{t}\).
For balanced lattice experiments the number of replicates is always \(k+1\). For partially-balanced lattice experiments, the number of replicates is less than \(k+1\). Tables of balanced-lattice experiments are tabulated in Cochran & Cox (1950) for t=9, 16, 25, 49, 64 and 81.
The analysis of balanced and partially-balanced experiments is detailed in Cochran & Cox (1950) and Kuehl (2000).
Consider, for example, a 3x3 balanced-lattice, i.e., \(k=3\) and \(t=9\). Notice that the number of replicates is 4 and the number of blocks per replicate is equal to 3. The total number of blocks is equal to
For a balanced-lattice,
Replicate I | Replicate II |
---|---|
Block 1 (T1, T2, T3) | Block 4 (T1, T4, T7) |
Block 2 (T4, T5, T6) | Block 5 (T2, T5, T8) |
Block 3 (T7, T8, T9) | Block 6 (T3, T6, T9) |
Replicate III | Replicate IV |
Block 7 (T1, T5, T9) | Block 10 (T1, T6, T8) |
Block 8 (T2, T6, T7) | Block 11 (T2, T4, T9) |
Block 9 (T3, T4, T8) | Block 12 (T3, T5, T7) |
The analysis of variance for data from a balanced-lattice experiment, takes the form familiar to other balanced incomplete block experiments. In these experiments, the error term is divided into two components: the Inter-Block Error and the Intra-Block Error. For single and multiple locations, the general format of the anova tables is illustrated in the Table 4.20 and Table 4.21.
SOURCE | DF | Sum of Squares | Mean Squares |
---|---|---|---|
REPLICATES | \(r-1\) | SSR | MSR |
TREATMENTS(unadj) | \(t-1\) | SST | MST |
TREATMENTS(adj) | \(t-1\) | SSTa | MSTa |
BLOCKS(adj) | \(r\cdot(k-1)\) | SSBa | MSBa |
INTRA-BLOCK ERROR | \((k-1)(r\cdot k-k-1)\) | SSI | MSI |
TOTAL | \(r\cdot t-1\) | SSTot |
SOURCE | DF | Sum of Squares | Mean Squares |
---|---|---|---|
LOCATIONS | \(p-1\) | SSL | MSL |
REPLICATES WITHIN LOCATIONS | \(p(r-1)\) | SSR | MSR |
TREATMENTS(unadj) | \(t-1\) | SST | MST |
TREATMENTS(adj) | \(t-1\) | SSTa | MSTa |
BLOCKS(adj) | \(p\cdot r(k-1)\) | SSB | MSB |
INTRA-BLOCK ERROR | \(p\cdot(k-1) (r\cdot k-k-1)\) | SSI | MSI |
TOTAL | \(p\cdot r\cdot t-1\) | SSTot |
Examples¶
Example 1¶
This example is a lattice design for 16 treatments conducted at one location. A lattice design with \(t=k^2=16\) treatments is a balanced lattice design with \(r=k+1=5\) replicates and \(r k= 5(4)=20\) blocks.
from __future__ import print_function
import sys
from numpy import *
from l_print_lsd import l_print_lsd
from pyimsl.stat.page import page, SET_PAGE_WIDTH
from pyimsl.stat.lattice import lattice
from pyimsl.stat.multipleComparisons import multipleComparisons
from pyimsl.stat.writeMatrix import writeMatrix
col_labels = [" ", "\nID", "\nDF", "\nSSQ ",
"Mean \nsquares", "\nF-Test", "\np-Value"]
alpha = 0.05
page_width = 132
n = 80 # Total number of observations
n_locations = 1 # Number of locations
n_treatments = 16 # Number of treatments
n_reps = 5 # Number of replicates
n_blocks = 20 # Total number of blocks
n_aov_rows = 7 # Number of rows in anova table
rep = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
block = [1, 1, 1, 1, 2, 2, 2, 2,
3, 3, 3, 3, 4, 4, 4, 4,
5, 5, 5, 5, 6, 6, 6, 6,
7, 7, 7, 7, 8, 8, 8, 8,
9, 9, 9, 9, 10, 10, 10, 10,
11, 11, 11, 11, 12, 12, 12, 12,
13, 13, 13, 13, 14, 14, 14, 14,
15, 15, 15, 15, 16, 16, 16, 16,
17, 17, 17, 17, 18, 18, 18, 18,
19, 19, 19, 19, 20, 20, 20, 20]
treatment = [1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
1, 5, 9, 13, 10, 2, 14, 6,
7, 15, 3, 11, 16, 8, 12, 4,
1, 6, 11, 16, 5, 2, 15, 12,
9, 14, 3, 8, 13, 10, 7, 4,
1, 14, 7, 12, 13, 2, 11, 8,
5, 10, 3, 16, 9, 6, 15, 4,
1, 10, 15, 8, 9, 2, 7, 16,
13, 6, 3, 12, 5, 14, 11, 4]
y = [147, 152, 167, 150, 127, 155, 162, 172,
147, 100, 192, 177, 155, 195, 192, 205,
140, 165, 182, 152, 97, 155, 192, 142,
155, 182, 192, 192, 182, 207, 232, 162,
155, 132, 177, 152, 182, 130, 177, 165,
137, 185, 152, 152, 185, 122, 182, 192,
220, 202, 175, 205, 205, 152, 180, 187,
165, 150, 200, 160, 155, 177, 185, 172,
147, 112, 177, 147, 180, 205, 190, 167,
172, 212, 197, 192, 177, 220, 205, 225]
grand_mean = []
cv = []
treatment_means = []
std_err = []
equal_means = []
df = []
anova_row_labels = []
aov = lattice(n_locations, n_reps, n_blocks,
n_treatments, rep, block, treatment, y,
grandMean=grand_mean, cv=cv,
treatmentMeans=treatment_means,
stdErrors=std_err,
anovaRowLabels=anova_row_labels)
# Print the ANOVA table
page(SET_PAGE_WIDTH, page_width)
writeMatrix(" *** ANALYSIS OF VARIANCE TABLE ***", aov,
writeFormat="%3.0f%3.0f%8.2f%7.2f%7.2f%7.3f",
rowLabels=anova_row_labels, colLabels=col_labels)
print("\nAdjusted Grand Mean: %7.3f" % grand_mean[0])
print("\nCoefficient of Variation: %7.3f\n" % cv[0])
l = 0
print("Adjusted Treatment Means:")
for i in range(0, n_treatments):
print("treatment[%2d] %7.4f" % (i + 1, treatment_means[l]))
l += 1
df = int(std_err[3])
print("\nStandard Error for Comparing Two Adjusted Treatment Means: %f \n(df=%d)" %
(std_err[2], df))
equal_means = multipleComparisons(treatment_means, df,
std_err[2] / sqrt(2.0), lsd=True, alpha=alpha)
l_print_lsd(n_treatments, equal_means, treatment_means)
Output¶
Adjusted Grand Mean: 171.450
Coefficient of Variation: 10.710
Adjusted Treatment Means:
treatment[ 1] 166.4532
treatment[ 2] 160.7527
treatment[ 3] 183.6288
treatment[ 4] 175.6299
treatment[ 5] 162.6807
treatment[ 6] 167.6715
treatment[ 7] 168.3822
treatment[ 8] 176.5730
treatment[ 9] 162.6928
treatment[10] 118.5197
treatment[11] 189.0615
treatment[12] 190.4608
treatment[13] 169.4515
treatment[14] 197.0828
treatment[15] 185.3559
treatment[16] 168.8030
Standard Error for Comparing Two Adjusted Treatment Means: 13.221988
(df=45)
[group] Mean LSD Grouping
[10] 118.519669
[2] 160.752676 *
[5] 162.680671 * *
[9] 162.692778 * *
[1] 166.453186 * * *
[6] 167.671538 * * *
[7] 168.382243 * * *
[16] 168.803016 * * *
[13] 169.451487 * * *
[4] 175.629906 * * * *
[8] 176.572982 * * * *
[3] 183.628845 * * * *
[15] 185.355905 * * * *
[11] 189.061512 * * *
[12] 190.460832 * *
[14] 197.082753 *
*** ANALYSIS OF VARIANCE TABLE ***
Mean
ID DF SSQ squares F-Test p-Value
Locations ................. -1 ... ........ ....... ....... .......
Replicates ................ -2 4 6524.30 1631.08 ....... .......
Treatments (unadjusted) ... -3 15 27296.60 1819.77 4.12 0.000
Treatments (adjusted) ..... -4 15 21270.89 1418.06 4.21 0.000
Blocks (adjusted) ......... -5 15 11339.28 755.95 ....... .......
Intra-Block Error ......... -6 45 15173.62 337.19 ....... .......
Corrected Total ........... -7 79 60333.80 ....... ....... .......
Example 2¶
This example consists of a 5 × 5 partially-balanced lattice repeated twice.
In this case, the number of replicates is not \(k+1=6\), it is only
nReps
= 2. Each lattice consists of total of 50 observations which is
repeated twice. The first observation in this experiment is missing.
from __future__ import print_function
import sys
from numpy import *
from l_print_lsd import l_print_lsd
from pyimsl.stat.machine import machine
from pyimsl.stat.multipleComparisons import multipleComparisons
from pyimsl.stat.page import page, SET_PAGE_WIDTH
from pyimsl.stat.lattice import lattice
from pyimsl.stat.writeMatrix import writeMatrix
col_labels = [" ", "\nID", "\nDF", "\nSSQ ",
"Mean \nsquares", "\nF-Test", "\np-Value"]
alpha = 0.05
page_width = 132
n = 100 # Total number of observations
n_locations = 2 # Number of locations
n_treatments = 25 # Number of treatments
n_reps = 2 # Number of replicates
n_blocks = 10 # Total number of blocks
n_aov_rows = 7 # Number of rows in anova table
rep = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
block = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
9, 9, 9, 9, 9, 10, 10, 10, 10, 10,
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
9, 9, 9, 9, 9, 10, 10, 10, 10, 10]
treatment = [1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
11, 12, 13, 14, 15,
16, 17, 18, 19, 20,
21, 22, 23, 24, 25,
1, 6, 11, 16, 21,
2, 7, 12, 17, 22,
3, 8, 13, 18, 23,
4, 9, 14, 19, 24,
5, 10, 15, 20, 25,
1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
11, 12, 13, 14, 15,
16, 17, 18, 19, 20,
21, 22, 23, 24, 25,
1, 6, 11, 16, 21,
2, 7, 12, 17, 22,
3, 8, 13, 18, 23,
4, 9, 14, 19, 24,
5, 10, 15, 20, 25]
location = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
y = [6, 7, 5, 8, 6,
16, 12, 12, 13, 8,
17, 7, 7, 9, 14,
18, 16, 13, 13, 14,
14, 15, 11, 14, 14,
24, 13, 24, 11, 8,
21, 11, 14, 11, 23,
16, 4, 12, 12, 12,
17, 10, 30, 9, 23,
15, 15, 22, 16, 19,
13, 26, 9, 13, 11,
15, 18, 22, 11, 15,
19, 10, 10, 10, 16,
21, 16, 17, 4, 17,
15, 12, 13, 20, 8,
16, 7, 20, 13, 21,
15, 10, 11, 7, 14,
7, 11, 15, 15, 16,
19, 14, 20, 6, 16,
17, 18, 20, 15, 14]
grand_mean = []
cv = []
treatment_means = []
location_anova_table = []
loc_anova_table = []
std_err = []
n_missing = []
equal_means = []
df = []
# Set first observation to missing
y[0] = machine(6)
anova_row_labels = []
aov = lattice(n_locations, n_reps, n_blocks,
n_treatments, rep, block, treatment, y,
locations=location,
grandMean=grand_mean, cv=cv,
treatmentMeans=treatment_means,
stdErrors=std_err,
locationAnovaTable=location_anova_table,
anovaRowLabels=anova_row_labels,
nMissing=n_missing)
# Print the ANOVA table
page(SET_PAGE_WIDTH, page_width)
writeMatrix(" *** ANALYSIS OF VARIANCE TABLE ***", aov,
writeFormat="%3.0f%3.0f%8.2f%7.2f%7.2f%7.3f",
rowLabels=anova_row_labels, colLabels=col_labels)
# Print the location ANOVA table
for i in range(0, n_locations):
sys.stdout.write("\n\n\t\t\t\tLOCATION %d" % (i + 1))
writeMatrix(" *** ANALYSIS OF VARIANCE TABLE ***",
location_anova_table[i],
writeFormat="%3.0f%3.0f%8.2f%7.2f%7.2f%7.3f",
rowLabels=anova_row_labels,
colLabels=col_labels)
print("\nAdjusted Grand Mean: %7.3f" % grand_mean[0])
print("\nCoefficient of Variation: %7.3f\n" % cv[0])
l = 0
print("Adjusted Treatment Means:")
for i in range(0, n_treatments):
print("treatment[%2d] %7.4f" % (i + 1, treatment_means[l]))
l += 1
df = int(std_err[3])
print("\nStandard Error for Comparing Two Adjusted Treatment Means: %f \n(df=%d)" %
(std_err[2], df))
equal_means = multipleComparisons(treatment_means, df,
std_err[2] / sqrt(2.0), lsd=True, alpha=alpha)
l_print_lsd(n_treatments, equal_means, treatment_means)
print("\nNumber of missing observations: ", n_missing[0])
Output¶
LOCATION 1
LOCATION 2
Adjusted Grand Mean: 14.011
Coefficient of Variation: 26.423
Adjusted Treatment Means:
treatment[ 1] 17.1507
treatment[ 2] 19.2200
treatment[ 3] 11.1261
treatment[ 4] 14.6230
treatment[ 5] 12.6543
treatment[ 6] 11.8133
treatment[ 7] 11.9045
treatment[ 8] 11.3106
treatment[ 9] 9.5575
treatment[10] 11.5889
treatment[11] 22.1321
treatment[12] 12.7233
treatment[13] 13.1293
treatment[14] 17.8763
treatment[15] 18.6576
treatment[16] 14.6568
treatment[17] 11.4980
treatment[18] 13.1540
treatment[19] 5.4010
treatment[20] 12.9323
treatment[21] 15.4108
treatment[22] 17.0020
treatment[23] 13.9081
treatment[24] 17.6550
treatment[25] 13.1864
Standard Error for Comparing Two Adjusted Treatment Means: 4.617276
(df=55)
[group] Mean LSD Grouping
[19] 5.400982 *
[9] 9.557550 * *
[3] 11.126068 * * *
[8] 11.310596 * * *
[17] 11.497969 * * *
[10] 11.588863 * * *
[6] 11.813336 * * *
[7] 11.904536 * * *
[5] 12.654335 * * *
[12] 12.723256 * * *
[20] 12.932296 * * * *
[13] 13.129316 * * * *
[18] 13.154029 * * * *
[25] 13.186358 * * * *
[23] 13.908091 * * * *
[4] 14.623022 * * * *
[16] 14.656769 * * *
[21] 15.410830 * * *
[22] 17.002031 * * *
[1] 17.150683 * * *
[24] 17.655044 * * *
[14] 17.876269 * * *
[15] 18.657583 * * *
[2] 19.220009 * *
[11] 22.132056 *
Number of missing observations: 1
*** ANALYSIS OF VARIANCE TABLE ***
Mean
ID DF SSQ squares F-Test p-Value
Locations ................. -1 1 12.19 12.19 0.25 0.622
Replicates within Locations -2 2 203.99 101.99 7.44 0.001
Treatments (unadjusted) ... -3 24 795.46 33.14 0.02 1.000
Treatments (adjusted) ..... -4 24 951.20 39.63 2.89 0.006
Blocks (adjusted) ......... -5 16 770.50 48.16 3.51 0.000
Intra-Block Error ......... -6 55 753.81 13.71 ....... .......
Corrected Total ........... -7 98 2535.95 ....... ....... .......
*** ANALYSIS OF VARIANCE TABLE ***
Mean
ID DF SSQ squares F-Test p-Value
Locations ................. -1 ... ........ ....... ....... .......
Replicates within Locations -2 1 203.67 203.67 ....... .......
Treatments (unadjusted) ... -3 24 567.13 23.63 0.78 0.721
Treatments (adjusted) ..... -4 24 661.08 27.55 2.04 0.078
Blocks (adjusted) ......... -5 8 490.51 61.31 ....... .......
Intra-Block Error ......... -6 15 202.92 13.53 ....... .......
Corrected Total ........... -7 48 1464.24 ....... ....... .......
*** ANALYSIS OF VARIANCE TABLE ***
Mean
ID DF SSQ squares F-Test p-Value
Locations ................. -1 ... ........ ....... ....... .......
Replicates within Locations -2 1 0.32 0.32 ....... .......
Treatments (unadjusted) ... -3 24 622.52 25.94 1.43 0.196
Treatments (adjusted) ..... -4 24 707.51 29.48 2.83 0.018
Blocks (adjusted) ......... -5 8 269.76 33.72 ....... .......
Intra-Block Error ......... -6 16 166.92 10.43 ....... .......
Corrected Total ........... -7 49 1059.52 ....... ....... .......