3

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

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

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

这显然比按给定用户的关注者数量对整个用户列表进行排序要有效得多。

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

4

2 回答 2

6

您有以下型号:

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

这相当于:

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

因此,如果您记录您的数据集,您最终会得到一个线性模型,因此您可以使用线性回归a来确定和的最佳拟合值b

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

于 2011-01-05T23:12:03.737 回答
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 版本。使用“帮助”工具搜索 Goal Seek。

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

于 2011-01-05T23:46:15.333 回答