Skip to contents

Performs SEM analysis for agricultural field experiments. Allows testing of hypothesized causal relationships among variables.

Usage

sem_analysis(data, model, plot = TRUE, verbose = TRUE)

Arguments

data

Data frame with variables

model

Model specification in lavaan syntax

plot

Logical, whether to generate path diagram

verbose

Logical. If TRUE (default), prints formatted output to console.

Value

SEM results including fit indices and parameter estimates

Author

Lalit Kumar Rolaniya, ICAR-IIPR, Bikaner

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
# }