R语言入门:“Hellinger“转化和“normalize“转化(弦转化)的公式表示与R代码实现

1、写在前面

vegan包中的decostand()函数为群落生态学研究提供了一些流行的(和有效的)标准化方法。有关decostand()函数标准化的一些标准化方法可以看我的另一篇笔记:R语言入门:vegan包使用decostand()函数标准化方法

由于在网络上没有找到关于这两个转化的公式表示,而官方给出的解释又较为复杂,因此写了这篇笔记,帮助理解,方便日后复习查阅。 

进行样方标准化时,可采用:"Hellinger"转化和"normalize"转化(弦转化)。

2、Hellinger转化

2.1 Hellinger转化过程解释

函数将使用边际总数来对数据进行标准化。对于每个值将被除以该行或列的总和,以使得每个值在标准化后的行或列的总加和为1,在此之后对结果取平方根,即Hellinger转化。也可以理解为:“total”标准化后取平方根,即hellinger转化。

2.2 Hellinger转化的公示表示

Hellinger转化的对象是一系列的列向量或者行向量,总归来说是对几串数字的计算,假设这里处理的是一个m行n列的矩阵(m X n),其中,m为样本/观测/样方/重复,n为物种。需要对其进行样方标准化,即对行进行标准化,这里采用Hellinger转化(标准化)。

若以其中一行举例(x1,x2,x3,x4,…,xn),则对于每一个元素xi标准化过程可以表示为:

\sqrt{\frac{x_i}{x_1+x_2+...+x_n}}

2.3 Hellinger转化的代码实现
x.hel <- decostand(x, "hellinger", MARGIN, range.global, logbase = 2, na.rm=FALSE, ...)

注:若仅仅进行样方标准化,输入下面代码即可:

x.hel <- decostand(x, "hellinger")

参数说明:

  • x: 群落数据,类似矩阵的对象,用于进行标准化处理。
  • method: 标准化方法。
  • MARGIN: 如果默认不可接受,则为边界。这里默认为1,即对行向量进行标准化。
  • range.global: 在 method = "range" 中找到范围的矩阵。这允许在数据的子集之间使用相同的范围。 MARGIN 的维度必须与 x 匹配。
  • logbase: 在 method = "log" 中使用的对数基数。
  • na.rm: 忽略行或列标准化中的缺失值。
  • zap: 使接近零的值成为精确的零,以避免负值和夸张的物种丰富度估计。

3、Normalize转化

3.1 Normalize转化过程解释

每行或每列的值都会被缩放,使得每行的平方和为1。这个转化也称为"弦转化" chord。

3.2 Normalize转化的公示表示

弦转化的对象是一系列的列向量或者行向量,总归来说是对几串数字的计算,假设这里处理的是一个m行n列的矩阵(m X n),其中,m为样本/观测/样方/重复,n为物种。需要对其进行样方标准化,即对行进行标准化,这里采用normalize转化(标准化)。

若以其中一行举例(x1,x2,x3,x4,…,xn),则对于每一个元素xi标准化过程可以表示为:

\frac{x_i}{\sqrt{x_{1}^{2}+x_{2}^{2}+...+x_{n}^{2}}}

 3.3 Normalize转化的代码实现
x.norm <- decostand(x, "normalize", MARGIN, range.global, logbase = 2, na.rm=FALSE, ...)

 注:若仅仅进行样方标准化,输入下面代码即可:

x.norm <- decostand(x, "normalize")

参数说明(跟上面一样):

  • x: 群落数据,类似矩阵的对象,用于进行标准化处理。
  • method: 标准化方法。
  • MARGIN: 如果默认不可接受,则为边界。这里默认为1,即对行向量进行标准化。
  • range.global: 在 method = "range" 中找到范围的矩阵。这允许在数据的子集之间使用相同的范围。 MARGIN 的维度必须与 x 匹配。
  • logbase: 在 method = "log" 中使用的对数基数。
  • na.rm: 忽略行或列标准化中的缺失值。
  • zap: 使接近零的值成为精确的零,以避免负值和夸张的物种丰富度估计。

4、Hellinger转化和弦转化的关系

根据上面公式表示,不难理解,Hellinger转化等同于数据先平方根转化后再进行弦转化。​​​​​​​反过来说,弦转化是多度数据平方后的Hellinger转化。

参考:赖江山.《数量生态学——R语言的应用》. 北京:高等教育出版社

           Package vegan version 2.6-4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/559721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis-键值设计

Redis-键值设计 1.设置key的规范 遵循基本格式&#xff1a;【业务名称】&#xff1a;【数据名】&#xff1a;【id】 可读性强&#xff0c;在客户端的情况下使用:如果前缀相同会分目录层级长度不超过44字节 string数据结构的三种类型&#xff0c;在44字节之内是embstring 内存…

鸿蒙应用开发之Web组件3

前面学习了从网上加载网页的显示,本文将要学习加载本地的网页。比如很多显示的内容,可以制作网页的文件格式,然后直接使用它来显示,就可以减少界面的制作。另外,当手机没有网络的时候,如果想从网络上获取内容就会失败,这时候可以使用本地的网页内容来代替。这样不会导致…

Python的Logging模块高级用法-日志处理

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Python中的日志处理&#xff1a;Logging模块的高级用法 在Python应用程序中&#xff0…

lementui el-menu侧边栏占满高度且不超出视口

做了几次老是忘记&#xff0c;这次整理好逻辑做个笔记方便重复利用&#xff1b; 问题&#xff1a;elementui的侧边栏是占不满高度的&#xff1b;但是使用100vh又会超出视口高度不美观&#xff1b; 解决办法&#xff1a; 1.获取到侧边栏底部到视口顶部的距离 2.获取到视口的高…

【动态规划】dp 路径问题(不同路径、路径最小和、地下城游戏...)

文章目录 1. 前言 - 理解动态规划算法1.5 关于dp路径问题2. 例题2.1_不同路径Warning. 关于状态表示 3. 算法题3.1_不同路径II3.2_珠宝的最高价值3.3_下降路径最小和3.4_最小路径和3.5_地下城游戏关于状态表示的两种选法&#xff1a; 1. 前言 - 理解动态规划算法 关于 动态规划…

Pytorch 之torch.nn初探 池化--Pooling Layers

任务描述 本关任务&#xff1a;本关提供了一个Variable 类型的变量x&#xff0c;要求按照条件创建一个Conv2d变量conv&#xff0c;一个MaxPool2d变量pool&#xff0c;对x应用卷积和最大池化操作并赋值给变量outpout_pool&#xff0c;并输出outpout_pool 的大小。 相关知识 P…

Blerden4.1基础操作方法

软件安装 下载软件地址 中文文档 偏好设置 编辑——》偏好设置——》界面——》设置分辨率缩放 1.20 方便观看字体 设置快捷键 是为了方便几个3d软件都变成同一种操作方式 这样就不会自己搞混了 编辑——》偏好设置——》键位映射——》3D视图——》3D视图&#xff08;全局…

将windows作为网关

开启转发 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f开启routing and remote access服务 这样局域网里面别的设备能通过windows进行上网 参考&#xff1a;https://www.cnblogs.com/chrishg/articles/12861053.html

Springboot+Vue项目-基于Java+MySQL的房屋租赁系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

OceanBase V4.2特性解析:用 Show Trace 快速定位数据库性能瓶颈

在数据库日常运维中&#xff0c;当遇到慢SQL问题时&#xff0c;若无法迅速查明原因&#xff0c;将极大地影响用户的使用感受&#xff0c;甚至可能引发业务或服务的中断。相较于单机数据库&#xff0c;分布式数据库系统因其涉及多个节点和多组件的协同工作&#xff0c;集群规模可…

短视频流媒体平台的系统设计

1. 功能需求: 我们的系统有两类参与者 内容创作者 •上传任何类型的视频&#xff08;格式编解码器&#xff09;•视频可以被删除•视频元数据•必填项: 标题&#xff0c;作者&#xff0c;描述•选填项: 分类/标签列表•可以随时更新•当视频对观众可用时&#xff0c;向内容创作…

怎么把相机储存卡里的照片导出来?介绍两种方法

随着摄影技术的不断发展和普及&#xff0c;相机已成为我们记录生活、捕捉美好瞬间的设备。然而&#xff0c;对于许多摄影爱好者来说&#xff0c;如何将相机储存卡里的照片安全、高效地导出到电脑或其他设备中&#xff0c;却成为了一个令人头疼的问题。本文将为您详细介绍从相机…

17.C++常用的算法_集合算法

文章目录 遍历算法1. set_intersection()代码工程运行结果 2. set_union()代码工程运行结果 3. set_difference()代码工程运行结果 遍历算法 1. set_intersection() 代码工程 /*1.求交集的两个集合必须是有序序列*/ /*2.目标容器开辟空间需要从两个容器中取较小值*/ /*3.set…

小程序中使用HTTPS调用自带文本安全内容检测接口(msg_sec_check)的实现方法

在小程序中调用自带的文本安全内容检测接口&#xff0c;你需要使用小程序提供的wx.request方法。以下是一个示例代码&#xff1a; javascript代码: // 假设你已经获取了access_token,如果不知道如何获取&#xff0c;可以参考我上一篇文章 const access_token 你的access_tok…

【结构型模式】外观模式

​一、外观模式概述 外观模式定义与意图&#xff1a;外观类为复杂的子系统提供了一个统一的入口。外观模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。&#xff08;对象结构型模式&#xff09; 外观模式的特点&#xff1a; 1.又叫做门面模式&#xf…

电磁炉原理笔记

电磁炉加热原理 【电磁炉工作原理&#xff0c;电涡流感应加热原理】 https://www.bilibili.com/video/BV11M411M7Wt/?share_sourcecopy_web&vd_source44c5c5fe44538189ece80f09460cf625 我是看的这个科普视频&#xff1b; 总结一下就是下图&#xff1a; 线圈的磁场影响…

链表判环问题

1、为什么slow走一步&#xff0c;fast走两步&#xff0c;会不会错过&#xff1f;请证明。 假设slow进环的时候fast和slow之间的距离时N&#xff0c;slow进环以后&#xff0c;fast开始追击slow每走一步&#xff0c;fast走2步&#xff0c;他们之间的距离缩小1. fast和slow之间的…

“三步走”带你拿下C++类与对象(下)

在学习了“上”篇和“中”篇后&#xff0c;我们对类和对象以及一些析构函数有了一定的理解&#xff0c;本文我们将继续深入讲解有关的其他内容。 一、初始化列表的引入 我们以之前的队列为例子&#xff08;创建两个队列一个用于入栈一个用于出栈&#xff09; 这个myqueue对内…

全志R329 AP6256 蓝牙调试

1、在全志r329平台移植AP6256,移植了一个星期,记录下过程。 2、本来产品只需要wifi,不需要蓝牙的。但是我们使用的是正基AP6256的wifi、BT二合一的模组。 该模块只要有BT功能就需要做BT的3C认证。 好吧。 1、获取调试蓝牙的几个工具 两个方法: 1.1、方法一:自己交叉…

蓝桥杯2024年第十五届省赛真题-爬山

贪心优先队列的题&#xff0c;贪心会漏一个情况&#xff0c;不知道怎么处理&#xff0c;这里直接打表了 2 1 1 48 49 答案是30&#xff0c;贪心是31 专有名词&#xff1a;hack-有新的测试点过不了 #include<bits/stdc.h> using namespace std; #define endl \n #define …
最新文章