我有一个带有 zipf 规律分布的数据集,现在我想将它与标准zipf
图进行比较,这是我的R
代码:
f <- read.table('/myfile.txt',sep='\t',header=T)
attach(f)
fs <- f[order(cnt), ]
detach(f)
n = 1:dim(fs)[1]
plot(fs[,2]~n)
现在我想将它与zipf
同一个情节进行比较,我该怎么做R
?
VGAM 包具有估计 Zipf 分布中的指数的功能。您可能希望根据最佳拟合估计密度绘制分布:
plot( cntdens <- table(f[['cnt']])/length(f[['cnt']]),
xlim=range(f[['cnt']]), ylim=c(0, 0.8) )
# And then plot the theoretic distribution for the VGAM fit
# ... extending the example on ?VGAM::zipf:
require(VGAM)
zdata <- data.frame( y=1:max( f[['cnt']] ), ofreq= table( f[['cnt']] ) )
fit = vglm(y ~ 1, zipf, zdata, trace = TRUE, weight = ofreq, crit = "coef")
proby = dzipf(1:max(f[['cnt']]), N =max(f[['cnt']]), s = Coef(fit) )
points((1:5)+0.05, proby, col="red")
下面是使用 ?dzipf 页面上示例中的数据的过程。