如何从vegan包decostand()的标准化结果反推原始值?
从vegan包decostand()的range标准化结果还原原始数值
结论:可以还原,但必须保留或重新获取标准化时所用原始数据的最小值和最大值
decostand()函数中method='range'的标准化公式为:
标准化值 = (原始值 - 最小值) / (最大值 - 最小值)
通过逆运算即可推导原始值:
原始值 = 标准化值 × (最大值 - 最小值) + 最小值
具体操作步骤
- 提取原始数据对应变量的极值
若未保存当初的极值,可从原始数据重新计算(假设原始数据框为raw_df,目标变量为target_var):target_min <- min(raw_df$target_var, na.rm = TRUE) target_max <- max(raw_df$target_var, na.rm = TRUE) - 对标准化数据执行逆运算
假设标准化后的变量为stand_var,计算还原后的原始值:restored_var <- stand_var * (target_max - target_min) + target_min
关键注意点
- 必须保证还原所用的最小值、最大值与当初标准化时完全一致,否则还原结果会失真
- 若标准化的是多列变量,需为每一列单独匹配对应的极值后再执行还原操作
内容的提问来源于stack exchange,提问作者Mushroom Luvin
相关产品推荐
相关产品推荐

