
Structural Equation Modeling for Field Experiments
Source:R/statistical_functions.R
sem_analysis.RdPerforms SEM analysis for agricultural field experiments. Allows testing of hypothesized causal relationships among variables.
Examples
# \donttest{
if (requireNamespace("lavaan", quietly = TRUE)) {
set.seed(42)
n <- 100
nitrogen <- rnorm(n, 60, 10)
phosphorus <- rnorm(n, 30, 5)
yield <- 0.5 * nitrogen + 0.3 * phosphorus + rnorm(n, 0, 5)
df <- data.frame(yield = yield, nitrogen = nitrogen, phosphorus = phosphorus)
model <- 'yield ~ nitrogen + phosphorus'
result <- sem_analysis(df, model, plot = FALSE)
}
#>
#> ==========================================================
#> STRUCTURAL EQUATION MODEL ANALYSIS
#> ==========================================================
#>
#> --- Model Fit Indices ---
#> Chi-square: 0 (df = 0 , p = NA )
#> CFI: 1
#> TLI: 1
#> RMSEA: 0
#> SRMR: 0
#>
#> --- Fit Assessment ---
#> Model fit: GOOD
#>
#> --- Parameter Estimates ---
#>
#> lhs op rhs est se z pvalue ci.lower ci.upper std.lv
#> 1 yield ~ nitrogen 0.428 0.048 8.883 0.000 0.334 0.523 0.428
#> 2 yield ~ phosphorus 0.385 0.111 3.470 0.001 0.168 0.603 0.385
#> 3 yield ~~ yield 24.916 3.524 7.071 0.000 18.010 31.822 24.916
#> 4 nitrogen ~~ nitrogen 107.358 0.000 NA NA 107.358 107.358 107.358
#> 5 nitrogen ~~ phosphorus 1.458 0.000 NA NA 1.458 1.458 1.458
#> 6 phosphorus ~~ phosphorus 20.234 0.000 NA NA 20.234 20.234 20.234
#> std.all std.nox
#> 1 0.640 0.062
#> 2 0.250 0.056
#> 3 0.518 0.518
#> 4 1.000 107.358
#> 5 0.031 1.458
#> 6 1.000 20.234
# }