我很难使用fitdist
使分布适合我的样本数据。
这是代码:
fittrial <<- dnorm(severity,mean(severity),var(severity))
fitdist(fittrial,"normal")
我收到此错误:
fitdist(fittrial,“ normal”)错误:
必须定义标准函数
我看了网上,并尝试了所有我能理解的方法。我会很感激我能得到的任何帮助。
最佳答案
主要问题是在不同程序包中的两个相似命名的函数之间的混淆:MASS::fitdistr()
(为此densfun
参数指定“ normal”起作用)和fitdistrplus::fitdist()
(对此没有作用)。有关如何使用fitdistrplus::fitdist()
的详细信息,请参见@Rakurai的答案。该答案集中在MASS::fitdistr()
上。
此外:dnorm()
将平均值和标准偏差(而不是平均值和方差)作为参数。
如果可以避免,请不要使用<<-
赋值运算符。
severity <- 1:10
set.seed(101) ## for reproducibility
fittrial <- rnorm(length(severity),mean(severity),sd(severity))
library("MASS")
适合模拟法线的偏离:
fitdistr(fittrial,"normal")
## mean sd
## 6.2418957 1.6785684
## (0.5308099) (0.3753393)
适合原始数据:
fitdistr(severity,"normal")
## mean sd
## 5.5000000 2.8722813
## (0.9082951) (0.6422616)