Spatial analysis (M4b) {#spatial-analysis}

Theory of the model

The experimental design used is the row-column design (D3). The following model is based on frequentist statistics (section \@ref(section-freq)). The model allows taking into account environmental variation within a block with few control replicated in rows and columns.

It is based on a SpATS (Spatial Analysis of Field Trials with Splines) model proposed by @rodriguez_spatial_2016 :

$Y_{ijk} = \alpha_{i} + r_{j} + c_{k} + f(u,v) + \varepsilon_{ijk}; \quad \varepsilon_{ijk} \sim \mathcal{N} (0,\sigma^2)$

With,

Note that $f(u,v)$ is divided into 8 components excluding the intercept [@rodriguez_spatial_2016]:

Much more information regarding the model as well as example of R package SpATS can be found in @rodriguez_spatial_2016.

Steps with PPBstats

Format the data

data("data_model_spatial")
data_model_spatial = format_data_PPBstats(data_model_spatial, type = "data_agro")

Run the model

By default, germplasm are settled as random.

out_spatial = model_spatial(data = data_model_spatial, variable = "y1")

out_spatial is a list containing two elements :

out_spatial$info$variable

head(out_spatial$info$data)

Check and visualize model outputs

The tests to check the model are explained in section \@ref(check-model-freq).

Check the model
out_check_spatial = check_model(out_spatial)

out_check_spatial is a list containing two elements :

Visualize outputs

Once the computation is done, you can visualize the results with plot

p_out_check_spatial = plot(out_check_spatial)

p_out_check_spatial is a list with:

p_out_check_spatial$variability_repartition

Get and visualize mean comparisons

The method to compute mean comparison are explained in section \@ref(mean-comp-check-freq).

Get mean comparisons

Get mean comparisons with mean_comparisons.

out_mean_comparisons_spatial = mean_comparisons(out_check_spatial, p.adj = "bonferroni")

out_mean_comparisons_spatial is a list of two elements:

Visualize mean comparisons

p_out_mean_comparisons_spatial = plot(out_mean_comparisons_spatial)

p_out_mean_comparisons_spatial is a list of two elements

p_out_mean_comparisons_spatial$germplasm_blup
pg = p_out_mean_comparisons_spatial$germplasm_barplot
pg$`23`

Get and vizualise groups of parameters

Get groups of parameters

In order to cluster locations or germplasms, you may use mulivariate analysis on a matrix with several variables in columns and parameter in rows.

This is done with parameter_groups() which do a PCA on this matrix.

Clusters are done based on HCPC method as explained here

Lets' have an example with three variables.

First run the models

out_spatial_2 = model_spatial(data_model_spatial, variable = "y2")
out_spatial_3 = model_spatial(data_model_spatial, variable = "y3")

Then check the models

out_check_spatial_2 = check_model(out_spatial_2)
out_check_spatial_3 = check_model(out_spatial_3)

Then run the function for germplasm.

list_out_check_model = list("spatial_1" = out_check_spatial, "spatial_2" = out_check_spatial_2, "spatial_3" = out_check_spatial_3)
out_parameter_groups = parameter_groups(list_out_check_model, "germplasm")

out_parameter_groups is list of two elements:

Visualize groups of parameters

Visualize outputs with plot

p_germplasm_group = plot(out_parameter_groups)

p_germplasm_group is list of two elements :

cl = p_germplasm_group$clust
names(cl)
cl$cluster_all
cl$cluster_1

post hoc analysis to visualize variation repartition for several variables

list_out_check_model = list("spatial_1" = out_check_spatial, "spatial_2" = out_check_spatial_2, "spatial_3" = out_check_spatial_3)
post_hoc_variation(list_out_check_model)

Apply the workflow to several variables

If you wish to apply the spatial workflow to several variables, you can use lapply with the following code :

workflow_spatial = function(x, data){
  out_spatial = model_spatial(data = data, variable = x)

  out_check_spatial = check_model(out_spatial)
  p_out_check_spatial = plot(out_check_spatial)

  out_mean_comparisons_spatial = mean_comparisons(out_check_spatial, p.adj = "bonferroni")
  p_out_mean_comparisons_spatial = plot(out_mean_comparisons_spatial)

  out = list(
    out_spatial = out_spatial,
    out_check_spatial = out_check_spatial,
    p_out_check_spatial = p_out_check_spatial,
    out_mean_comparisons_spatial = out_mean_comparisons_spatial,
    p_out_mean_comparisons_spatial = p_out_mean_comparisons_spatial
    )
  return(out)
}

vec_variables = c("y1", "y1", "y1")
out = lapply(vec_variables, workflow_spatial, data_model_spatial)
names(out) = vec_variables


list_out_check_model = list("spatial_1" = out_check_spatial, "spatial_2" = out_check_spatial_2, "spatial_3" = out_check_spatial_3)

out_parameter_groups = parameter_groups(list_out_check_model, "germplasm" )
p_germplasm_group = plot(out_parameter_groups)

p_post_hoc_variation = post_hoc_variation(list_out_check_model)


priviere/PPBstats documentation built on May 6, 2021, 1:20 a.m.