将数据拟合到 R 中的分布:错误



我正在将我的数据拟合到R中的几个分布中。目标是查看哪种分布最适合我的数据。我使用的代码基于: http://www.di.fc.ul.pt/~jpn/r/distributions/fitting.html

my_data <- EP1sh
plotdist(my_data, histo = TRUE, demp = TRUE)
descdist(my_data, discrete=FALSE, boot=500)
fit_w  <- fitdist(my_data, "weibull")
fit_g  <- fitdist(my_data, "gamma")
fit_ln <- fitdist(my_data, "lnorm")
summary(fit_ln)
par(mfrow=c(2,2))
plot.legend <- c("Weibull", "lognormal", "gamma")
denscomp(list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
cdfcomp (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
qqcomp  (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)
ppcomp  (list(fit_w, fit_g, fit_ln), legendtext = plot.legend)

fit = fitdistr(my_data, densfun="lognormal")

我的数据帧是单个向量 EP1sh,它有大约 80 个条目,值介于 1 和 6 之间。

我不断收到以下错误。我最初认为这是因为我的数据帧中有几个"NA",但我想我解决了这个问题,问题仍然存在(这就是我从 EP1sh 中删除 NA 的方式:)

EP1sh <- na.omit(EP1$Number_share)
EP1sh <- data.frame(EP1sh)

错误是:

my_data <- EP1sh plotdist(my_data, histo = TRUE, demp = TRUE)

plotdist(my_data, histo = TRUE, demp = TRUE) 中的错误: 数据必须是数值向量

descdist(my_data, discrete=FALSE, boot=500)

错误 在 descdist(my_data, 离散 = FALSE, 引导 = 500) : 数据必须是数值向量

fit_w <-菲特迪斯特(my_data,"威布尔")

fitdist(my_data, "weibull") 中的错误: 数据必须是长度大于 1 的数字向量

fit_g <- fitdist(my_data,"伽玛")

fitdist(my_data, "gamma") 中的错误: 数据必须是长度大于 1 的数字向量

fit_ln <- fitdist(my_data, "lnorm")

fitdist(my_data, "lnorm") 中的错误: 数据必须是长度大于 1 的数字向量

摘要(fit_ln)

摘要(fit_ln)中的错误:找不到对象"fit_ln">

任何想法都会很棒!

plotdist()descdist()fitdist()fitdistr()函数中,你需要指定一个向量,例如my_data$Number_share而不是整个数据框my_data;这是假设你的"列"名称是Number_share,所以相应地修改。这应该有望解决您的问题!

最新更新