问题标签 [power-law]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graph - 按照幂律分布对多个变量进行标准化/缩放/归一化以用于线性组合的正确方法
我想将社交网络图中的一些节点指标组合成一个值,以便对节点进行排序:
in_degree + betweenness_centrality = informal_power_index
问题是in_degree
和betweenness_centrality
是在不同的尺度上测量的,比如 0-15 vs 0-35000 并遵循幂律分布(至少绝对不是正态分布)
有没有一种很好的方法来重新调整变量,以便在确定 时一个不会支配另一个informal_power_index
?
三种明显的方法是:
- 标准化变量(减去
mean
和除以stddev
)。这似乎会过度压缩分布,隐藏长尾值与峰值附近值之间的巨大差异。 min(variable)
通过减去和除以将变量重新缩放到范围 [0,1]max(variable)
。这似乎更接近于解决问题,因为它不会改变分布的形状,但也许它不会真正解决问题?特别是手段会有所不同。- 通过将每个值除以 来均衡均值
mean(variable)
。这不会解决尺度上的差异,但也许平均值对于比较更重要?
还有其他想法吗?
c++ - 产生幂律分布的随机数生成器?
我正在为 C++ 命令行 Linux 应用程序编写一些测试。我想生成一堆具有幂律/长尾分布的整数。意思是,我经常得到一些数字,但其中大多数相对不频繁。
理想情况下,我可以将一些魔术方程式与 rand() 或 stdlib 随机函数之一一起使用。如果没有,一个易于使用的 C/C++ 块会很棒。
谢谢!
java - Java:幂律分布
我正在尝试根据幂律分布生成 p2p 网络。如何在java中生成幂律分布?它有图书馆吗?
谢谢 :)
sql - T-SQL 中的幂律分布
我基本上需要这个提供幂律分布的 SO 问题的答案,并为我翻译成 T-SQL。
我想从人口普查提供的姓名表中一次提取一个姓氏。我想获得与人口中大致相同的分布。该表有 88,799 个按频率排列的名字。“Smith”排名 1,频率为 1.006%,“Alderink”排名 88,799,频率为 1.7 x 10^-6。“桑德斯”排名第 75 位,出现频率为 0.100%。
曲线根本不必精确拟合。给我大约 1% 的“Smith”和大约百万分之一的“Alderink”
这是我到目前为止所拥有的。
但这当然会产生均匀分布。
我保证等到更聪明的人做出回应时,我仍然会自己弄清楚这一点。
math - 社交网络查询的幂律曲线拟合
Twitter 最近宣布,您可以通过在以下公式中输入他们的关注者数量来高精度地估计任何给定 Twitter 用户的排名:
exp($a + $b * log(follower_count))
其中 $a=21 和 $b=-1.1
这显然比按给定用户的关注者数量对整个用户列表进行排序要有效得多。
如果您有来自不同社交网站的类似数据集,您如何导出 $a 和 $b 的值以适合该数据集?基本上是一些频率列表,其分布被假定为幂律。
r - R中的线性回归(正态和对数数据)
我想在 R 中对正常和双对数图中的数据进行线性回归。
对于普通数据,数据集可能如下:
在那里,我想计算仅为数据点 2、3 和 4 的线性回归绘制一条线。
对于双对数数据,数据集可能如下:
在这里,我想为数据集 1:7 和 8:15 绘制回归线。
我可以计算斜率和y 偏移量以及拟合参数(R^2,p 值)吗?
如何处理正常数据和对数数据?
谢谢你的帮助,
斯文
python - 如何使用 matplotlib 将幂律拟合到直方图
我正在尝试将幂律拟合到直方图(更精确的帕累托分布)。我用我自己的函数来做,在那里我检查最小的差平方和。但这意味着我需要循环抛出所有的系数,这可能需要一些时间。另一个问题是我需要制作自己的数据列表,以便获得直方图数据。
因此,我正在寻找一个函数,该函数将返回由 matplotlib.pyplot.hist() 生成的数据列表,而不仅仅是一张图片,而且我想用帕累托分布拟合这些数据比循环这么多次并获得联合体。
java - 将数据拟合到配电(java)
就像在 Excel 中我们可以获取分布并为其制作趋势线(幂律)一样,我如何在 Java 中为数字数组计算它?
r - 如何在R中绘制度数分布
我想知道绘制度数分布的脚本输出是否正确。
所以脚本是(其中具有我所有顶点度数的向量存储在x中):
x 是
x 是某个网络顶点的度数 - 就像顶点 1 的度数为 7,顶点 2 的度数为 9,依此类推 x <- v2 summary(x)
我的问题是对数图似乎不正确 - 例如,我的度数为 8 次,所以对数图上的这一点不应该变成 0.845 (log 7)/0.903 (log( 8) 如 (x/y)?
此外,有人能告诉我如何将线(对数刻度上的幂律)拟合到屏幕 2 中的图吗?
r - R中的对数对数概率图
我确信这很容易,但我一直在努力寻找如何在 R 中做到这一点。
我有一些数据试图拟合幂律分布。为此,您需要在对数累积概率图上绘制数据。y 轴是数据频率的 LOG(或对数概率,如果您愿意),x 轴是值的对数。如果是一条直线,那么它符合幂律分布,梯度决定幂律参数。
如果我想要数据的频率,我可以使用 ecdf() 函数:
我的数据集称为Profits.negative,它只是一长串小于零的交易利润(我名义上将它们全部转换为正数以避免以后出现记录问题)。
所以我可以输入
我得到了一个方便的经验 CDF 函数。我需要做的就是将两个轴都转换为对数刻度。我可以做x轴:
差不多好了!我只需要弄清楚如何记录 y 轴!但我似乎做不到,我不知道如何从 ecdf 对象中提取数字。任何人都可以帮忙吗?
我知道有一个 power.law.fit 函数,但这只是估计参数 - 我想绘制数据并查看它是否对齐。