← до дашборду · 📘 Загальна методологія /sim § Двигун BLUP 📚 Джерела

Симулятор дизайну дисертації

Повний BLUP walk-through: 8 трейтів, mating type, G×L, multi-year

Вводь дані в розділ 3 → «▶ Перерахувати» → покроковий розв'язок BLUP для обраного трейту, потім агрегація в СПЦ і клас.

Зміст

  1. Що симулюємо
  2. Модель фенотипу
  3. Дано (редагується)
  4. Крок 1. Агрегація
  5. Крок 2. Матриця A (з mating type)
  6. Крок 3. σ_p, σ²_L, σ²_GL, σ²_e (з даних)
  7. Крок 4. Фіксовані ефекти (μ, L, GL)
  8. Крок 5. Відхилення d_i
  9. Крок 6. EBV (BLUP)
  10. Крок 7. Reliability
  11. Крок 8. Стандартизація
  12. Крок 9. СПЦ (multi-trait)
  13. Крок 10. Клас
  14. Рейтинг маток
  15. Чому такі формули (виведення)
  16. Практичні вправи
  17. Джерела

1. Що симулюємо

Симулятор проходить повний BLUP-пайплайн від сирих даних до присвоєння класу (CD-043). Вводиш матки з родоводом, mating type мам, пасіки, роки, виміри 8 трейтів → отримуєш EBV per queen per trait, reliability, СПЦ (сумарну племінну цінність) і клас.

Що включено (v6): 8 трейтів, mating type мам (впливає на A-матрицю), G×L взаємодія, σ_p обчислюється з даних, multi-year підтримка (спрощено).
Спрощення для навчання: BLUP розв'язується як індивідуальна модель з A-матрицею, без двокомпонентної Bienefeld (A_queen + A_worker). Ваги СПЦ — задаються (не з даних, це рішення).

2. Модель фенотипу

(2.1) Модель
y_ijkl = μ + L_j + Y_k + GL_ij + a_i + e_ijkl
КомпонентПриродаЩо означає
μконстантаСереднє популяції.
L_jфіксованийЕфект j-ї пасіки.
Y_kфіксованийЕфект k-го року (сезону).
GL_ijвипадковийВзаємодія «мати × пасіка» (~N(0, σ²_GL)).
a_iвипадковийАдитивна генетика i-ї матки (~N(0, σ²_A)). Це EBV.
e_ijklвипадковийЗалишок (~N(0, σ²_e)).

3. Дано (редагується)

Введи свої матки/родовід/фенотипи. Або обери пресет.

або Демо приклад

3.1 Список трейтів (редагується)

Дано
h² — літ. успадкованість (Bienefeld/BeeBreed). Вага — знак для СПЦ (+1 бажано, −1 небажано напр. рійливість). Кнопка «Оцінити h²» — метод 2 (sib analysis) на твоїх реальних даних.

3.2 Мами (засновниці) з mating type

Дано
Mating type визначає a_ij між дочками одної мами: free = 0.25, II з 1 трутнем = 0.75, II з групою братів = 0.50, МПТ = 0.375 (Bienefeld).

3.3 Пасіки-локації

Дано

3.4 Роки (сезони)

Дано
Через кому. Один рік — Y_k drop'ується з моделі.

3.5 Матки та їхні виміри

Дано
Виміри — числа через кому для кожного трейту. Порожньо → трейт не вимірювався у цієї матки.
Змінив дані → тисни для оновлення.
Показати покроковий розв'язок для трейту:
Внизу — детальний walk-through для обраного трейту. Кроки 9-10 (СПЦ, клас) агрегують ВСІ 8 трейтів.

Родовід

4. Крок 1. Агрегація фенотипів per queen

Формула
ȳ_i = (y_i1 + y_i2 + ... + y_in) / n_i
Розв'язок
Результат

5. Крок 2. Матриця спорідненості A (з mating type)

Формули
a_ii = 1                                (сама з собою)
a_ij = a_within[мама.mating_type]        (напівсестри/супер-сестри тощо)
a_ij = 0                                 (не споріднені)
Розв'язок
Результат — A (n×n)

6. Крок 3. Компоненти дисперсії (з даних + літ. h²)

σ_p обчислюємо з даних (variance всіх y). σ²_L, σ²_GL — з ANOVA-декомпозиції. σ²_A через h² літ. σ²_e — залишок.

Формули
σ²_p  = variance(усі ȳ_i)               (дисперсія фенотипу — загальна)
σ²_L  = between-apiary variance         (дисперсія ефекту пасіки)
σ²_GL = interaction variance             (дисперсія взаємодії мати × пасіка)
σ²_A  = h² · σ²_p                        (адитивна дисперсія — з літ. h²)
σ²_e  = σ²_p − σ²_A − σ²_L − σ²_GL      (залишкова дисперсія / шум)
Розшифровка термінів:
  • σ²дисперсія (син. «варіанса», variance). Міра розкиду даних навколо середнього. Одиниця = (одиниця_ознаки)².
  • σстандартне відхилення (standard deviation, SD). Корінь з дисперсії: σ = √σ². Одиниця = одиниця ознаки (kg, рамки тощо).
  • SEстандартна помилка середнього (standard error of the mean). SE = σ / √N. Показує наскільки точно ми оцінили середнє з вибірки: більше N → менше SE. Не плутати з σ (SE = похибка ОЦІНКИ середнього, а σ = розкид самих даних).
  • μсереднє популяції (генеральне середнє). Теоретичне.
  • ȳвибіркове середнє (grand mean). Оцінка μ з наших даних.
  • SS_totalсума квадратів відхилень від ȳ. SS = Σ(y − ȳ)². Використовується у формулі дисперсії: σ² = SS / (N − 1).
  • CVкоефіцієнт варіації = σ / μ × 100%. Безрозмірна міра розкиду (у %). Дозволяє порівнювати розкид різношкальних ознак.
  • коефіцієнт успадковуваності = σ²_A / σ²_p. Частка дисперсії, що обумовлена адитивною спадковістю. Число у (0, 1).
Розв'язок
Результат

7. Крок 4. Фіксовані ефекти (μ, L, GL)

Формули
μ    = mean(усі ȳ_i)
L_j  = mean(ȳ_i на пасіці j) − μ
GL_ij = mean(ȳ у клітинці мати_i, пасіка_j) − μ − L_j − mother_effect_i
Розв'язок
Результат

8. Крок 5. Відхилення d_i

Формула
d_i = ȳ_i − μ − L_j − GL_ij
Розв'язок
Результат

9. Крок 6. EBV per queen (BLUP)

MME
(diag(n_i) + λ·A⁻¹) · û = n_i · d_i    де  λ = σ²_e / σ²_a
Розв'язок
Результат — EBV per queen

10. Крок 7. Reliability per queen

Формула
r²_i = 1 − PEV_i / σ²_a,  PEV_i = діагональ (LHS⁻¹) · σ²_e
Розв'язок
Результат

11. Крок 8. Стандартизація EBV

Формула
EBV_std_i = EBV_i / σ_a
Розв'язок
Результат

12. Крок 9. СПЦ — агрегація 8 трейтів

Тут ВЖЕ використовуємо ВСІ 8 трейтів, не тільки обраний. Кроки 1-7 для кожного з інших 7 трейтів виконуються так само (не показуємо детально — тільки результати).

Формула
СПЦ_i = 100 + 10 · Σ_t (w_t · EBV_std_i,t)
       (сума по всіх трейтах t, w_t — ваги з розділу 3.1)
Розв'язок
Результат — СПЦ per queen (по всіх 8 трейтах)

13. Крок 10. Клас за CD-043

Пороги CD-043
  • СПЦ ≥ 115 → Еліта
  • 100 ≤ СПЦ < 115 → Племінна
  • 85 ≤ СПЦ < 100 → Виробнича
  • СПЦ < 85 → Брак
Умова: середня r² по всіх трейтах ≥ 30%.
Розв'язок
Результат

14. Рейтинг маток

За замовчуванням сортовано за СПЦ спадаючи. Клік на заголовок колонки — змінити сортування. Фільтри — уточнити список.

Фільтри

15. Чому такі формули (виведення)

Розділ для захисту: пояснює чому MME виглядає саме так, звідки береться λ = σ²_e/σ²_a, чому PEV = diag(C⁻¹)·σ²_e, і як BLUP співвідноситься з байєсівським оцінюванням. Це не ще одні обчислення — це логіка позаду формул із §9-§10.

15.1 Байєсівський погляд на BLUP

Модель у матричній формі
y = Xβ + Zu + e
   u ~ N(0, A · σ²_a)      (апріорний розподіл племінних цінностей)
   e ~ N(0, I · σ²_e)      (залишок)
СимволРозмірЩо означає
yn×1Вектор фенотипів (усі спостереження, не по маток).
βp×1Фіксовані ефекти (μ, L_j, Y_k). Це НЕ «те, чим ми керуємо» — це систематичні негенетичні ефекти, які ми спостерігаємо у даних і оцінюємо (пасіка, рік).
uq×1Випадкові племінні цінності (по одному на матку). Це саме те, що ми хочемо оцінити — вектор EBV.
Xn×pМатриця інциденції фіксованих ефектів: X[i, j] = 1, якщо спостереження i підпадає під фіксований рівень j.
Zn×qМатриця інциденції випадкових ефектів: Z[i, j] = 1, якщо спостереження i належить матці j. Це НЕ «вулик-матка», а «спостереження-матка».
Aq×qМатриця споріднення (з §5). Задає структуру коваріацій апріорі: Cov(u_i, u_j) = a_ij · σ²_a.
en×1Залишок: усе, що не пояснено моделлю.
Логіка: ми маємо апріорну інформацію про u — з педигрі знаємо, що напівсестри мали б корелювати за a=0.25. Дані y оновлюють цю апріорну оцінку → отримуємо апостеріорну оцінку û. BLUP û — це апостеріорне середнє (posterior mean) при гауссових припущеннях. Це не просто «best linear unbiased»; під нормальністю BLUP збігається з байєсівським E[u|y].

15.2 Виведення λ = σ²_e / σ²_a (байєсівський shrinkage)

Розглянемо простий випадок: одна матка, n спостережень, немає родичів, немає фіксованих ефектів. Апріорі u ~ N(0, σ²_a). Умовно на u: y_k = u + e_k, e_k ~ N(0, σ²_e).

Апостеріорне середнє (одна матка)
û = (n/σ²_e) · Σy_k  /  (n/σ²_e + 1/σ²_a)
   = n · d  /  (n + σ²_e/σ²_a)
   = n · d  /  (n + λ)              де d = ȳ − μ
Що каже формула:
  • Якщо σ²_e велике (шум домінує) → λ велике → û сильно стягнене (shrunk) до 0 (до апріорного середнього).
  • Якщо σ²_e мале (дані чисті) → λ мале → û ≈ d (майже слідує за спостережуваним відхиленням).
  • Якщо n велике (багато спостережень) → n + λ ≈ n → û ≈ d (масив даних перебиває стягування).
Конкретний приклад: n=1, d=10, порівняння λ=0.5 vs λ=5
λ = 0.5 (чисті дані): û = 1·10 / (1 + 0.5) = 10 / 1.5 = 6.67
λ = 5.0 (шумні дані): û = 1·10 / (1 + 5)   = 10 / 6   = 1.67
Одне й те саме сире відхилення d=10, а BLUP-оцінки відрізняються у 4 рази — бо байєсівський shrinkage «не довіряє» шумним даним і повертає оцінку ближче до 0 (популяційне середнє).

15.3 Чому MME виглядає саме так

Повна матрична форма MME (Henderson 1975)
| X'X     X'Z            | | β̂ |   | X'y |
|                        | |   | = |     |
| Z'X     Z'Z + A⁻¹ · λ  | | û |   | Z'y |

Ці рівняння не постульовані, а виводяться з мінімізації штрафної функції:

Функція, яку MME мінімізує
Q(β, u) = ‖y − Xβ − Zu‖² / σ²_e  +  u' A⁻¹ u / σ²_a
ДоданокЩо штрафуєБайєсівський сенс
‖y − Xβ − Zu‖² / σ²_eПогана підгонка даних (residual sum of squares, зважений оберненою дисперсією шуму).−2·log p(y|β,u) з точністю до константи (правдоподібність).
u' A⁻¹ u / σ²_aВеликі u, що суперечать апріорній структурі A.−2·log p(u) з точністю до константи (апріорний розподіл N(0, Aσ²_a)).
Візьмемо частинні похідні ∂Q/∂β = 0 та ∂Q/∂u = 0, помножимо на σ²_e/2, отримаємо матричну систему вище. Множник λ = σ²_e/σ²_a виникає природно як співвідношення двох дисперсій — це і є ступінь довіри даним vs апріорі.
Що означає кожен блок LHS
  • X'X — інформація фіксовані × фіксовані ефекти (скільки спостережень покриває кожен рівень β).
  • X'Z, Z'X — перехрестна інформація фіксовані × випадкові (скільки спостережень поєднує β_j і u_k).
  • Z'Z — власна інформація per матка: діагональ Z'Z[i,i] = n_i (кількість спостережень матки i).
  • A⁻¹ · λрегуляризація з апріорі: пришиває u до структури родоводу; діагональ виростає для маток без даних, off-diagonal стягує родичів до подібних значень.
Спрощення до §9: у нашому симуляторі ми «всмоктуємо» фіксовані ефекти (μ, L, GL) заздалегідь у Кроці 4 (обчислюємо d_i = ȳ_i − μ − L_j − GL_ij). Це еквівалентно тому, що ми вже розв'язали верхній ряд MME для β̂ і підставили. Тоді нижній ряд редукується до:
(Z'Z + A⁻¹ · λ) · û = Z'(y − Xβ̂)
   → (diag(n_i) + λ · A⁻¹) · û = n_i · d_i
Це та сама формула, що у §9. Спрощення дидактичне; повна MME розв'язує β та u одночасно.

15.4 Чому PEV = diag(C⁻¹) · σ²_e

Позначимо LHS = C (coefficient matrix). Тоді C⁻¹ — масштабована коваріаційна матриця похибок оцінювання:

Виведення PEV
Var(û − u) = C⁻¹ · σ²_e            (це стандартний результат mixed model theory)
   PEV_i = Var(û_i − u_i) = C⁻¹[i,i] · σ²_e
Чому так: оскільки û — лінійна функція y, а Var(y) = ZAZ'σ²_a + Iσ²_e, ми можемо обчислити коваріацію похибок аналітично. Виходить, що зворотна LHS вже містить усю потрібну інформацію — залишається тільки відновити одиниці, помноживши на σ²_e. Це найдешевший спосіб отримати похибки для великих задач: обертання матриці раз дає і û, і PEV.
Reliability r²
r²_i = 1 − PEV_i / σ²_a
     = 1 − C⁻¹[i,i] · σ²_e / σ²_a
     = 1 − C⁻¹[i,i] · λ
Інтерпретація: r² — це частка адитивної дисперсії, яку ми пояснили оцінкою û. При r²=1 — ідеальна оцінка (PEV=0). При r²=0 — оцінка не краща за 0. Практично r²≥0.30 (CD-043) — мінімальна умова для присвоєння класу.

15.5 Виправлення поширених помилок інтерпретації

Помилка 1. «β — це те, чим ми керуємо». Ні. β — фіксовані ефекти пасіки, року — те, що ми спостерігаємо і оцінюємо, не контролюємо. Ми не можемо «поставити» L_П-02 = +2.5 kg; ми його оцінюємо з даних. Контролюємо ми зовсім інше — вибір матерів для схрещування (селекція u).
Помилка 2. «Z — це вулик-матка». Ні. Z — це спостереження-матка: рядок = одне вимірювання (напр. відкачка меду), стовпчик = матка. Z[i, j] = 1, якщо спостереження i зроблено на сім'ї матки j. Якщо одна матка має 3 відкачки — це 3 рядки Z, що вказують на один і той самий стовпчик j.
Джерело: Henderson (1984), Applications of linear models in animal breeding — розділи про MME. Виведення повторюється у Bienefeld et al. (2007) для бджіл, з двокомпонентним A (queen + worker). У симуляторі ми використовуємо однокомпонентну спрощену версію (§9 note).

16. Практичні вправи

Три числові вправи, які можна порахувати руками за 5-10 хвилин і перевірити результат у симуляторі (§3-§10). Це сита: якщо руками результат сходиться з симулятором — значить, розумієш формули; якщо ні — треба повернутись до §15 і виявити, де саме розуміння відхилилось.

16.1 Вправа 1 — Побудова A-матриці для sister-групи (3 дочки)

Дано
  • Мати M1 (як таксонометрична точка, не як матка у A-матриці) з mating_type = free (вільне парування, різні трутні для кожної дочки).
  • 3 дочки D1, D2, D3 цієї матері — напівсестри (сама мати, різні батьки-трутні).
  • За таблицею mating types: free → a_within = 0.25.

Про parent-offspring у бджолиному BLUP: у стандартній NRM (Wright 1922) parent-offspring = 0.5. Але у спрощеному bee-BLUP (наш симулятор + Bienefeld 2007) drone-батько не відстежується, а мати-цариця часто не оцінюється як окрема запис у A — тому у A-матриці ми враховуємо лише sister-relationships (a_within від mating type матері). Ця вправа саме про це.

Знайти
Побудувати A-матрицю (3×3) для трьох напівсестер D1, D2, D3.
Розв'язок покроково
Крок 1. Діагональ: a_ii = 1 для всіх (кожна матка з собою).
   a_11 = a_22 = a_33 = 1

Крок 2. D1↔D2, D1↔D3, D2↔D3 — усі три пари напівсестер через M1.
   За mating type «free» a_within = 0.25 для кожної пари.
   a_12 = a_13 = a_23 = 0.25

Крок 3. Симетрія: A[i,j] = A[j,i]. Заповнюємо нижній трикутник.

Крок 4. Результат:
        D1     D2     D3
   D1 [ 1.00   0.25   0.25 ]
   D2 [ 0.25   1.00   0.25 ]
   D3 [ 0.25   0.25   1.00 ]

Порівняння з іншими mating types (тільки для розуміння):
  free              → a_within = 0.25  (наш випадок)
  МПТ               → a_within = 0.375 (материнська селекція трутнів)
  II з групою братів → a_within = 0.50  (штучне осіменіння sister-drones)
  II з 1 трутнем    → a_within = 0.75  (super-sisters, все одне)
Перевірка у симуляторі
У §3.2 додай маму M1 з mating_type = free. У §3.5 додай три дочки D1, D2, D3 з посиланням на M1 (стовпець «мати»). Запусти «▶ Перерахувати», переглянь §5 «Матриця спорідненості A». Всі внедіагональні елементи мають бути = 0.25.

16.2 Вправа 2 — Bayes shrinkage λ (одна матка, одне спостереження)

Дано
  • Одна матка Q1 з одним спостереженням: y_1 = 50 kg (медової продуктивності).
  • Середнє популяції μ = 40 kg.
  • Немає фіксованих ефектів (одна пасіка, один рік, немає інших маток).
  • σ²_a = 30 (адитивна дисперсія, kg²), σ²_e = 70 (залишкова дисперсія, kg²).
Знайти
EBV û_1 через BLUP. Порівняти з «наївною» оцінкою d = y − μ.
Розв'язок покроково
Крок 1. Відхилення від середнього:
   d_1 = y_1 − μ = 50 − 40 = 10 kg
   Це «наївна» оцінка — якби ми довіряли одному вимірюванню повністю.

Крок 2. Обчислюємо λ (Bayes shrinkage factor):
   λ = σ²_e / σ²_a = 70 / 30 = 2.333

Крок 3. MME для однієї матки без родичів редукується до:
   (n + λ) · û = n · d
   де n = 1 (одне спостереження).

Крок 4. Підставляємо:
   (1 + 2.333) · û = 1 · 10
   3.333 · û = 10
   û = 10 / 3.333 = 3.0 kg

Крок 5. Інтерпретація:
   Сире відхилення 10 kg, а BLUP стягує до 3.0 kg.
   Частка «справжньої генетики» = 1 / (1 + λ) = 1 / 3.333 = 0.30 = 30%.
   Це і є h² в спрощеному випадку: 30/(30+70) = 0.30.
   Тобто BLUP каже: «з 10 kg відхилення тільки 3 kg — генетика, решта 7 kg — шум».
Перевірка у симуляторі
У §3 залиш ОДНУ маму M1 (free), ОДНУ дочку D1 з y=50 у трейті honey, ОДНУ пасіку, ОДИН рік. У §3.1 постав h²=0.30 для honey. Після «▶ Перерахувати»:
  • §6: σ²_p буде 0 (лише одна матка → немає дисперсії), тому σ²_A і λ поводяться граничним чином.
  • Правильний тест: додай ще одну маму M2 з дочкою D2, y=30 kg — тоді μ ≈ 40, σ²_p = 200, і симулятор обчислить свої λ та EBV. Порівняй логіку стягування (не точні числа, бо σ²_p ≠ 100).
  • Головний висновок вправи: EBV завжди менший за d за модулем (стягнутий до 0).

16.3 Вправа 3 — Reliability при збільшенні n

Дано
  • Та сама матка Q1, той самий фон (μ = 40, σ²_a = 30, σ²_e = 70, λ = 2.333).
  • Але тепер маємо 6 спостережень цієї матки, всі рівні 50 kg → ȳ = 50, d = 10.
Знайти
Новий û_1 та reliability r².
Розв'язок покроково
Крок 1. n = 6, d = 10 (не змінилося), λ = 2.333 (не змінилося).

Крок 2. MME:
   (n + λ) · û = n · d
   (6 + 2.333) · û = 6 · 10
   8.333 · û = 60
   û = 60 / 8.333 = 7.2 kg

Крок 3. PEV (діагональ LHS⁻¹ · σ²_e):
   Для 1×1 матриці LHS = 8.333, тому LHS⁻¹ = 1/8.333 = 0.120.
   PEV = 0.120 · σ²_e = 0.120 · 70 = 8.4 kg²

Крок 4. Reliability:
   r² = 1 − PEV / σ²_a = 1 − 8.4 / 30 = 1 − 0.28 = 0.72

Крок 5. Інтерпретація (важливо для захисту):
   — При n=1: û = 3.0 (30% від d), r² = 1 − 70/(30·3.333) ≈ 0.30.
   — При n=6: û = 7.2 (72% від d), r² = 0.72.
   6 спостережень майже перебороли байєсівське стягування.
   r² 0.72 — це відмінно (за CD-043 поріг ≥0.30 для присвоєння класу).

   Правило пам'яті: чим більше n, тим ближче û до d і тим вища r².
   Асимптотично при n→∞: û → d, r² → 1.
Перевірка у симуляторі
У §3.5, для дочки D1 у трейті honey постав «50,50,50,50,50,50» (6 однакових значень через кому). Додай ще одну дочку D2 з іншим значенням (напр. 30 kg) — щоб не було σ²_p=0. Постав h²=0.30 для honey. Після «▶ Перерахувати»:
  • §4: ȳ_D1 = 50 (середнє).
  • §6: подивись σ²_A, σ²_e, λ. Вони не збігатимуться з вправою точно (бо симулятор рахує σ²_p з даних, а у вправі ми фіксували), але порядки величин мають бути схожі.
  • §10: r² для D1 має бути суттєво вища, ніж якщо було б лише одне значення. Це головне.
Патерн, який має підтвердитись: при 1 vs 6 спостереженнях reliability стрибає у 2+ рази.
Резюме трьох вправ:
  • Вправа 1 — структура: A-матриця будується детермінованим правилом за педигрі + mating type.
  • Вправа 2 — shrinkage: BLUP стягує оцінку до апріорного середнього; сила стягування = λ.
  • Вправа 3 — інформаційний контент: n записів переборюють шум; r² зростає з n.
Три вправи покривають три головні механізми BLUP: апріорі (A), правдоподібність (d), компроміс (λ).

17. Джерела


Обчислюється на клієнті. Дата: .