合并ANOVA中基因型/环境/GxE互作方差占比及稳定性分析变异占比计算问询
嘿,针对你的这两个问题,我结合统计实践给你拆解清楚:
1. 合并方差分析(Pooled ANOVA)中基因型、环境及GxE互作的百分比方差计算
首先得明确:这里说的「百分比方差」,一般指的是各因素的方差分量占总方差的比例——毕竟我们做合并ANOVA(常用来分析多环境试验数据),核心就是要搞清楚不同变异来源的实际贡献,用方差分量来衡量会更准确。具体步骤如下:
第一步:先搞定合并ANOVA的基础表格
你得先把合并方差分析的结果算出来,得到这些关键数值:
- 基因型的平方和(SS_G)、自由度(df_G)、均方(MS_G)
- 环境的平方和(SS_E)、自由度(df_E)、均方(MS_E)
- 基因型×环境互作(GxE)的平方和(SS_GE)、自由度(df_GE)、均方(MS_GE)
- 误差的平方和(SS_error)、自由度(df_error)、均方(MS_error)
- 总平方和(SS_total = SS_G + SS_E + SS_GE + SS_error)
第二步:估算各因素的方差分量
这里要注意,我们得用随机效应模型来估算(因为基因型、环境、GxE都是我们从总体中抽样的变异来源),公式是:
- 误差方差分量(σ²_error)= MS_error
- GxE互作方差分量(σ²_GE)= (MS_GE - MS_error) / r (r是每个基因型-环境组合的重复次数)
- 基因型方差分量(σ²_G)= (MS_G - MS_GE) / (e*r) (e是环境的数量)
- 环境方差分量(σ²_E)= (MS_E - MS_GE) / (g*r) (g是基因型的数量)
第三步:计算百分比方差
先算出总方差:σ²_total = σ²_G + σ²_E + σ²_GE + σ²_error
然后各因素的百分比方差就是:
- 基因型百分比方差 = (σ²_G / σ²_total) × 100%
- 环境百分比方差 = (σ²_E / σ²_total) × 100%
- GxE互作百分比方差 = (σ²_GE / σ²_total) × 100%
如果有人说的「百分比方差」是指平方和占总平方和的比例(和你第二个问题的% Total SS类似),那直接用「对应因素SS / SS_total ×100%」就行,但方差分量的比例更能反映实际的变异贡献哦。
2. 基因型稳定性分析中变异百分比(% Total SS)的估算及Excel手动计算
估算方法
这里的% Total SS就是各因素的平方和占总平方和的比例,用来直观展示环境、基因型、GxE这三个变异来源分别贡献了多少总变异,步骤非常直接:
- 先通过ANOVA算出环境(SS_E)、基因型(SS_G)、GxE互作(SS_GE)以及总平方和(SS_total)
- 每个因素的% Total SS = (对应因素的SS / SS_total) × 100%
比如环境导致的变异百分比就是(SS_E / SS_total)×100%,基因型的就是(SS_G/SS_total)×100%,以此类推。
能不能用Microsoft Excel手动计算?
完全可以!哪怕不用Excel的数据分析工具库(用工具库会更快,但手动算也没问题),给你捋一遍手动操作的步骤:
- 第一步:整理数据:把试验数据做成表格,行放基因型,列放环境,每个单元格是对应基因型在该环境下的观测值(如果有重复,要么先算每个组合的均值,要么保留所有重复值)
- 第二步:算各类均值:
- 用
AVERAGE()算出每个基因型的总均值(行均值) - 算出每个环境的总均值(列均值)
- 算出所有数据的总均值(grand mean)
- 用
- 第三步:计算各平方和:
- 总平方和SS_total:用
SUMSQ()函数,把每个观测值减去总均值后的平方全部加起来 - 基因型平方和SS_G:每个基因型的均值减去总均值的平方,乘以该基因型的观测总数(环境数×重复数),然后把所有基因型的结果加起来
- 环境平方和SS_E:每个环境的均值减去总均值的平方,乘以该环境的观测总数(基因型数×重复数),然后把所有环境的结果加起来
- GxE互作平方和SS_GE:可以先算「每个基因型-环境组合的均值减去总均值的平方,乘以重复数」,全部相加得到SS_G+E+GE,再减去SS_G和SS_E,就得到SS_GE;或者直接算每个观测值减去基因型均值、环境均值,再加总均值,平方后求和
- 总平方和SS_total:用
- 第四步:计算% Total SS:把每个因素的SS除以SS_total,再乘以100%就搞定了
Excel里的SUMSQ()、COUNT()这些函数能帮你省不少手动计算的功夫,哪怕数据量不大,手动算也完全可行。
内容的提问来源于stack exchange,提问作者Lakshmi Pathy




