PAFit-package: A statistical sound method for joint estimation of the attachment function and node fitness in a temporal complex network by maximizing a suitable penalized log-likelihood function


A method for estimating jointly the attachment function A_k and node fitness η_i of a temporal complex network is implemented in this package. The network's growth is assumed to follow a modified version of the fitness model, in which newly added edges, including newly edges between existed nodes, are connected to a degree k node v_i with probability proportional to the product of the attachment value A_k and the fitness value η_i. The method makes no assumption on the functional form of either A_k or η_i. By choosing suitable regularizations, good estimations of A_k and η_i can be obtained by maximizing the corresponding penalized log-likelihood function. We also implement a fast estimation of confidence intervals based on the Hessian of the penalized log likelihood. See the accompanying vignette for a tutorial.

For a list of references, please run the command: citation("PAFit").


Package: PAFit
Type: Package
Version: 0.9.3
Date: 2017-01-20
License: GPL-3


Thong Pham, Paul Sheridan, Hidetoshi Shimodaira. Maintainer: Thong Pham


1. Pham, T., Sheridan, P. & Shimodaira, H. (2016). Nonparametric Estimation of the Preferential Attachment Function in Complex Networks: Evidence of Deviations from Log Linearity, Proceedings of ECCS 2014, 141-153 (Springer International Publishing) (

2. Pham, T., Sheridan, P. & Shimodaira, H. (2015). PAFit: A Statistical Method for Measuring Preferential Attachment in Temporal Complex Networks. PLoS ONE 10(9): e0137796. doi:10.1371/journal.pone.0137796 (

3. Pham, T., Sheridan, P. & Shimodaira, H. (2016). Joint Estimation of Preferential Attachment and Node Fitness in Growing Complex Networks. Scientific Reports 6, Article number: 32558. doi:10.1038/srep32558 (


data   <- GenerateNet(N = 100,m = 1,alpha = 1, mode = 1, shape = 0, rate = 0)
stats  <- GetStatistics(data$graph)
result <- PAFit(stats,only_PA = TRUE,stop_cond = 10^-3)
plot(x = result,data = stats,plot = "A")

Questions? Problems? Suggestions? or email at

All documentation is copyright its authors; we didn't write any of that.