Reproduces the analysis Solomon (1949) proposed with the design: an
inferred pretest mean for the unpretested groups, an improvement score
for each group, and an interaction term I. It is a historical procedure,
kept to document how the analysis of the design began; the recommended
analysis is
fit_solomon_glm().
Usage
fit_solomon_1949(
y_post = NULL,
treat = NULL,
pretested = NULL,
y_pre = NULL,
post_mean = NULL,
pre_mean = NULL,
n = NULL,
inferred_pretest = c("average", "pooled"),
data = NULL
)Arguments
- y_post, treat, pretested, y_pre
Individual data: posttest scores, training (treatment) and pretest indicators coded 0/1, and pretest scores, missing by design for unpretested participants. A design with no participant who is neither pretested nor trained is analyzed as the three-group design. Designs with several treatments are not supported; see
fit_solomon_glm().- post_mean, pre_mean
Alternatively, group means:
post_meanhas three values (experimental, Control I, Control II) for the three-group design or four (adding Control III) for the four-group design, andpre_meanthe two pretest means (experimental, Control I).- n
Optional group sizes, in the order of
post_mean, for the printout and forinferred_pretest = "pooled".- inferred_pretest
"average"(default) or"pooled"; see Details.- data
Optional data frame. When supplied, the other data arguments are looked up in it first, as bare column names (
y_post = post) or as strings (y_post = "post").
Value
An object of class solomon_1949 with design ("three-group"
or "four-group"), groups (a data frame with each group's pretest and
training, size, pretest mean and whether it was observed or inferred,
posttest mean, and improvement, plus standard errors of the observed
means when individual data are given), inferred_pretest, I, and, for
the four-group design, posttest_contrast and pretest_difference.
Details
The three-group design (Solomon, 1949, pp. 141–143, Table I). An experimental group and Control Group I are pretested; the experimental group and Control Group II are trained; all three are posttested. The pretest mean Control Group II would have had is inferred from the pretested groups, i = (a1 + a2) / 2, where a1 and a2 are their pretest means (Tables I–III). Each group's improvement is its posttest mean minus its observed or inferred pretest mean: d1 = b1 - a1, d2 = b2 - a2, and d3 = b3 - i. The interaction is I = d1 - (d2 + d3) (p. 143): the part of the experimental group's improvement not explained by the effect of the pretest alone (d2) and of training alone (d3).
The four-group design (p. 147, Table V). Control Group III, with neither pretest nor training, receives the same inferred pretest, its improvement d4 = b4 - i is attributed to outside events between the two occasions, and the interaction becomes I = d1 - (d2 + d3 - d4).
The inferred pretest. Solomon's text describes it as the grand mean
of the pooled pretested groups (p. 141), and his tables compute it as
(a1 + a2) / 2 (Tables I–III, V). The two agree when the pretested groups
are the same size. inferred_pretest = "average" (the default) follows the
tables; "pooled" weights the two means by their sample sizes, which
requires n or individual data.
No test. Solomon gave standard errors for the observed means but printed the error of d3 as "?" (Tables II–III), and judged the interaction from "an examination of the variabilities" (p. 144). This function therefore reports his point estimates only. With individual data it also reports the standard errors of the observed means, as his tables do.
Relation to the later analysis (a solomonR note, not Solomon's). In the four-group design the inferred pretest cancels, so I = (b1 - b2 - b3 + b4) - (a1 - a2): the posttest interaction contrast of the 2 x 2 analysis, less the pretest difference between the two pretested groups. With random assignment the pretest difference has expectation zero, so I estimates the same Pretest x Treatment interaction as the posttest contrast.
The later verdict. Campbell (1957, p. 303) first rejected the analysis
with an inferred pretest: it restricts the degrees of freedom, violates
independence, and leaves no legitimate test. He recommended the 2 x 2
analysis of variance of the four posttests instead (fit_solomon_classic(),
Test A). Campbell and Stanley (1963/1966, p. 25) repeated the
recommendation and judged Solomon's gain-score suggestions unacceptable.
Solomon and Lessac (1968, p. 147) still used the combined pretest mean of
the pretested groups as the best estimate for the unpretested groups, to
judge whether those groups improved or deteriorated in absolute terms.
References
Campbell, D. T. (1957). Factors relevant to the validity of experiments in social settings. Psychological Bulletin, 54(4), 297–312. https://doi.org/10.1037/h0040950
Campbell, D. T., & Stanley, J. C. (1966). Experimental and quasi-experimental designs for research. Rand McNally. (Original work published 1963)
Solomon, R. L. (1949). An extension of control group design. Psychological Bulletin, 46(2), 137–150. https://doi.org/10.1037/h0062958
Solomon, R. L., & Lessac, M. S. (1968). A control group design for experimental studies of developmental processes. Psychological Bulletin, 70(3, Pt. 1), 145–150. https://doi.org/10.1037/h0026147
See also
solomon1949 for Solomon's data, fit_solomon_classic() for the
later historical tests, and fit_solomon_glm() for the recommended
analysis.
Examples
# Solomon's fifth-grade spelling experiment (Table II, p. 144).
g5 <- solomon1949[solomon1949$grade == 5, ]
fit_solomon_1949(post_mean = g5$mean, pre_mean = g5$pre_mean[1:2], n = g5$n)
#> Solomon (1949) improvement-score analysis (historical)
#> ------------------------------------------------------
#> Design: three-group (Solomon, 1949, Table I, p. 142)
#>
#> Group n Pretest Training Pre mean Post mean Improvement
#> Experimental 10 yes yes 3.20 9.90 6.70
#> Control I 10 yes no 2.80 3.50 0.70
#> Control II 10 no yes 3.00 (inferred) 11.20 8.20
#>
#> Inferred pretest i = 3.00 (average of the pretested groups' means)
#> Interaction I = d1 - (d2 + d3) = -2.20
#>
#> Solomon gave no standard error or test for I. Campbell and Stanley
#> (1963/1966, p. 25) judged his gain-score suggestions unacceptable; see
#> fit_solomon_classic() for the tests that followed and fit_solomon_glm()
#> for the recommended analysis.
# The four-group version, from individual data.
with(solomon_example, fit_solomon_1949(y_post, treat, pretested, y_pre))
#> Solomon (1949) improvement-score analysis (historical)
#> ------------------------------------------------------
#> Design: four-group (Solomon, 1949, Table V, p. 147)
#>
#> Group n Pretest Training Pre mean Post mean Improvement
#> Experimental 30 yes yes 49.63 +/- 2.10 56.23 +/- 2.21 6.60 +/- 1.65
#> Control I 30 yes no 49.57 +/- 1.83 54.50 +/- 1.63 4.93 +/- 1.81
#> Control II 30 no yes 49.60 (inferred) 54.73 +/- 1.37 5.13 +/- ?
#> Control III 30 no no 49.60 (inferred) 51.10 +/- 1.71 1.50 +/- ?
#>
#> Inferred pretest i = 49.60 (average of the pretested groups' means)
#> Interaction I = d1 - (d2 + d3 - d4) = -1.97
#> = posttest interaction contrast (-1.90) - pretest difference (0.07)
#>
#> +/- values are standard errors of the observed means, as in Solomon's tables.
#>
#> Solomon gave no standard error or test for I. Campbell and Stanley
#> (1963/1966, p. 25) judged his gain-score suggestions unacceptable; see
#> fit_solomon_classic() for the tests that followed and fit_solomon_glm()
#> for the recommended analysis.