Modelos mistos aplicados ao melhoramento genético



Dr. Filipe Manoel Ferreira

Cronograma - Dia 1

  • Introdução à genética quantitativa

  • Introdução à teoria de modelos mistos

  • Análise de um experimento em DBC

  • Análise de um experimento em DBI

Quem sou eu na fila do pão?

Formação:

  • Eng. Florestal (UFV)
  • M. Sc. Genética e Melhoramento (UFV)
  • Dr. Genética e Melhoramento (UFV)
  • Pós-doutorando no LAMPAF

Interesses:

  • Genética quantitativa
  • Melhoramento Florestal
  • Genética estatística
  • Programação

Objetivos


  1. Entender conceitos básicos sobre genética quantitativa

  2. Entender como modelos mistos são aplicados nos melhoramentos de plantas

  3. Aprender a analisar e interpretar dados de DBC e DBI

Introdução à genética quantitativa

Princípios de genética quantitativa



Leis de Mendel


Todas as características podem ser explicadas pelas leis de Mendel?



Principais diferenças entre características quantitativas e quantitativas
Caráter Qualitativo Caráter Quantitativo
Controlado por um ou poucos genes Controlado por vários genes
Pouco influenciada pelo ambiente Muito influenciada pelo ambiente
Variação discreta (classes) Variação contínua
Estudo a nível de indivíduos Estudo a nível de população (amostra)
Contagem e proporção Parâmetros estatísticos (média, variância, covariância, correlação)
Análise de gerações: P1, P2, F1, F2, RC1, RC2 Delineamentos experimentais e genéticos
Cor da flor: branca ou roxa Altura variação contínua

Quanto maior o nº de genes \(n\), maior o nº de classes genótípicas

  • nº classes genotípicas: \(3^n\)
  • nº classes fenotípicas: DC = \(2^n\) AD = \(3^n\)

Modelo infitesimal de Fisher


A variação em uma característica quantitativa é influenciada por um número infinitamente grande de genes, cada um dos quais faz uma contribuição infinitamente pequena (infinitesimal) para o fenótipo, bem como por fatores ambientais.

Influência do Ambiente

  • Problema: quando a interação genótipos \(\times\) ambientes (IGA) é responsável por alterar a ordem de classificação dos genótipos
  • Abordagens estatísticas devem ser utilizadas para explorar ou mitigar os impactos da IGA
  • Dentre elas destacam-se as baseadas em modelos mistos
  • Os modelos mistos são flexíveis permitindo:

    • Comparar diversas estruturas de covariância,
    • Estudar adaptabilidade e estabilidade
    • Identificar e subdividir a população-alvo de ambientes de acordo com o desempenho dos genótipos.

Introdução à teoria de modelos mistos

van Eeuwijk et al. (2016)

Melhoramento genético

  • Deslocar a média de uma dada característica na direção desejada
  • Necessitam de conceitos estatísticos para decompor a variação observada em causas genéticas e ambientais.

Decompondo a variância observada

  • Após estimar os componentes de variância, consigo predizer os valores genéticos para cada indivíduo
  • Utilizar desenhos experimentais e conhecimentos de estatística e genética quantitativa para separar o efeito genotípico dos demais efeitos (ambiental)

Modelos Estatísticos

Modelos estocásticos que são representações simplificadas da realidade através de equações matemáticas

\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf e\]

Modelos Estatísticos




\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf W \mathbf i + \mathbf e\]

Medidas Repetidas





\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf W \mathbf i + \mathbf T \mathbf p + \mathbf e\]

Natureza do Efeito

  • Níveis dos fatores não alteram (Princípio ativo de defensivos)

\[ H_0 = m_{A1} = m_{A2} = m_{A3}\]

  • Não repete os mesmos níveis (amostragem aleatória de uma distribuição de densidade)

  • Posso expandir as inferência para outros níveis

\[H_0 = \sigma^2_x = 0\]

Efeito aleatório

  • Não tem interesse em testar uma hipótese de diferença entre níveis
  • Quer quantificar a variabilidade entre níveis
  • Quer fazer predições sobre níveis não observados
  • Tem níveis que são amostras aleatórias representativas de uma população maior
  • Interessados na variabilidade da variável aleatória:
    • Necessito de um número mínimo de níveis na variável aleatória (geralmente cinco) para conseguimos estimar esta variação com certa confiabilidade

\[H_0 = \sigma^2_x = 0\]

Delineamento em Blocos Casualizados

{width= “80”}

Delineamento em Blocos Casualizados

\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf e \]

\(\boldsymbol \beta\) = bloco (fixo)

\(\mathbf u\) = genético (aleatório)

\(\mathbf e\) = resíduo (aleatório)

\[ \begin{equation} \begin{bmatrix} {\bf u} \\ {\bf e} \\ \end{bmatrix} \sim N \left( \mathbf 0, \begin{bmatrix} {\sigma_{\text{u}}^2} \mathbf K &{\mathbf 0} \\ {\mathbf 0} & {\sigma_{\text{e}}^2} \mathbf R \\ \end{bmatrix} \right) \end{equation} \]

Equações de Modelos Mistos (Henderson 1959, 1963)


\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf e\]

\[\begin{equation} \begin{bmatrix} {\mathbf X^´ \mathbf X} & { \mathbf X^´ \mathbf Z}\\ {\mathbf Z^´ \mathbf X} & {\mathbf Z^´\mathbf Z + \lambda \mathbf K^{-1}} \\ \end{bmatrix} \begin{bmatrix} \mathbf {\hat{b}} \\ \mathbf {\hat{u}} \\ \end{bmatrix}= \begin{bmatrix} {\mathbf X^´ \mathbf y}\\ {\mathbf Z^´ \mathbf y} \end{bmatrix} \end{equation}\]

Shrinkage

Piepho et al. (2008)

\[BLUE_i = \hat{a_i} = (\bar{y_i} - \bar{y})\]

\[BLUP_i = \hat{a_i} = \frac{\sigma_a^2}{\sigma_a^2 + \sigma_e^2/n}(\bar{y_i} - \bar{y})\]




REML/BLUP

Assume que os parâmetros seguem uma distribuição Normal – tenho que estimar os parâmetros

Patterson & Thompson (1971)



REML

Restricted/residual Maximum Likelihood


“Encontrar uma boa maneira de ajustar uma distribuição aos dados”



BLUP

Best Linear Unbiased Prediction


“Calcular valores genéticos errando pouco”

Henderson (1975)

\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \mathbf e\]

\[\begin{equation} \begin{bmatrix} {\mathbf X^´ \mathbf X} & { \mathbf X^´ \mathbf Z}\\ {\mathbf Z^´ \mathbf X} & {\mathbf Z^´ \mathbf Z + \lambda_1 \mathbf K^{-1}} \\ \end{bmatrix} \begin{bmatrix} \mathbf{\hat{b}} \\ \mathbf{\hat{u}} \\ \end{bmatrix}= \begin{bmatrix} {\mathbf X^´ \mathbf y}\\ {\mathbf Z^´ \mathbf y} \end{bmatrix} \end{equation}\]


\[ \mathbf y = \mathbf X \boldsymbol \beta + \mathbf Z \mathbf u + \color{red}{\mathbf W\mathbf p}+ \mathbf e\]

\[\begin{equation} \begin{bmatrix} {\mathbf X^´ \mathbf X} & { \mathbf X^´\mathbf Z} & \color{red}{\mathbf X^´\mathbf W}\\ {\mathbf Z^´ \mathbf X} & {\mathbf Z^´\mathbf Z + \lambda_1 \mathbf K^{-1}} & \color{red}{\mathbf Z^´\mathbf W}\\ \color{red}{\mathbf W^´ \mathbf X} & \color{red}{\mathbf W^´ \mathbf Z} & \color{red}{\mathbf W^´ \mathbf W + \lambda_2 \mathbf K^{-1}} \end{bmatrix} \begin{bmatrix} \hat{\mathbf b} \\ \hat{\mathbf u} \\ \color{red}{\hat{\mathbf p}} \end{bmatrix}= \begin{bmatrix} {\mathbf X^´ \mathbf y}\\ {\mathbf Z^´ \mathbf y}\\ \color{red}{\mathbf W^´ \mathbf y}\\ \end{bmatrix} \end{equation}\]

\[\lambda_1 = (1- h^2)/ h^2\] \[h^2 = \sigma_g^2 / \sigma_f^2\]

\[\lambda_2 = (1- h^2- C^2)/ C^2\]

\[h^2 = \sigma_p^2 / \sigma_f^2\]


Resolvendo as equações de Modelos Mistos

\[\begin{equation} \begin{bmatrix} {\mathbf X^´ \mathbf X} & { \mathbf X^´ \mathbf Z}\\ {\mathbf Z^´ \mathbf X} & {\mathbf Z^´ \mathbf Z + \lambda_1 \mathbf K^{-1}} \\ \end{bmatrix} \begin{bmatrix} \hat{\mathbf b} \\ \hat{\mathbf u} \\ \end{bmatrix}= \begin{bmatrix} {\mathbf X^´ \mathbf y}\\ {\mathbf Z^´ \mathbf y} \end{bmatrix} \end{equation}\]

\[\begin{bmatrix} \hat{\mathbf b} \\ \hat{\mathbf u} \\ \end{bmatrix} = \begin{bmatrix} {\mathbf X^´ \mathbf y}\\ {\mathbf Z^´ \mathbf y} \end{bmatrix} \begin{equation} \begin{bmatrix} {\mathbf X^´ \mathbf X} & { \mathbf X^´ \mathbf Z}\\ {\mathbf Z^´ \mathbf X} & {\mathbf Z^´ \mathbf Z + \lambda_1 \mathbf K^{-1}} \\ \end{bmatrix}^{-1} \end{equation}\]

Resolvendo as equações de Modelos Mistos

Devo utilizar medidas de precisão como a acurácia seletiva

Parâmetros genéticos

  • Acurácia: Mede se o método de seleção adotado propicia uma inferência precisa e realista

Acurácia seletiva

\[ r = \sqrt{1- \frac{PEV}{\sigma^2_g}} \]

Em que \(PEV\) é a variância do erro de predição

  • É influenciada pela quantidade \((1-r)\)

Acurácia seletiva

  • No contexto da avaliação genotípica, o parâmetro estatístico mais importante é a acurácia seletiva
  • Este parâmetro refere-se à correlação entre o valor genotípico verdadeiro do tratamento genético e aquele estimado ou predito a partir das informações dos experimentos.
  • Como correlação, varia de 0 a 1, e os valores adequados de acurácia são aqueles próximos à unidade ou 100%.
  • Logo, é natural que valores elevados de acurácia sejam almejados nos experimentos de avaliação de cultivares

Resende & Duarte (2007)

Acurácia Seletiva

  • Fatores que influenciam a acurácia seletiva:

    • Número de repetições;
    • Variância residual;
    • Proporção \(\sigma_e^2/ \sigma_g^2\)
  • Classificação:

    • Baixa (0 – 0.49)
    • Moderada (0.50 – 0.69)
    • Alta (0.70 - 0.89) - Recombinação
    • Multo alta (0.90 – 1) - Recomendação

Resende & Alves (2020)

Herdabilidade

  • Herdabilidade: Coeficiente de determinação que mede quanto da variabilidade existente em uma população segregante é devido a causas genéticas. Sentido amplo, se contemplar os efeitos genotípicos, sentido restrito quando somente os efeitos genéticos aditivos estiverem sendo considerados.

\[ H^2=\frac{\sigma^2_g}{{\sigma^2_f}} \]

\[ h^2=\frac{\sigma^2_a}{{\sigma^2_f}} \]

\[ H^2_m=\frac{\sigma^2_g}{\overline{\sigma^2_f}} \]

\[ h^2_m=\frac{\sigma^2_a}{\overline{\sigma^2_f}} \]

Herdabilidade

  • Estabelecer estratégias de seleção
  • Informa sobre o controle genético de cada caráter a ser melhorado
  • Quanto maior a herdabilidade maior o controle genético do caráter
  • Indica a facilidade de se praticar o melhoramento daquele caráter

Resende & Alves (2020)

Herdabilidade

Classificação das herdabilidade:

  • Baixa (0 – 0.15)

  • Moderada (0.15 – 0.50)

  • Alta (0.50 – 0.80)

  • Muito alta (0.80 – 1)

  • A acurácia e a herdabilidade são dois parâmetros genéticos muito importantes no melhoramento

Resende & Alves (2020)

Vantagens dos Modelos Mistos

Modelos lineares Fixos:

Independência entre as observações.

Relação linear: \(y = \alpha + \beta x\)

Modelos lineares Mistos:

Relaxa a pressuposição da independência entre observações

Considera a correlação entre níveis

Vantagens dos Modelos Mistos


Vantagens dos Modelos Mistos

  • Maximiza o ganho genético e a eficiência dos programas de melhoramento

  • Não exige balanceamento dos dados

  • Permite utilizar simultaneamente um grande número de informações, gerando estimativas precisas

Resende & Alves (2020)

Análise de um experimento em DBC

Banco de dados

data = data.frame(
  'gen' = factor(rep(paste0("G",1:5),2)),
  'rept' = factor(rep(paste0("R",1:2),each= 5)),
  'y' = c(18.36, 8.23, 16, 18.25, 9.95, 21.54, 7.25,10, 20, 10.01)
)

gen rept y
G1 R1 18.36
G2 R1 8.23
G3 R1 16.00
G4 R1 18.25
G5 R1 9.95
G1 R2 21.54
G2 R2 7.25
G3 R2 10.00
G4 R2 20.00
G5 R2 10.01

Modelo

\[ \mathbf y = \mathbf X \mathbf b + \mathbf Z \mathbf u + \mathbf e \]



\(\mathbf y \rightarrow\) vetor de observações (dimensão \(n \times 1\))

\(\mathbf X \rightarrow\) matriz de incidência dos efeitos fixos de repetição (dimensão \(n \times r\))

\(\mathbf b \rightarrow\) vetor dos efeitos fixos de repetição (dimensão \(r \times 1\))

\(\mathbf Z \rightarrow\) matriz de incidência dos efeitos aleatórios de genótipo (dimensão \(n \times g\))

\(\mathbf u \rightarrow\) vetor dos efeitos aleatórios de genótipos (dimensão \(g \times 1\)) [\(\mathbf u \sim N(\mathbf 0, \sigma^2_u \mathbf K)\)]

\(\mathbf e \rightarrow\) vetor dos efeitos residuais (dimensão \(n \times 1\)) [\(\mathbf e \sim N(\mathbf 0, \sigma^2_e \mathbf I)\)]

Distribuição marginal

\[ E(\mathbf y) = E(\mathbf X \mathbf b + \mathbf Z \mathbf u + \mathbf e) = \mathbf X \mathbf b \]

\[ V(\mathbf y) = V( \mathbf X \mathbf b + \mathbf Z \mathbf u + \mathbf e) = \mathbf Z V(\mathbf u) \mathbf Z' + V(\mathbf e) \\ V(\mathbf y) = \mathbf Z \mathbf G \mathbf Z' + \mathbf R = \mathbf H \]

em que \(\mathbf G\) e \(\mathbf R\) são as matrizes de covariâncias dos efeitos genotípicos e residuais, respectivamente.

Logo:

\[ \mathbf y \sim NMV( \mathbf X \mathbf b, \mathbf H) \]


Equação de Modelos Mistos de Henderson

  • Erros independentemente distribuídos: \(\mathbf R = \mathbf I \sigma^2_e\)

  • Parentesco desconhecido: \(\mathbf G = \mathbf I \sigma^2_g\)

\[ \begin{bmatrix} \mathbf X' \mathbf X & \mathbf X' \mathbf Z \\ \mathbf Z' \mathbf X & (\mathbf Z'\mathbf Z + \lambda \mathbf K^{-1}) \end{bmatrix} \begin{bmatrix} \mathbf b \\ \mathbf u \end{bmatrix} = \begin{bmatrix} \mathbf X' \mathbf y \\ \mathbf Z' \mathbf y \end{bmatrix} \]

\[ \begin{bmatrix} \mathbf X' \mathbf X & \mathbf X' \mathbf Z \\ \mathbf Z' \mathbf X & (\mathbf Z'\mathbf Z + \lambda \mathbf K^{-1}) \end{bmatrix} \begin{bmatrix} \mathbf b \\ \mathbf u \end{bmatrix} = \begin{bmatrix} \mathbf X' \mathbf y \\ \mathbf Z' \mathbf y \end{bmatrix} \]

\(\mathbf b\) e \(\mathbf u \rightarrow\) incógnitas.

\(\mathbf K \rightarrow\) matriz de parentesco (parentesco desconhecido, \(\mathbf K = \mathbf I\))

Assumindo componentes de variância conhecidos: \(\sigma^2_e = 6,17\) e \(\sigma^2_g = 26,42\)

\[\lambda = \frac{\sigma^2_e}{\sigma^2_u} = \frac{6,17}{26,42} = 0,23\]

\(\lambda \rightarrow\) fator de encolhimento:

Matrizes de incidência

X = model.matrix(y ~-1 + rept, data = data)
Z = model.matrix(y ~-1 + gen, data= data)

\[ \mathbf X = \begin{bmatrix} 1&0 \\ 1&0 \\ 1&0 \\ 1&0 \\ 1&0 \\ 0&1 \\ 0&1 \\ 0&1 \\ 0&1 \\ 0&1 \\ \end{bmatrix}_{10\times2} \]

\[ \mathbf Z = \begin{bmatrix} 1&0&0&0&0 \\ 0&1&0&0&0 \\ 0&0&1&0&0 \\ 0&0&0&1&0 \\ 0&0&0&0&1 \\ 1&0&0&0&0 \\ 0&1&0&0&0 \\ 0&0&1&0&0 \\ 0&0&0&1&0 \\ 0&0&0&0&1 \\ \end{bmatrix}_{10\times5} \]

gen rept y
G1 R1 18.36
G2 R1 8.23
G3 R1 16.00
G4 R1 18.25
G5 R1 9.95
G1 R2 21.54
G2 R2 7.25
G3 R2 10.00
G4 R2 20.00
G5 R2 10.01

Produtos

  • Cada produto entre matrizes fornecerá um diagnóstico do conjunto de dados:
  • \(\mathbf X' \mathbf X \rightarrow\) número de observações em cada repetição:
XlX = crossprod(X)

\[ \mathbf X' \mathbf X = \begin{bmatrix} 5&0 \\ 0&5 \\ \end{bmatrix}_{2\times2} \]

  • \(\mathbf Z' \mathbf Z \rightarrow\) número de observações por genótipo:
ZlZ = crossprod(Z)

\[ \mathbf Z' \mathbf Z = \begin{bmatrix} 2&0&0&0&0 \\ 0&2&0&0&0 \\ 0&0&2&0&0 \\ 0&0&0&2&0 \\ 0&0&0&0&2 \\ \end{bmatrix}_{5\times5} \]

  • \(\mathbf X' \mathbf Z \rightarrow\) número de observações de cada genótipo dentro de cada repetição:
XlZ = crossprod(X, Z)

\[ \mathbf X' \mathbf Z = \begin{bmatrix} 1&1&1&1&1 \\ 1&1&1&1&1 \\ \end{bmatrix}_{2\times5} \]

  • \(\mathbf Z' \mathbf X \rightarrow\) número de observações de cada repetição dentro de cada genótipo:
ZlX = crossprod(Z, X)

\[ \mathbf Z' \mathbf X = \begin{bmatrix} 1&1 \\ 1&1 \\ 1&1 \\ 1&1 \\ 1&1 \\ \end{bmatrix}_{5\times2} \]

  • \(\mathbf X' \mathbf y \rightarrow\) soma dos valores observados por repetição:
Xly = crossprod(X, data$y)

\[ \mathbf X' \mathbf y=\begin{bmatrix} 70.79 \\ 68.80 \\ \end{bmatrix}_{2\times1} \]

  • \(\mathbf Z' \mathbf y \rightarrow\) soma dos valores observados por genótipo:
Zly = crossprod(Z, data$y)

\[ \mathbf Z' \mathbf y=\begin{bmatrix} 39.90 \\ 15.48 \\ 26.00 \\ 38.25 \\ 19.96 \\ \end{bmatrix}_{5\times1} \]

Equação de MM


\[ \begin{bmatrix} \begin{bmatrix} 5&0 \\ 0&5 \\ \end{bmatrix} & \begin{bmatrix} 1&1&1&1&1 \\ 1&1&1&1&1 \\ \end{bmatrix} \\ \begin{bmatrix} 1&1 \\ 1&1 \\ 1&1 \\ 1&1 \\ 1&1 \\ \end{bmatrix} & \begin{bmatrix} 2.23&0&0&0&0 \\ 0&2.23&0&0&0 \\ 0&0&2.23&0&0 \\ 0&0&0&2.23&0 \\ 0&0&0&0&2.23 \\ \end{bmatrix} \end{bmatrix} \begin{bmatrix} \mathbf b \\ \mathbf u \end{bmatrix} = \begin{bmatrix} \begin{bmatrix} 70.79 \\ 68.80 \\ \end{bmatrix} \\ \begin{bmatrix} 39.90 \\ 15.48 \\ 26.00 \\ 38.25 \\ 19.96 \\ \end{bmatrix} \end{bmatrix} \]

BLUEs e BLUPs

  • BLUEs:

\[ \mathbf b = (\mathbf X' \mathbf H^{-1} \mathbf X)^{-1} \mathbf X' \mathbf H^{-1} \mathbf y \]

sigma2g = 26.42
sigma2e = 6.17

G = sigma2g*diag(1,5)
R = sigma2e*diag(1,10)

H = tcrossprod(Z %*% G, Z) + R
Hinv = solve(H)

BLUE = solve(crossprod(X, Hinv) %*% X) %*% (crossprod(X, Hinv)%*%na.omit(data$y))
  • BLUPs:

\[ \mathbf u = \mathbf G \mathbf Z' \mathbf H^{-1}(\mathbf y - \mathbf X \mathbf b) \]

BLUP = (tcrossprod(G, Z) %*% Hinv) %*% (data$y - X %*% BLUE)

Solução

\[ \begin{bmatrix} \mathbf b = \begin{bmatrix} 14.158 \\ 13.760 \end{bmatrix}\\ \mathbf u = \begin{bmatrix} 5.364 \\ -5.569 \\ -0.859 \\ 4.626 \\ -3.562 \end{bmatrix} \end{bmatrix} \]

Se houver desbalanceamento?

data = data.frame(
  'gen' = factor(rep(paste0("G",1:5),2)),
  'rept' = factor(rep(paste0("R",1:2),each= 5)),
  'y' = c(18.36, 8.23, 16, 18.25, NA, 21.54, NA,10, 20, 10.01)
)

gen rept y
G1 R1 18.36
G2 R1 8.23
G3 R1 16.00
G4 R1 18.25
G5 R1 NA
G1 R2 21.54
G2 R2 NA
G3 R2 10.00
G4 R2 20.00
G5 R2 10.01


Modelo

Não há mudanças no modelo:

\[ \mathbf y = \mathbf X \mathbf b + \mathbf Z \mathbf u + \mathbf e \]

Manteremos as pressuposições e assumiremos que os componentes de variância são conhecidos:

\(\sigma^2_e = 11,93\)

\(\sigma^2_g = 19,82\)


Matrizes de incidência

X = model.matrix(y ~ -1 + rept, data)
Z = model.matrix(y~-1 + gen, data= data)

\[ \mathbf X = \begin{bmatrix} 1&0 \\ 1&0 \\ 1&0 \\ 1&0 \\ 0&1 \\ 0&1 \\ 0&1 \\ 0&1 \\ \end{bmatrix}_{8\times2} \]

\[ \mathbf Z = \begin{bmatrix} 1&0&0&0&0 \\ 0&1&0&0&0 \\ 0&0&1&0&0 \\ 0&0&0&1&0 \\ 1&0&0&0&0 \\ 0&0&1&0&0 \\ 0&0&0&1&0 \\ 0&0&0&0&1 \\ \end{bmatrix}_{8\times5} \]

gen rept y
G1 R1 18.36
G2 R1 8.23
G3 R1 16.00
G4 R1 18.25
G5 R1 NA
G1 R2 21.54
G2 R2 NA
G3 R2 10.00
G4 R2 20.00
G5 R2 10.01

Produtos

XlX = crossprod(X)

\[ \mathbf X' \mathbf X = \begin{bmatrix} 4&0 \\ 0&4 \\ \end{bmatrix}_{2\times2} \]


ZlX = crossprod(Z, X)

\[ \mathbf Z' \mathbf X = \begin{bmatrix} 1&1 \\ 1&0 \\ 1&1 \\ 1&1 \\ 0&1 \\ \end{bmatrix}_{5\times2} \]

ZlZ = crossprod(Z)

\[ \mathbf Z' \mathbf Z = \begin{bmatrix} 2&0&0&0&0 \\ 0&1&0&0&0 \\ 0&0&2&0&0 \\ 0&0&0&2&0 \\ 0&0&0&0&1 \\ \end{bmatrix}_{5\times5} \]

XlZ = crossprod(X, Z)

\[ \mathbf X' \mathbf Z = \begin{bmatrix} 1&1&1&1&0 \\ 1&0&1&1&1 \\ \end{bmatrix}_{2\times5} \]

Xly = crossprod(X, na.omit(data$y))

\[ \mathbf X' \mathbf y=\begin{bmatrix} 60.84 \\ 61.55 \\ \end{bmatrix}_{2\times1} \]

Zly = crossprod(Z, na.omit(data$y))

\[ \mathbf Z' \mathbf y=\begin{bmatrix} 39.90 \\ 8.23 \\ 26.00 \\ 38.25 \\ 10.01 \\ \end{bmatrix}_{5\times1} \]

A dimensão dos produtos é a mesma, independente do desbalanceamento!

BLUEs e BLUPs

  • BLUEs:

\[ \mathbf b = (\mathbf X' \mathbf H^{-1} \mathbf X)^{-1} \mathbf X' \mathbf H^{-1} \mathbf y \]

sigma2g = 19.82
sigma2e = 11.93

G = sigma2g*diag(1,5)
R = sigma2e*diag(1,8)

H = tcrossprod(Z %*% G, Z) + R
Hinv = solve(H)

BLUE = solve(crossprod(X, Hinv) %*% X) %*% (crossprod(X, Hinv)%*%na.omit(data$y))
  • BLUPs:

\[ \mathbf u = \mathbf G \mathbf Z' \mathbf H^{-1}(\mathbf y - \mathbf X \mathbf b) \]

BLUP = (tcrossprod(G, Z) %*% Hinv) %*% (na.omit(data$y) - X %*% BLUE)

Solução

\[ \begin{bmatrix} \mathbf b = \begin{bmatrix} 14.533 \\ 14.420 \end{bmatrix}\\ \mathbf u = \begin{bmatrix} 4.216 \\ -3.929 \\ -1.125 \\ 3.582 \\ -2.744 \end{bmatrix} \end{bmatrix} \]

Exemplo prático

Agora que já temos uma ideia dos procedimentos por trás das análises, vamos utilizar os pacotes asreml-R[butlerASRemlRReferenceManual2018], lme4 [bates_lme4_2015] e lme4breeding [bates_lme4_2015] em bancos de dados reais.

Pacote necessário

library(lme4)
library(lme4breeding)
library(asreml)


Banco de dados

Utilizaremos um banco de dados disponível publicamente neste link, referente ao artigo de Chaves et al. (2022). O banco de dados contém 34 tratamentos avaliados em blocos completos casualizados, com 5 a 10 repetições por tratamento (sim, é desbalanceado), os quais foram avaliados por nove anos consecutivos. Para realizar as análises, escolheremos somente um ano (“Yr5”):

data = read.table("data_cupu.txt", header = TRUE, sep = ";")
data = data[data$Harvests == "Yr5",]
head(data)
Harvests Plots Replicates Hybrids yd wb
1001 Yr5 1171 1 H117 19.48000 0
1002 Yr5 1172 2 H117 18.59000 0
1003 Yr5 1173 3 H117 43.39667 0
1004 Yr5 1174 4 H117 39.90667 0
1005 Yr5 1175 5 H117 114.12000 0
1006 Yr5 1176 6 H117 34.98500 0


Definindo os fatores

Antes de montar o modelo, temos que transformas os vetores-coluna do conjunto de dados em fatores:

data = transform(data,
                 Hybrids = factor(Hybrids),
                 Replicates = factor(Replicates))

str(data)
'data.frame':   250 obs. of  6 variables:
 $ Harvests  : chr  "Yr5" "Yr5" "Yr5" "Yr5" ...
 $ Plots     : int  1171 1172 1173 1174 1175 1176 1177 1178 1179 1181 ...
 $ Replicates: Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 1 ...
 $ Hybrids   : Factor w/ 34 levels "H117","H118",..: 1 1 1 1 1 1 1 1 1 2 ...
 $ yd        : num  19.5 18.6 43.4 39.9 114.1 ...
 $ wb        : int  0 0 0 0 0 0 0 0 0 0 ...


Modelo

Antes de construir o modelo no pacote, é importante tê-lo em mente em termos lineares. No nosso caso, o modelo é o mesmo definido previamente nos exemplos manuais anteriores, com uma única diferença: a dimensão das matrizes e vetores:

\[ \mathbf y = \mathbf X \mathbf b + \mathbf Z \mathbf u + \mathbf e \]

Utilizando a sintaxe do ASReml-R, o modelo pode ser escrito da seguinte forma:

#asreml-R
mod.dbc = asreml(fixed = yd ~ Replicates,
               random = ~Hybrids,
               data = data)
ASReml Version 4.2 15/04/2025 10:21:21
          LogLik        Sigma2     DF     wall
 1     -733.6691      135.1139    240   10:21:21
 2     -733.5223      133.8850    240   10:21:21
 3     -733.3983      132.3498    240   10:21:21
 4     -733.3520      130.9607    240   10:21:21
 5     -733.3511      130.7648    240   10:21:21

A atribuição à um objeto (no nosso caso, mod.dbc1) é imprescindível para obtenção dos resultados. Agora que já ajustamos o modelo, quais os próximos passos?


1. Teste de hipóteses

Para modelos lineares mistos, a significância dos efeitos aleatórios é testadas via LRT (Likelihood Ratio Test):

\[ LRT = (-2 \times LogL_R) - (-2 \times LogL) \] isto é, a diferença entre o logaritmo do ponto máximo da função de verossimilhança residual entre um modelo completo e um modelo reduzido (\(LogL_R\)), isto é, sem o efeito em teste. Já temos o modelo completo, e, portanto, devemos ajustar o modelo reduzido (\(\mathbf y = \mathbf X \mathbf b + \mathbf e\)):

#asreml-R
mod.dbc.red = asreml(fixed = yd ~ Replicates,
               data = data)

Com os dois modelos, calculamos o LRT utilizando a função “lrt.asreml”:

#asreml-R
lrt.asreml(mod.dbc, mod.dbc.red)
Likelihood ratio test(s) assuming nested random models.
(See Self & Liang, 1987)

                    df LR-statistic Pr(Chisq)   
mod.dbc/mod.dbc.red  1       8.4414  0.001834 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Os valores do teste são comparados com os valores da distribuição \(\chi^2\), com um grau de liberdade e o p-valor desejado (geralmente \(p \le 0.05\) ou \(p \le 0.01\)). O número de graus de liberdade está relacionado com a diferença entre o número de parâmetros de um modelo para outro. Neste caso, a diferença é de somente um parâmetro: o efeito genotípico. Os valores \(\chi^2\) que determinarão se o efeito é significativo ou não são:

p-valor \(\chi^2\)
\(p \le 0.05\) 3.84
\(p \le 0.01\) 6.63

Portanto, conclui-se que o efeito genotípico é significativo à 1% de significância, pois \(LRT > \chi^2\) (\(8.44 > 6.63\)). Neste caso, podemos focar nos demais resultados.


2. Componentes de variância

O modelo fornecerá os componentes de variância dos efeitos aleatórios. No nosso exemplo, estes são o efeito genotípico e o efeito residual. O comando para obter os componentes de variância é:

summary(mod.dbc)$varcomp
component std.error z.ratio bound %ch
Hybrid 20.97277 10.25857 2.044414 P 0.2
Residual 130.76479 12.89100 10.143881 P 0.0

Perceba que a todo momento, nos referimos à estes valores como “componentes de variância”. De fato, eles compõem a variância total presente no experimento, dada pela variância fenotípica individual(\(\sigma^2_f\)). Portanto, \(\sigma^2_f\) é a soma dos componentes de variância do modelo: \[ \sigma^2_f = \sigma^2_g + \sigma^2_e \]

Esta variância pode ser ponderada pelo número de repetições, gerando a variância fenotípica a nível de médias: \[ \overline{\sigma^2_f} = \sigma^2_g + \frac{\sigma^2_e}{r} \]

em que \(r\) é o número de repetições.

No nosso conjunto de dados, teremos:

compvar = summary(mod.dbc)$varcomp
sig2f = sum(compvar[,1]); sig2f
[1] 151.7376
sig2f_med = compvar["Hybrids","component"]+compvar["units!R","component"]/
  nlevels(data$Replicates);sig2f_med
[1] 34.04925


3. Parâmetros genéticos

Alguns parâmetros genéticos são muito úteis para realizar algumas inferências

  • Acurácia \[ r = \sqrt{1- \frac{PEV}{\sigma^2_g}} \]

  • Confiabilide

Em que \(PEV\) é a variância do erro de predição.

No nosso conjunto de dados, utilizaremos os seguintes comandos:

pred = predict(mod.dbc, classify = "Hybrids", vcov = T)

PEVi = (pred$pvals$std.error)^2

confi = 1-(PEVi/compvar["Hybrids","component"]) #Confiabilidade por tratamento
acu = sqrt(1-mean(PEVi)/compvar["Hybrids","component"]) #Acurácia


  • Herdabilidade

  • A nível de indivíduos

\[ H^2 =\frac{\sigma^2_g}{{\sigma^2_f}} \]

  • A nível de médias

\[ H^2 =\frac{\sigma^2_g}{\overline{\sigma^2_f}} \]

numrep = nlevels(data$Replicates)

H2in = vpredict(mod.dbc, H2in ~ V1/(V1+V2))
H2med = compvar["Hybrids","component"]/(compvar["Hybrids","component"]+
                                          (compvar["units!R","component"]/numrep))

Em suma, temos:

data.frame(
  "Parâmetro" = c("Acurácia","Herdabilidade (individual)","Herdabilidade (médias)"),
  "Valor" = c(acu, H2in$Estimate, H2med)
)
Parâmetro Valor
Acurácia 0.7137
Herdabilidade (individual) 0.1382
Herdabilidade (médias) 0.6160


4. Seleção

Depois realizar o diagnóstico da população em estudo, podemos focar na seleção. O BLUP é a principal unidade de seleção para o melhoramento genético, por ponderar o desempenho do tratamento pela qualidade e quantidade de informações disponíveis (Piepho et al., 2008). Utilizando o ASReml-R, podemos ter o BLUP centralizado na média (média = 0), ou a média BLUP, isto é, o próprio BLUP somado ao intercepto do modelo. Previamente, já realizamos a função para obter a média BLUP:

pred = predict(mod.dbc, classify = "Hybrids")

O seguinte comando fornecerá um vetor com o BLUP centralizado na média:

summary(mod.dbc, coef=T)$coef.random

Unindo os dois e adicionando a confiabilidade por tratamento, teremos:

BLUP = cbind(pred$pvals[,1:2],summary(mod.dbc, coef=T)$coef.random[,1],confi)
colnames(BLUP)[2:4] = c("Média BLUP", "BLUP", "Confiabilidade")
BLUP
Hybrids Média BLUP BLUP Confiabilidade
Hybrids_H117 H117 35.2296 4.0644 0.6077
Hybrids_H118 H118 30.4242 -0.7375 0.6077
Hybrids_H120 H120 33.6385 2.4737 0.4220
Hybrids_H121 H121 32.5356 1.3723 0.6077
Hybrids_H123 H123 23.3141 -7.8423 0.6077
Hybrids_H124 H124 31.3248 0.1624 0.6077
Hybrids_H125 H125 38.0144 6.8446 0.4220
Hybrids_H126 H126 26.9144 -4.2434 0.4220
Hybrids_H127 H127 32.8653 1.7018 0.6077
Hybrids_H128 H128 24.9849 -6.1706 0.4220
Hybrids_H129 H129 34.7414 3.5754 0.4220
Hybrids_H130 H130 31.3595 0.1971 0.6077
Hybrids_H131 H131 28.3904 -2.7698 0.6077
Hybrids_H132 H132 28.2198 -2.9403 0.6077
Hybrids_H133 H133 29.2176 -1.9425 0.4220
Hybrids_H134 H134 28.5814 -2.5783 0.4220
Hybrids_H135 H135 29.8552 -1.3060 0.6077
Hybrids_H136 H136 27.6295 -3.5301 0.6077
Hybrids_H137 H137 30.8531 -0.3089 0.6077
Hybrids_H138 H138 28.7728 -2.3876 0.6077
Hybrids_H140 H140 36.1882 5.0206 0.4220
Hybrids_H143 H143 32.2477 1.0841 0.4220
Hybrids_H144 H144 34.1547 2.9891 0.4220
Hybrids_H149 H149 29.2388 -1.9213 0.4220
Hybrids_H150 H150 30.1974 -0.9640 0.4220
Hybrids_H152 H152 29.9012 -1.2601 0.6077
Hybrids_H157 H157 29.9525 -1.2083 0.4220
Hybrids_H161 H161 29.0226 -2.1372 0.4220
Hybrids_H162 H162 37.0073 5.8386 0.4220
Hybrids_H163 H163 32.2784 1.1148 0.4220
Hybrids_H165 H165 34.2080 3.0435 0.6077
Hybrids_H166 H166 30.3243 -0.8373 0.6077
Hybrids_H167 H167 33.9020 2.7369 0.4220
Hybrids_H169 H169 34.0316 2.8661 0.4220

Exemplo prático - Blocos incompletos

Nem sempre teremos as melhores condições para implantar o experimento. Por vezes, queremos testar um grande número de tratamentos que não possuem propágulos suficientes para que haja uma quantidade adequada de repetições. Outra situação comum é a limitação da área disponível para o experimento. De fato, a combinação das duas situações são corriqueiras no melhoramento. Neste caso, é comum montar experientos em blocos incompletos. Veja abaixo um comparativo entre o DBC e duas categorias de blocos incompletos, látice e blocos aumentados:

Banco de dados

A seguir, mostraremos um exemplo em um conjunto de dados reais cujos experimentos foram implantados em látice. Os dados estão disponíveis neste link, e foram utilizados no artigo de Dias et al. (2022). O banco de dados contém 36 tratamentos avaliados em látice com 6 blocos e 2 repetições, em quatro locais diferentes. Para realizar as análises, escolheremos somente um local (“E15”):

data.dbi = read.table("data.dbi.txt", header = TRUE, sep=",")
data.dbi = data.dbi[data.dbi$Location == 'E15',]
head(data.dbi)
Region Location Rep Block Hybrid GY
217 TR E15 1 3 G9 13.70
218 TR E15 1 6 G20 11.84
219 TR E15 1 5 G34 13.28
220 TR E15 1 4 G18 13.26
221 TR E15 1 6 G30 10.75
222 TR E15 1 5 G27 11.71


Definindo os fatores


Modelo

No banco de dados temos os efeitos de repetição e bloco. Geralmente, o efeito de repetição é considerado fixo. Já o efeito de bloco geralmente é aleatório. Quando a recuperação da informação interblocos for interessante, utiliza-se o efeito de blocos como aleatório. Caso contrário, este é tido como fixo. No exemplo, consideraremos este efeito como aleatório. Portanto, nosso modelo será:

\[ \mathbf y = \mathbf X \mathbf r + \mathbf Z_1 \mathbf u + \mathbf Z_2 \mathbf b +\mathbf e \]

em que \(\mathbf r\) é o vetor de efeitos de repetição acompanhado de sua matriz de incidência \(\mathbf X\), \(\mathbf u\) é o vetor de efeitos aleatórios de genótipos, com a matriz de incidência \(\mathbf Z_i\); \(\mathbf b\) é o vetor de efeito aleatórios de blocos dentro de repetições acompanhado de sua matriz de incidência \(\mathbf Z_2\); e \(\mathbf e\) é o vetor dos erros.

No ASReml-R, o modelo é descrito como:

mod.dbi = asreml(fixed = GY ~ Rep,
               random = ~Hybrid + Block,
               data = data.dbi)
mod.dbi = update(mod.dbi)


Uma vez ajustado o modelo, seguiremos os mesmos passos vistos anteriormente para o experimento em DBC:


1. Teste de hipóteses

mod.dbi.red = asreml(fixed = GY ~ Rep,
               random = ~ Block,
               data = data.dbi)
lrt(mod.dbi, mod.dbi.red)
Likelihood ratio test(s) assuming nested random models.
(See Self & Liang, 1987)

                    df LR-statistic Pr(Chisq)    
mod.dbi/mod.dbi.red  1        11.79 0.0002978 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


2. Componentes de variância

Neste exemplo, estes os efeito aleatórios são os genotípico, de bloco e residual.

summary(mod.dbi)$varcomp
component std.error z.ratio bound %ch
Block 0.0020220 0.0732382 0.0276084 P 0.2
Hybrid 0.6520864 0.2338199 2.7888406 P 0.0
Residual 0.5648757 0.1506578 3.7493958 P 0.0


3. Parâmetros genéticos

Primeiro, calcularemos a acurácia e a confiabilidade por tratamento:

compvar = summary(mod.dbi)$varcomp

pred = predict(mod.dbi, classify = "Hybrid", vcov = T)

PEVi = (pred$pvals$std.error)^2

confi = 1-(PEVi/compvar["Hybrid","component"]) #Confiabilidade por tratamento
acu = sqrt(1-mean(PEVi)/compvar["Hybrid","component"]) #Acurácia
[1] 0.8326237

Em seguida, calcularemos a herdabilidade:

H2 = vpredict(mod.dbi, h2 ~ V2/(V1+V2+V3))
    Estimate        SE
h2 0.5349425 0.1206246


4. Seleção

Para obter a média BLUP:

pred = predict(mod.dbi, classify = "Hybrid")

Para o BLUP centralizado na média:

summary(mod.dbi, coef=T)$coef.random[grep("Hybrid", rownames(summary(mod.dbi, coef=T)$coef.random)),]

Unindo os dois e adicionando a confiabilidade por tratamento, teremos:

BLUP = cbind(pred$pvals[,1:2],
             summary(mod.dbi, coef=T)$coef.random[grep("Hybrid", rownames(summary(mod.dbi, coef=T)$coef.random)),][,1],
             confi)
colnames(BLUP)[2:4] = c("Média BLUP", "BLUP", "Confiabilidade")
BLUP
Hybrid Média BLUP BLUP Confiabilidade
Hybrid_G1 G1 11.8164 0.0290 0.6933
Hybrid_G10 G10 10.4483 -1.3391 0.6933
Hybrid_G11 G11 13.0075 1.2201 0.6933
Hybrid_G12 G12 11.8032 0.0158 0.6933
Hybrid_G13 G13 12.8241 1.0367 0.6933
Hybrid_G14 G14 10.8266 -0.9607 0.6933
Hybrid_G15 G15 12.0308 0.2434 0.6933
Hybrid_G16 G16 11.6099 -0.1775 0.6933
Hybrid_G17 G17 11.2789 -0.5085 0.6933
Hybrid_G18 G18 12.5671 0.7797 0.6933
Hybrid_G19 G19 11.1630 -0.6244 0.6933
Hybrid_G2 G2 11.4782 -0.3092 0.6933
Hybrid_G20 G20 12.1248 0.3374 0.6933
Hybrid_G21 G21 11.5747 -0.2126 0.6933
Hybrid_G22 G22 12.2917 0.5043 0.6933
Hybrid_G23 G23 11.7837 -0.0036 0.6933
Hybrid_G24 G24 11.5033 -0.2840 0.6933
Hybrid_G25 G25 11.9767 0.1893 0.6933
Hybrid_G26 G26 11.4357 -0.3516 0.6933
Hybrid_G27 G27 11.6966 -0.0907 0.6933
Hybrid_G28 G28 11.9901 0.2027 0.6933
Hybrid_G29 G29 11.9266 0.1393 0.6933
Hybrid_G3 G3 11.4419 -0.3455 0.6933
Hybrid_G30 G30 11.6314 -0.1560 0.6933
Hybrid_G31 G31 11.4930 -0.2944 0.6933
Hybrid_G32 G32 11.2892 -0.4982 0.6933
Hybrid_G33 G33 11.1099 -0.6775 0.6933
Hybrid_G34 G34 12.4555 0.6681 0.6933
Hybrid_G35 G35 11.8374 0.0500 0.6933
Hybrid_G36 G36 10.9377 -0.8496 0.6933
Hybrid_G4 G4 11.0994 -0.6880 0.6933
Hybrid_G5 G5 11.1059 -0.6815 0.6933
Hybrid_G6 G6 11.5157 -0.2716 0.6933
Hybrid_G7 G7 13.1011 1.3137 0.6933
Hybrid_G8 G8 12.7287 0.9414 0.6933
Hybrid_G9 G9 13.4406 1.6532 0.6933

Referências utilizadas nesta apresentação

Chaves, S. F. S., Dias, L. A. S., Alves, R. S., Alves, R. M., Evangelista, J. S. P. C., & Dias, K. O. G. (2022). Leveraging multi-harvest data for increasing genetic gains per unit of time for fruit yield and resistance to witches’ broom in Theobroma grandiflorum. Euphytica, 218(12), 171. https://doi.org/10.1007/s10681-022-03126-5
Dias, K. O. G., Santos, J. P. R., Krause, M. D., Piepho, H.-P., Guimarães, L. J. M., Pastina, M. M., & Garcia, A. A. F. (2022). Leveraging probability concepts for cultivar recommendation in multi-environment trials. Theoretical and Applied Genetics, 135(4, 4), 1385–1399. https://doi.org/10.1007/s00122-022-04041-y
Henderson, C. R. (1975). Best Linear Unbiased Estimation and Prediction under a selection model. Biometrics, 31(2, 2), 423. https://doi.org/10.2307/2529430
Patterson, H. D., & Thompson, R. (1971). Recovery of inter-block information when block sizes are unequal. Biometrika, 58(3, 3), 545–554. https://doi.org/10.1093/biomet/58.3.545
Piepho, H.-P., Möhring, J., Melchinger, A. E., & Büchse, A. (2008). BLUP for phenotypic selection in plant breeding and variety testing. Euphytica, 161(1-2, 1-2), 209–228. https://doi.org/10.1007/s10681-007-9449-8
Resende, M. D. V., & Alves, R. S. (2020). Linear, generalized, hierarchical, bayesian and random regression mixed models in genetic/genomics in plant breeding. Functional Plant Breeding Journal, 2(2, 2), 1–31. https://doi.org/10.35418/2526-4117/v2n2a1
Resende, M. D. V., & Duarte, J. B. (2007). Precisão e controle de qualidade em experimentos de avaliação de cultivares. Pesquisa Agropecuária Tropical, 37(3, 3), 182–194.
van Eeuwijk, F. A., Bustos-Korts, D. V., & Malosetti, M. (2016). What should students in plant breeding know about the statistical aspects of genotype × environment interactions? Crop Science, 56(5, 5), 2119–2140. https://doi.org/10.2135/cropsci2015.06.0375



Obrigado


filipe.manoel@unesp.br



Até breve. 👋