标签: power-law

如何从R中的Pareto尾部的对数正态分布生成样本?

我想用R中的Pareto尾部从对数正态分布生成一个样本.有人可以帮助我吗?谢谢.

r power-law

4
推荐指数
1
解决办法
1363
查看次数

用于社交网络查询的幂律曲线拟合

Twitter最近宣布,您可以通过在以下公式中输入他们的关注者计数来高精度地估计任何给定Twitter用户的排名:

exp($ a + $ b*log(follower_count))

其中$ a = 21,$ b = -1.1

这显然比通过给定用户的跟随者计数对整个用户列表进行排序更有效.

如果您有来自不同社交网站的类似数据集,您如何获得$ a和$ b的值以适合该数据集?基本上是一些频率列表,其分布被假定为幂律.

math statistics probability power-law

3
推荐指数
1
解决办法
955
查看次数

R中的日志日志概率图

我确信这很容易,但是我一直在试图找出如何在R中做到这一点.

我有一些数据,我试图适应幂律分布.为此,您需要在对数日志累积概率图表上绘制数据.y轴是数据频率的LOG(如果您愿意,则为对数概率),x轴是值的对数.如果它是直线,则它符合幂律分布,并且梯度确定幂律参数.

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

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

所以我可以输入

plot(ecdf(Profits.negative))
Run Code Online (Sandbox Code Playgroud)

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

Profits.negative.logs <- log(Profits.negative)
plot(ecdf(Profits.negative.logs))
Run Code Online (Sandbox Code Playgroud)

差不多了!我只需要弄清楚如何记录y轴!但我似乎无法做到这一点,我无法弄清楚如何从ecdf对象中提取数字.有人可以帮忙吗?

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

r power-law ecdf

3
推荐指数
1
解决办法
2129
查看次数

由 `fitdistrplus` 包中的 `fitdistr()` 函数拟合的幂律

我使用rplcon()包中的函数生成一些随机变量poweRlaw

data <- rplcon(1000,10,2)

现在,我想知道哪些已知分布最适合数据。对数范数?经验?伽玛?幂律?指数截止的幂律?

所以我fitdist()在包中使用函数fitdistrplus

fit.lnormdl <- fitdist(data,"lnorm")
fit.gammadl <- fitdist(data, "gamma", lower = c(0, 0))
fit.expdl <- fitdist(data,"exp")
Run Code Online (Sandbox Code Playgroud)

由于幂律分布和具有指数截止的幂律不是根据CRAN Task View: Probability Distributions的基本概率函数,所以我根据示例 4 编写了幂律的 d,p,q 函数?fitdist

dplcon <- function (x, xmin, alpha, log = FALSE) 
{
    if (log) {
        pdf = log(alpha - 1) - log(xmin) - alpha * (log(x/xmin))
        pdf[x < xmin] = -Inf
    }
    else {
        pdf = (alpha - 1)/xmin * (x/xmin)^(-alpha)
        pdf[x < …
Run Code Online (Sandbox Code Playgroud)

r power-law mle fitdistrplus

3
推荐指数
1
解决办法
2534
查看次数

幂律与其他分布的比较

我正在使用 Jeff Alstott 的 Python powerlaw 包来尝试使我的数据符合幂律。Jeff 的软件包基于 Clauset 等人讨论幂律的论文。

首先,我的数据的一些详细信息:

  1. 它是离散的(字数数据);
  2. 它严重向左倾斜(高偏度)
  3. 峰态(超峰度大于 10)

到目前为止我做了什么

df_data 是我的数据框,其中 word_count 是一个包含大约 1000 个单词标记的单词计数数据的系列。

首先我生成了一个合适的对象:

fit = powerlaw.Fit(data=df_data.word_count, discrete=True)
Run Code Online (Sandbox Code Playgroud)

接下来,我使用 fit.distribution_compare(distribution_one, distribution_two) 方法将数据的幂律分布与其他分布进行比较 - 即对数正态、指数对数正态拉伸指数截断幂律。

作为 distribution_compare 方法的结果,我为每个比较获得了以下 (r,p) 元组:

  • fit.distribution_compare('power_law', '对数正态') = (0.35617607052907196, 0.5346696007)
  • fit.distribution_compare('power_law', '指数') = (397.3832646921206, 5.3999952097178692e-06)
  • fit.distribution_compare('power_law', 'lognormal_positive') = (27.82736434863289, 4.2257378698322223e-07)
  • fit.distribution_compare('power_law', 'stretched_exponential') = (1.37624682020371, 0.2974292837452046)
  • fit.distribution_compare('power_law', 'truncated_power_law') =(-0.0038373682383605, 0.83159372694621)

来自幂律文档:

R:浮动

两组似然值的对数似然比。如果为正,则第一组可能性更有可能(因此产生它们的概率分布更适合数据)。如果为负,则相反。

p:浮点数

R 符号的显着性。如果低于临界值(通常为 …

python power-law

3
推荐指数
1
解决办法
2799
查看次数

如何在R中绘制度数分布

我想知道绘制度分布的脚本输出是否正确.

所以脚本是(其中我的所有顶点的度数的向量都存储在x中):

x是

x
 [1] 7 9 8 5 6 2 8 9 7 5 2 4 6 9 2 6 10 8 
Run Code Online (Sandbox Code Playgroud)

x是某个网络顶点的度数 - 像顶点1有7度,顶点2有9度等等x < - v2 summary(x)

library(igraph)
split.screen(c(1,2))
screen(1)
plot (tabulate(x), log = "xy", ylab = "Frequency (log scale)", xlab = "Degree (log scale)", main = "Log-log plot of degree distribution")
screen(2)
y <- (length(x) - rank(x, ties.method = "first"))/length(x)
plot(x, y, log = "xy", ylab = "Fraction with min. degree k (log scale)", xlab = …
Run Code Online (Sandbox Code Playgroud)

plot r distribution power-law

2
推荐指数
1
解决办法
9391
查看次数

标签 统计

power-law ×6

r ×4

distribution ×1

ecdf ×1

fitdistrplus ×1

math ×1

mle ×1

plot ×1

probability ×1

python ×1

statistics ×1