从方差分析到遗传力:一步步拆解广义遗传力的计算逻辑

发布时间:2026/7/14 10:24:38
从方差分析到遗传力:一步步拆解广义遗传力的计算逻辑 1. 广义遗传力究竟是什么第一次接触遗传力这个概念时我也被各种专业术语绕晕了。简单来说广义遗传力就像是在问一个性状比如身高、产量的差异有多少是基因决定的有多少是环境影响的举个例子同一块地里种的不同玉米品种有的长得高有的长得矮这种差异可能来自品种本身的遗传特性遗传方差也可能来自土壤肥力不均等环境因素环境方差。广义遗传力的计算公式特别直观H² 遗传方差 / 表现型总方差。这个比值越接近1说明性状差异主要受遗传因素控制越接近0则说明环境因素占主导。在实际育种中我们会优先选择遗传力高的性状进行改良因为这类性状更容易通过选育稳定遗传给后代。这里有个常见的理解误区遗传力高不代表性状本身的重要性只反映该性状受遗传控制的程度。比如玉米的株高和产量可能具有完全不同的遗传力但这并不直接说明哪个性状更重要。2. 方差分析遗传力的计算基石2.1 从田间试验到数据表格假设我们做了个小麦品种比较试验3个品种每个品种种了5个重复小区最后测量了每小区的千粒重。原始数据大概长这样品种重复1重复2重复3重复4重复5品种A45.246.144.845.546.0品种B38.639.238.939.538.7品种C42.341.842.541.942.4这种有重复的多品种试验设计正是计算遗传力的理想数据。通过方差分析ANOVA我们可以把总变异分解为品种间变异遗传方差和品种内变异环境方差。2.2 手算方差分析详解虽然现在都用软件计算但了解手算过程对理解原理特别有帮助。以R语言为例计算过程是这样的# 构建数据框 variety - rep(c(A,B,C), each5) weight - c(45.2,46.1,44.8,45.5,46.0, 38.6,39.2,38.9,39.5,38.7, 42.3,41.8,42.5,41.9,42.4) data - data.frame(variety, weight) # 方差分析 model - aov(weight ~ variety, datadata) summary(model)输出结果会包含几个关键值品种间方差组间均方65.33品种内方差组内均方0.67自由度组间df2组内df12这里有个实用技巧组间均方直接就是遗传方差(σ²g)而组内均方则是环境方差(σ²e)。表现型总方差σ²g σ²e 65.33 0.67 66.0。3. 遗传力公式的深层逻辑3.1 单次观测值的遗传力对于没有重复的数据比如每个品种只测一次遗传力计算最简单 H² σ²g / (σ²g σ²e)用前面的例子就是 H² 65.33 / (65.33 0.67) ≈ 0.99但这种情况在实际研究中很少见因为单个观测值受偶然误差影响太大。3.2 重复观测值的遗传力更常见的是有重复的情况比如每个品种测5次。这时环境方差要除以重复次数r H² σ²g / (σ²g σ²e/r)还是同样的数据r5时 H² 65.33 / (65.33 0.67/5) ≈ 0.998这个结果说明千粒重的差异几乎完全由遗传因素决定。不过要注意遗传力估计会受到试验设计的影响——重复次数越多环境方差的影响就越小遗传力估计值就越高。4. 实操中的注意事项4.1 试验设计要点计算可靠的遗传力需要合理的试验设计足够的重复次数一般每个品种至少3次重复随机化所有小区要随机排列避免系统误差环境一致性尽量保证各小区的光照、土壤等条件均匀我曾经做过一个对比试验同样的品种在完全随机设计和系统排列设计下遗传力估计值相差了15%。这就是没有做好随机化导致的偏差。4.2 软件操作技巧用SPSS做方差分析时要注意勾选描述统计和方差同质性检验。如果Levene检验显示方差不齐p0.05就需要对数据进行转换或使用非参数方法。R语言用户可以使用agricolae包中的heritability()函数直接计算遗传力library(agricolae) h2 - heritability(model, r5) print(h2)这个函数会自动考虑重复次数省去手动计算的麻烦。不过建议先用基础方法算几次理解了原理再用便捷函数。