将数据拟合到 R 中的分布:错误
Fitting data to distributions in R: errors
我正在将我的数据拟合到 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)
Error in plotdist(my_data, histo = TRUE, demp = TRUE) :
data must be a numeric vector
descdist(my_data, discrete=FALSE, boot=500)
Error in descdist(my_data, discrete = FALSE, boot = 500) :
data must be a numeric vector
fit_w <- fitdist(my_data, "weibull")
Error in fitdist(my_data, "weibull") :
data must be a numeric vector of length greater than 1
fit_g <- fitdist(my_data, "gamma")
Error in fitdist(my_data, "gamma") :
data must be a numeric vector of length greater than 1
fit_ln <- fitdist(my_data, "lnorm")
Error in fitdist(my_data, "lnorm") :
data must be a numeric vector of length greater than 1
摘要(fit_ln)
Error in summary(fit_ln) : object 'fit_ln' not found
任何想法都会很棒!
在plotdist()
、descdist()
、fitdist()
和fitdistr()
函数中你需要指定一个向量,例如my_data$Number_share
而不是整个数据框my_data
;这是假设您的 "column" 名称是 Number_share
,因此请相应地进行修改。这应该有望解决您的问题!
我正在将我的数据拟合到 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)
Error in plotdist(my_data, histo = TRUE, demp = TRUE) : data must be a numeric vector
descdist(my_data, discrete=FALSE, boot=500)
Error in descdist(my_data, discrete = FALSE, boot = 500) : data must be a numeric vector
fit_w <- fitdist(my_data, "weibull")
Error in fitdist(my_data, "weibull") : data must be a numeric vector of length greater than 1
fit_g <- fitdist(my_data, "gamma")
Error in fitdist(my_data, "gamma") : data must be a numeric vector of length greater than 1
fit_ln <- fitdist(my_data, "lnorm")
Error in fitdist(my_data, "lnorm") : data must be a numeric vector of length greater than 1
摘要(fit_ln)
Error in summary(fit_ln) : object 'fit_ln' not found
任何想法都会很棒!
在plotdist()
、descdist()
、fitdist()
和fitdistr()
函数中你需要指定一个向量,例如my_data$Number_share
而不是整个数据框my_data
;这是假设您的 "column" 名称是 Number_share
,因此请相应地进行修改。这应该有望解决您的问题!