Computational Provenance & Reproducibility Record

RAISINS - R and AI Solutions for INferential Statistics · Online Statistical Analysis Platform for Agricultural Research

Computational Provenance & Reproducibility Record Strip Plot Design · 2.0.0 · DOI 10.5281/zenodo.22202872

Computational Provenance & Reproducibility Record

RAISINS · Strip Plot Design Module

This Computational Provenance Record documents the statistical computing environment, software dependencies, computational provenance, and bibliographic references associated with the RAISINS Strip Plot Design module. It is intended to support computational reproducibility and software transparency. Detailed statistical methodology, mathematical derivations, and user guidance are provided separately in the official module documentation.

Any issues or updates required please comment here

Go to the App from here

1 Module Metadata

Parameter Specification
Module Strip Plot Design
Module Version 2.0.0
DOI 10.5281/zenodo.22202872
Document Type Computational workflow
Statistical Engine R
R Version 4.5.2
Reproducibility Execution Environment: GCP · renv-locked

2 Statistical Dependency Manifest

Package Version Repository Core Statistical Functions
stats 4.5.2 Base R lm(), residuals(), shapiro.test(), ks.test(), sd(), var()
agricolae 1.3-7 CRAN strip.plot(), LSD.test(), HSD.test(), duncan.test()
effectsize 1.0.3 CRAN cohens_f()
phia 0.3-2 CRAN interactionMeans()
gtools 3.9.5 CRAN mixedsort()
dplyr 1.2.1 CRAN group_by(), summarise(), select()

3 Statistical Function Registry

Analytical Role Primary Function(s)
Strip-plot (split-block) ANOVA agricolae::strip.plot(Block, A, B, y)
Effect size (per term) effectsize::cohens_f() on stats::lm(y ~ Block + A + B + A:B + Block:A + Block:B)
Post-hoc mean separation agricolae::LSD.test() (default), agricolae::HSD.test(), agricolae::duncan.test()
Grouping-letter ordering gtools::mixedsort()
Normality diagnostics (residuals) stats::shapiro.test(), nortest::ad.test(), stats::ks.test()
Interaction means phia::interactionMeans()

4 Default Methods & Parameters

Analysis Step / Parameter Default Method / Value
Strip-plot ANOVA
(agricolae::strip.plot())
Model y ~ Block + A + Ea + B + Eb + A:B + Ec
Effect size
(effectsize::cohens_f())
Term effect size Partial Cohen's f, taken from lm(y ~ Block + A + B + A:B + Block:A + Block:B) and reported for A, B and A×B
Level of significance Significance level (α) 0.05 default (user-selectable: 0.05, 0.01)
Mean comparison / post-hoc
(agricolae)
Default method LSD - agricolae::LSD.test() (alternatives: Tukey HSD HSD.test(); DMRT duncan.test())
Grouping display Group labels ordered with gtools::mixedsort()
Standard errors & CV SEM sqrt(E / r), where E is that term's error term (Ea for Row factor, Eb (for column factor) or Ec)(for row column interaction)
SED sqrt(2 × E / r)
Coefficient of variation Reported separately for each factors and interaction factor - cv(a), cv(b) and cv(c)
Normality diagnostics
(on model residuals)
Default test Shapiro–Wilk shapiro.test() (3 ≤ n ≤ 5000); Anderson–Darling nortest::ad.test() (n ≥ 7) and Kolmogorov–Smirnov ks.test() (n ≥ 2) also available. Residuals are taken from lm(y ~ A + B + A:B)
Data transformations
(optional, per variable)
Logarithmic log10(x); if any value ≤ 0, log10(x - min(x) + 1)
Square-root sqrt(x); if any value = 0, sqrt(x + 0.5); blocked on negative values
Arcsine asin(sqrt(x)) on proportions in [0, 1]; 0 and 1 replaced by 1/(4n) and 1 - 1/(4n); blocked outside [0, 1]

5 R Code for Key Analytical Steps

The code blocks below demonstrate the exact computation behind each reported result using huasahuasi, a strip-plot field trial from the agricolae package: 3 blocks × 3 row treatments (trt) × 5 column treatments (clon) = 45 plots, the fully balanced strip plot layout.

5.1 Strip-Plot ANOVA and Effect Size

data(huasahuasi, package = "agricolae")
YIELD <- huasahuasi$YIELD

Block <- factor(YIELD$block)                          # replications
A     <- factor(YIELD$trt)                            # row (horizontal strip) factor
B     <- factor(YIELD$clon)                           # column (vertical strip) factor
AB    <- factor(paste(A, B, sep = ":"))               # A x B cell
y     <- YIELD$y1da                                   # response variable

strip_anovaTable <- agricolae::strip.plot(Block, A, B, y)
strip_result     <- as.data.frame(strip_anovaTable$ANOVA)
strip_result
# Rows: 1 = Block, 2 = A, 3 = Ea, 4 = B, 5 = Eb, 6 = A:B, 7 = Ec

strip_anovaTable$Ea; strip_anovaTable$gl.a           # row-factor error
strip_anovaTable$Eb; strip_anovaTable$gl.b           # column-factor error
strip_anovaTable$Ec; strip_anovaTable$gl.c           # interaction error

# Partial Cohen's f for A, B and A:B (rows 2, 3 and 4 of the fitted model)
model_lm <- lm(y ~ Block + A + B + A:B + Block:A + Block:B)
effectsize::cohens_f(model_lm)

5.2 Post-hoc Mean Comparison (LSD default; Tukey / DMRT alternatives)

strip_anovaTable <- agricolae::strip.plot(Block, A, B, y)

# Least Significant Difference (default).
# OUT 
strip_out   <- agricolae::LSD.test(y, A,  strip_anovaTable$gl.a, strip_anovaTable$Ea,
                                   alpha = 0.05)
strip_outB  <- agricolae::LSD.test(y, B,  strip_anovaTable$gl.b, strip_anovaTable$Eb,
                                   alpha = 0.05)
strip_outAB <- agricolae::LSD.test(y, AB, strip_anovaTable$gl.c, strip_anovaTable$Ec,
                                   alpha = 0.05)

# Grouping letters, ordered naturally
strip_out$groups[gtools::mixedsort(rownames(strip_out$groups)), ]

# statistics: MSerror, Df, Mean, CV, t.value, LSD -> CV is column 4, CD is column 6
strip_stat <- strip_out$statistics
strip_stat

# Alternatives selectable in the app (same DFerror / MSerror / alpha arguments):
#   Tukey HSD -> agricolae::HSD.test(y, A, strip_anovaTable$gl.a, strip_anovaTable$Ea,
#                                    alpha = strip_alpha)   # MSD is column 5
#   DMRT      -> agricolae::duncan.test(y, A, strip_anovaTable$gl.a, strip_anovaTable$Ea,
#                                       alpha = strip_alpha)$duncan

# Standard errors from that term's error stratum (r = replications per level)
strip_r   <- strip_out$means[1, 3]
strip_SEM <- sqrt(strip_stat[1, 1] / strip_r)
strip_SED <- sqrt((2 * strip_stat[1, 1]) / strip_r)

5.3 Interaction Means

# Adjusted cell means and their standard errors behind the interaction plot
lm1 <- lm(y ~ A + B + A:B)
IM  <- phia::interactionMeans(lm1)
IM
plot(IM)

Explore the entire Strip Plot Design module in preview mode using our demo datasets. To submit suggestions or report a workflow issue, please use the discussion section below, or visit the official RAISINS website.

6 RAISINS Native Statistical Framework

RAISINS uses R for all its statistical computations. Every package used to generate major results is listed and demonstrated with examples, so results can be reproduced independently. These results are then organized and formatted on the RAISINS website along with visualisation to make them easier to use and interpret. RAISINS also has its own custom-built statistical tools for managing workflows, validating results, and generating reports. Details of these are not fully covered here, they’re shared with outside researchers only on request, and are subject to licensing terms.

7 Package References

R Core Team. (2025). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/

de Mendiburu, F. (2023). agricolae: Statistical Procedures for Agricultural Research (R package version 1.3-7). https://doi.org/10.32614/CRAN.package.agricolae

Ben-Shachar, M. S., Lüdecke, D., & Makowski, D. (2020). effectsize: Estimation of Effect Size Indices and Standardized Parameters (R package version 1.0.3). https://doi.org/10.32614/CRAN.package.effectsize

Gross, J., & Ligges, U. (2015). nortest: Tests for Normality (R package version 1.0-4). https://doi.org/10.32614/CRAN.package.nortest

De Rosario-Martinez, H. (2015). phia: Post-Hoc Interaction Analysis (R package version 0.3-2). https://doi.org/10.32614/CRAN.package.phia

Peterson, B. G., & Carl, P. (2020). PerformanceAnalytics: Econometric Tools for Performance and Risk Analysis (R package version 2.1.0). https://doi.org/10.32614/CRAN.package.PerformanceAnalytics

Warnes, G. R., Bolker, B., & Lumley, T. (2023). gtools: Various R Programming Tools (R package version 3.9.5). https://doi.org/10.32614/CRAN.package.gtools

Wickham, H., François, R., Henry, L., Müller, K., & Vaughan, D. (2025). dplyr: A Grammar of Data Manipulation (R package version 1.2.1). https://doi.org/10.32614/CRAN.package.dplyr

Wickham, H., Vaughan, D., & Girlich, M. (2025). tidyr: Tidy Messy Data (R package version 1.3.2). https://doi.org/10.32614/CRAN.package.tidyr

Feedback & Discussion