如果数据的取值范围很广,将其中一个轴设为对数轴,可能会更便于呈现结果。注意区分将数据转换为对数形式(这会生成一个新的结果表)和选择对数轴(这只是对轴进行缩放,不会改变数据本身)。
- 什么是对数轴
- 如何创建对数轴
- 对数轴不能包含零或负数
- 回归分析拟合的是数据,而非图形
- 何时使用对数轴
- 建议:在对数轴上绘制柱状图通常没有意义
- 绘制对数图 – 与使用对数轴不同
- 对数知识回顾
什么是对数轴
对数轴会改变轴的刻度
下面两图展示了相同的两个数据集,分别绘制在不同的轴上。
左侧图表的轴是线性(普通)轴,每对刻度之间的差值是更定的(本示例中为2000)。
右侧图表的轴式对数轴,每对刻度之间的差值并不恒定。从最下面的刻度(0.1)到相邻刻度的差值是0.9。从最上面的刻度(100,000)到相邻较高刻度(10,000)的差值是90,000。但比例是恒定的,每个轴刻度代表的值是前一个刻度的10倍。
红色圆点代表一个数据集,其值间隔相等。每个圆点代表的值比下面的圆点的Y值大500。在左侧图表中,圆点间隔均匀,但在右侧图表中则远非如此。为避免重叠,这些点在水平方向上左右抖动,因此它们不会重叠。红色圆点的水平位置没有其他意义。
蓝色圆点代表一个数据集,其中每个值的Y值是下面值的1.5倍。在左侧图表中,较低的值几乎重叠,很难看出值的分布情况(即使有水平抖动)。在右侧带有对数轴的图表中,这些点看起来间隔均匀。
为什么叫“对数”?
在上述示例中,刻度1、10、100、1000在图表上间隔均匀。1、10、100和1000在图表上间隔均匀。1、10、100和1000的对数分别是0、1、2、3,这些数值也是均匀分布的。由于图表上均匀分布的刻度,其对数在数值上也是均匀分布的,所以这种轴被称为“对数轴”。
在对数刻度间进行插值
在对数轴上,10和100之间的中间值是多少?您的第一个反应可能是这两个值的平均值55,但这是错误的。在对数轴上,值并非均匀分布。10的对数是1.0,100的对数是2.0,所以中间点的对数是1.5。对数为1.5的数值是10的1.5次方,即31.62。所以在对数轴上,10和100之间的中间值是31.62。同样的,100和1000之间对数轴上的中间值是316.2。
术语
术语“半对数”用于指一个轴为对数轴,而另一个轴不是对数轴的图表。当两个轴都是对数轴时,该图表被称为“双对数图”。
对数轴的优点
如上文所示,对数轴的一个优点是对数正态分布在对数轴上更容易观察。倾向于使用对数轴的另一个原因是,当数值跨度很大(相差多个数量级)时,若不采用对数轴,在普通线性图上难以呈现。(至少如果不发挥大量创意的话是这样!)
如何创建对数轴
本部分将展示如何将轴拉伸为对数刻度(这不会改变您的数据)。要将其与把数据转换为对数形式区分开来。
创建对数轴的步骤:
双击轴打开“设置坐标轴格式”对话框。在“刻度”部分,将轴设置为以10为底的对数(Log10)、以2为底的对数(Log2)或自然对数(Ln)。
此图表展示了以log10分布的次要刻度。在主刻度10和100之间的次要刻度表示20、30、40、50、60、70、80和90的位置。由于这些次要刻度在图表上并非均匀分布,我们称它们为对数分布的次要刻度。注意,这里有八个刻度,即九个间隔(很多人会错误地认为应该是十个)。
设置以10为底的对数轴的数字格式:
双击轴打开“设置坐标轴格式”对话框,然后在“数字”或“标签”部分设置数字格式。Prism为以10为底的对数轴提供了四种数字格式选项:
Antilog:反对数
Scientific:科学计数法
Power of 10:10的幂次方
Log:对数
设置自然对数(ln)轴的数字格式:
双击轴打开“设置坐标轴格式”对话框,然后在“数字”或“标签”部分设置数字格式。Prism为自然对数轴提供了三种数字格式选项:
Scientific:科学计数法
Power of e:e的幂次方
Ln:自然对数
设置对数轴的次要刻度间隔
双击轴打开“设置坐标轴格式”对话框,然后在“数字”或“标签”部分设置数字格式。选择“等距”或“对数间距”,以及主刻度之间所需的间隔数,而不是刻度数。
对数轴不能包含零或负数
负数和零的对数是没有定义的
让我们从对数的基本定义开始。如果10L=Z,那么L就是Z以10为底的对数。如果L是负数,那么Z就是一个小于1的正分数。如果L是0,那么Z等于1.0。如果L大于0,那么Z大于1.0。注意,不存在L的值能使Z为零或负数。对数对于零或负数根本没有定义。
关键在于:对数轴只能绘制正值。在对数轴上确实没有办法表示负值或零。
在Prism中在对数轴上绘制零的技巧
如果您真的想在对数轴上包含零,就得动点脑筋。不要输入0,而是输入一个很小的数。例如,如果数据中最小的值是0.01,就把零值输入为0.001。然后使用“设置坐标轴格式”对话框创建一个不连续的轴,并使用Prism的额外刻度功能将轴上的那个点标记为0.0。
回归分析拟合的是数据,而非图形
选择对数刻度会改变图表的呈现方式,但不会改变数据值。线性或非线性回归是将一个方程拟合到您的数据上,您对坐标轴刻度的选择不会影响任何计算。
下面展示的三张图表通过线性回归表示相同的数据。
下面的图表具有线性的X轴和Y轴,所以线性回归线看起来是直的。
下面的图表具有对数X轴。您看到的曲线是线性回归的结果。它是对Y=截距+斜率*X这个方程的最佳拟合。线性回归使用的X值是您输入的X值。在对数轴上绘制这条线性回归线会得到一条曲线。
下图具有对数Y轴。同样,最佳拟合的线性回归线在对数轴上绘制时看起来是弯曲的。
何时使用对数轴
当X值呈对数分布时,使用对数X轴会很有帮助
X轴通常用于绘制自变量(即您所控制的变量)。如果您选择的X值具有恒定的比例,而非恒定的差值,那么在对数轴上绘制图形会更便于观察。
下面两幅图展示了相同的数据。X是剂量,Y是响应值。这些剂量的选取方式是后一个剂量是前一个剂量的两倍。当使用线性轴绘制时(左图),许多值会重叠,难以看清具体情况。而使用对数轴绘制时(右图),这些值是水平方向上均匀分布,使图形更易于理解。
对数轴在绘制比率时很有用
比率本质上是不对称的。比率为1.0表示没有变化。所有减少情况的比率介于0.0到1.0之间,而所有增加情况的比率大于1.0(无上限)。
相比之下,在对数尺度上,比率是对称的。比率为1.0(无变化)处于比率为0.5(风险减半)和比率为2.0(风险加倍)的中间位置。因此,在对数尺度上绘制比率(如下所示)更易于解读。下图绘制了三项病例 – 对照回顾性研究的比值比,但任何比率在对数轴上绘制都会更有优势。
上图中,结果(比值比)是水平绘制的。由于这些值是测定出来的(并非由实验者设定),所以尽管水平轴在方向上是水平的,但它实际上是Y轴。
对数轴使复利和指数增长线性化
下图展示了指数增长,这等同于复利增长。在时间t=0时,Y值为100。每增加1.0,在X轴上绘制的值就是前一个Y值的1.1倍。这就是指数增长(有充足空间和养分时)的模式,也是投资(或债务)随时间以固定利率增长的模式。
右侧的图与左侧的图相同,只是Y轴采用了对数刻度。在此刻度上,指数增长呈现为一条直线。指数增长具有固定的翻倍时间。在此例中,投资(或账户价值)每隔7.2667个时间单位就会翻倍。在对数轴上,指数衰减也会呈现为线性,不过前提是衰减最终会趋于零。
建议:在对数轴上绘制柱状图通常没有意义
Prism软件可以创建带有对数Y轴的柱状图,但在决定制作此类图表前请三思。柱状图的意义在于让人们比较柱的高度和面积。在大多数情况下,制作柱状图时应尽量避免使用对数轴。
下图中(采用线性轴),处理组的柱高度(面积)是对照组的四倍,这表明处理使响应增加了四倍。由于Y轴是线性的,这种解读非常直观。
注意,带对数轴的柱状图。由于零无法在对数轴上显示,您需要确定轴的起始位置。对数刻度没有逻辑起点,所以选择具有任意性。下图展示的是与上图相同的数据,但Y轴分别从0.001、10或100开始。
图表中右侧的柱相对高度看起来几乎相同,而左侧的柱相对高度差异很大。对数刻度上柱的相对高度(或面积)无法提供有效信息。
如果目的是制造宣传效果,使用对数轴的柱状图是个好工具,因为它能让您夸大或缩小组间差异。您只需仔细选择轴的范围,以营造出您想要的效果。如果您的目的是诚实地展示数据,就不要使用对数轴来制作柱状图。
所知道的使用对数轴绘制柱状图有意义的唯一场景,是当Y轴表示某物的倍数变化时。此时,1.0的基线(无变化)是合理的,对数刻度也是合理的。
绘制对数图 – 与使用对数轴不同
将数据转换为对数
如果分析中需要对数数据,您可以直接输入对数,也可以转换现有数据。例如,当用X表示剂量的对数来拟合S形剂量 – 响应方程时,若输入的是浓度值,在进行非线性回归前就需要将其转换为对数。
及那个数据转换为对数的步骤如下:
点击分析按钮,选择内置分析,然后从数据处理列表中选择转换,选择“X=log(X)”,同时勾选对话框底部的为结果创建新图表选项。Prism会生成转换后数据的结果表和新图表。要对转换后的数据进行非线性回归,可从结果表或新图表中点击分析。
绘制已输入的对数数据
如果输入的数据是对数形式,或者要绘制对数转换后的结果,应该使用线性轴来绘制数据,不要选择对数刻度!因为数据已经是对数形式了。如果数据代表对数,您可以设置轴编号格式来明确这一点。
下图比较了小数格式(默认)、10的幂次方格式和反对数格式的外观。
在下图中,X值代表浓度的对数。对数直接输入到数据表的X列中。这些数据的图表具有线性(非对数)X轴。该轴采用10的幂次方编号格式,并带有九个按对数间距分布的次刻度间隔(见图表下方的对话框设置)。
在下图中,另一种表明数据为对数的方法是选择反对数编号格式(仅当间隔为1、最小值大于或等于-9且最大值小于或等于9时,此选项才可用)。
对数知识回顾
以10为底的普通对数
理解对数的最佳方式是通过示例。例如,如果您求10的三次方(10×10×10),结果是1000。1000以10为底的对数就是3。您可以通过测试幂函数来验证:1000以10为底的幂次方就是得出1000的那个幂次。所以1000以10为底的对数是3。
您可以将10取-3次幂,会得到0.001。也就是说,取10的-3次幂与取103的倒数是一样的,所以10-3等于1/103,即0.001。0.001以10为底的对数就是-3。
您可以求10的分数次幂。10的1/2次幂等于10的平方根,也就是3.163。所以3.163以10为底的对数是0.5。
至于10的0次幂,等于1。因此1以10为底的对数是0。
负数和0的对数是没有定义的,因为不存在10的某次幂能得出负数或0。
其他底数的对数
前面展示的对数被称为以10为底的对数,因为计算时是将10进行幂运算。它们也被称为常用对数。
您可以计算任何底数的对数。数学家们偏爱以e(2.7183…)为底的自然对数。尽管如此,对大多数习惯使用以10为底对数的科学家来说,以e为底的对数似乎并不“自然”。
生物学家有时会使用以2为底的对数,且常常没有意识到这一点。以2为底的对数表示将数值翻倍的次数。所以16以2为底的对数是4,因为从1开始翻倍4次(2、4、8和16)就能得到16。免疫学家经常以2倍的倍数连续稀释抗体,所以常使用对数刻度来绘制数据。细胞生物学家使用以2为底的对数,将细胞计数转换为翻倍次数。
不同底数的对数之间成比例关系。因此,从自然对数转换为常用对数有点像单位换算。将自然对数除以2.303可得到对应的常用对数。将常用对数乘以2.303可得到对应的自然对数。
对数的数学性质
对数将乘法转换为加法,将除法转换为减法,将乘方转换为乘法:
log(A.B) = log(A) + log(B)
log(A/B) = log(A) - log(B)
log(An) = n.log(A)
反对数
反对数(也称为antilog)是对数变换的逆运算。由于1000以10为敌的对数等于3,所以3的反对数是1000。计算以10为底对数的反对数,就是求10的该次幂。
计算自然对数的反对数,需求e的相应次幂。1000的自然对数是6.908。所以6.908的反对数是e6.908,即1000。电子表格和计算机语言中用exp(6.908)来表示。
与对数发音相似的术语:logit和logistic
logistic这个词听起来像是和对数有关。实际上,logistic这个术语有三种不同的含义,并非都与对数相关。
logit函数,用于逻辑回归,是概率P(取值在0.0到1.0之间)除以1-P的自然对数:
Logit(P) = ln[P/(1-P)]
对数正态分布是一种数值分布,其对数服从高斯分布。对数正态分布本身是不对称的,右侧有一个长尾。这种不对称很容易造成误导,人们可能会错误地将分布尾部的数值当作异常值剔除。
符号“log(x)”可能有歧义
在Prism的变换和公式中,log()函数计算常用(以10为底)对数。
在某些计算机语言(如JavaScript)中,log(x)表示自然对数,而非常用对数。Excel尤其容易混淆。在Excel工作表函数中,log(X)是常用对数,但在Excel VBA宏中,log(X)是自然对数。
在Prism中,符号“In(X)”表示自然对数。
不要将对数与科学计数法混淆
以数值0.000000001为例,它可以写成10-9。由于计算机程序无法处理下标,在大多数计算机程序(包括GraphPad Prism和Excel)中会输入为1e-9。这里的“e”表示“乘以10的某次幂”。不要将这种科学计数法与对数混淆。0.000000001的对数是-9。