Twitter最近宣布,你可以通过输入某个Twitter用户的关注者数量到下面的公式中,来近似计算该用户的排名:
exp($a + $b * log(follower_count))
其中$a=21,$b=-1.1
这显然比按照给定用户的关注者数量对整个用户列表进行排序要高效得多。
如果你从另一个社交网站获得了类似的数据集,你该如何推导出适合该数据集的$a和$b值?基本上是某些频率列表的分布被假定为幂律。
Twitter最近宣布,你可以通过输入某个Twitter用户的关注者数量到下面的公式中,来近似计算该用户的排名:
exp($a + $b * log(follower_count))
其中$a=21,$b=-1.1
这显然比按照给定用户的关注者数量对整个用户列表进行排序要高效得多。
如果你从另一个社交网站获得了类似的数据集,你该如何推导出适合该数据集的$a和$b值?基本上是某些频率列表的分布被假定为幂律。
你有以下模型:
y = exp(a + b.log(x))
这相当于:
log(y) = a + b.log(x)
a
和b
。您可以使用名为“Solver”的 Microsoft Excel 插件。它已包含在 Excel 中,但不一定默认安装。请在您的 Excel 版本中查找“插件”和“solver”,并加载它。
安装插件后,请执行以下操作:
创建一个新的工作表。在A列中,您可以放置每个人的ID(可选)。
B列是关注者的数量。
如果数据没有排序,请使用B列进行排序。
在C列中放置排名(例如1、2、3等)
在单元格D1中放置值21,在单元格E1中放置值-1.1。这些是$A和$B的Twitter值。它们是我们的基准值。它们可能会改变。
在单元格D2中放置类似于这样的公式:=exp($E$1+$F$1*log(B2))
将D2单元格的公式复制到数据末尾。
在单元格E2中放置一个公式来比较实际排名与公式结果之间的差异(即方差)。例如,=sqrt(c2*c2+d2*d2)。实际值和预测值越接近,该值就越趋近于0。
将单元格E2复制到数据末尾。
在数据底部,在E列中求和方差。例如,假设您的数据有10,000个值。在单元格E10001中输入=sum(e2:e10000)。
转到“数据”菜单,并查找“求解器”菜单位置。该位置可能因您的Excel版本而异。使用“帮助”功能搜索目标寻求。
按照帮助中的说明(我现在必须离开)使用求解器插件。显然,可变单元格是D1和E1,目标是使E10001(方差之和)尽可能接近零。