2

我在为拟合分布生成 QQ 图时遇到问题。数据拟合为

NormalFit <- fitdistr(obs, densfun="normal") 

其中 obs 是观测值。

我以为我能做到

qqnorm(NormalFit)

我想为

LogNormalFit <- fitdistr(obs, densfun="log-normal") 
4

1 回答 1

1

拟合只给你推断的参数,所以你需要从中采样,给你 qqplot。请参阅下面的 3 个示例,了解如何执行此操作。

library(MASS)
set.seed(999)
par(mfrow=c(1,3))
#simulate data
obs = rnegbin(500, mu = 5, theta = 4)
#fit data 
NormalFit <- fitdistr(obs, densfun="normal") 

#plot
qqnorm(obs,main="qqnorm")
# generate theoretical quantiles
Theo_Quantile = qnorm(ppoints(length(obs)))
qqplot(Theo_Quantile,obs,main="ppoint")
# it's also similar to if you just sample from the fitted distribution
Fitted = rnorm(length(obs),NormalFit$estimate[1],NormalFit$estimate[2])
qqplot(Fitted,obs,main="Sampled from fitted")

在此处输入图像描述

于 2019-11-13T15:17:11.197 回答