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

时间:2011-01-05 23:06:30

标签: math statistics probability power-law

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

  

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

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

这显然比按给定用户的跟随者计数对整个用户列表进行排序要高效得多。

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

2 个答案:

答案 0 :(得分:6)

您有以下型号:

y = exp(a + b.log(x))

相当于:

log(y) = a + b.log(x)

因此,如果您记录数据集的日志,最终会得到线性模型,那么您可以使用linear regression来确定a和{{1}的最佳拟合值}。

然而,这对我来说听起来毫无意义。谁会说某个网络站点使用这种关系确定用户排名?

答案 1 :(得分:1)

您可以使用名为“Solver”的Microsoft Excel加载项。它包含在Excel中,但默认情况下并不总是安装。在Excel版本中查找“加载项”和“解算器”并加载它。

安装加载项后,请执行以下操作:

  1. 创建新工作表。在A栏中,您可以输入每个人的ID(可选)

  2. B栏,粉丝数量。

  3. 如果数据未排序,请使用B列对其进行排序。

  4. 在C栏上排名(你知道,1,2,3等)

  5. 将值21置于单元格D1,将-1.1置于单元格E1。这些是$ A和$ B的Twitter值。这些是我们的基本价值观。他们可能会改变。

  6. 在单元格D2中输入如下公式:= exp($ E $ 1 + $ F $ 1 * log(B2))

  7. 在数据末尾的D2处复制公式。

  8. 在单元格E2处放置公式以将实际排名与公式的结果(即方差)进行比较。例如,= sqrt(c2 * c2 + d2 * d2)。实际值和预测值越接近,值将趋于0。

  9. 将单元格E2复制到数据末尾。

  10. 在数据底部的E栏,对方差求和。例如,假设您的数据有10,000个值。在单元格E10001处输入= sum(e2:e10000)。

  11. 转到菜单数据,然后查找“解算器”菜单位置。该位置可能取决于您的Excel版本。使用“帮助”工具搜索“目标搜索”。

  12. 按照帮助中的说明(我现在必须去)使用Solver加载项。显然,改变单元格是D1和E1,目标是使E10001(方差之和)尽可能接近零。