gpt4 book ai didi

r - R中的对数对数概率图

转载 作者:行者123 更新时间:2023-12-01 09:31:35 24 4
gpt4 key购买 nike

我确信这很容易,但我一直在努力寻找如何在 R 中做到这一点。

我有一些数据正在尝试拟合幂律分布。为此,您需要在对数累积概率图上绘制数据。 y 轴是数据频率的 LOG(或对数概率,如果您愿意),x 轴是值的对数。如果是直线,则符合幂律分布,梯度决定幂律参数。

如果我想要数据的频率,我可以使用 ecdf() 函数:

我的数据集称为 Profits.negative,它只是一长串小于零的交易利润(我名义上将它们全部转换为正数以避免以后出现记录问题)。

所以我可以打字

plot(ecdf(Profits.negative))

我得到了一个方便的经验 CDF 函数。我需要做的就是将两个轴都转换为对数刻度。我可以做x轴:

Profits.negative.logs <- log(Profits.negative)
plot(ecdf(Profits.negative.logs))

快到了!我只需要弄清楚如何记录 y 轴!但我似乎做不到,我不知道如何从 ecdf 对象中提取数字。有人可以帮忙吗?

我知道有一个 power.law.fit 函数,但它只是估计参数 - 我想绘制数据并查看它是否对齐。

最佳答案

您可以使用 poweRlaw 拟合和绘制幂律。包裹。这是一个例子。首先,我们从重尾分布中生成一些数据:

set.seed(1)
x = round(rlnorm(100, 3, 2)+1)

接下来我们加载包并创建一个数据对象和一个显示对象:

library(poweRlaw)
m = displ$new(x)

我们可以估计xmin和缩放参数:

est = estimate_xmin(m))

并设置参数

m$setXmin(est[[2]])
m$setPars(est[[3]])

然后绘制数据并添加拟合线:

plot(m)
lines(m, col=2)

获得:

enter image description here

关于r - R中的对数对数概率图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com