假设您有一组值,并且想知道是从高斯(正态)分布中抽样还是从对数正态分布中抽样?
当然,理想情况下,您应该对总体或实验误差的来源有所了解,因此会有更多有用的信息来回答问题。但是在这里,假设我们只有一组数字而没有其他信息。哪个更有可能:是从高斯抽样还是从对数正态分布抽样?可能性更高?我希望的是在两个模型之间进行选择的算法,并希望量化每个模型的相对可能性。
假设您有一组值,并且想知道是从高斯(正态)分布中抽样还是从对数正态分布中抽样?
当然,理想情况下,您应该对总体或实验误差的来源有所了解,因此会有更多有用的信息来回答问题。但是在这里,假设我们只有一组数字而没有其他信息。哪个更有可能:是从高斯抽样还是从对数正态分布抽样?可能性更高?我希望的是在两个模型之间进行选择的算法,并希望量化每个模型的相对可能性。
Answers:
您可以通过最大似然拟合每个分布(正态或对数正态)与数据,然后比较每个模型下的对数似然度来对分布类型做出最佳猜测-具有最高对数似然度的模型是最佳拟合。例如,在R中:
# log likelihood of the data given the parameters (par) for
# a normal or lognormal distribution
logl <- function(par, x, lognorm=F) {
if(par[2]<0) { return(-Inf) }
ifelse(lognorm,
sum(dlnorm(x,par[1],par[2],log=T)),
sum(dnorm(x,par[1],par[2],log=T))
)
}
# estimate parameters of distribution of x by ML
ml <- function(par, x, ...) {
optim(par, logl, control=list(fnscale=-1), x=x, ...)
}
# best guess for distribution-type
# use mean,sd of x for starting parameters in ML fit of normal
# use mean,sd of log(x) for starting parameters in ML fit of lognormal
# return name of distribution type with highest log ML
best <- function(x) {
logl_norm <- ml(c(mean(x), sd(x)), x)$value
logl_lognorm <- ml(c(mean(log(x)), sd(log(x))), x, lognorm=T)$value
c("Normal","Lognormal")[which.max(c(logl_norm, logl_lognorm))]
}
现在从正态分布生成数字并通过ML拟合正态分布:
set.seed(1)
x = rnorm(100, 10, 2)
ml(c(10,2), x)
产生:
$par
[1] 10.218083 1.787379
$value
[1] -199.9697
...
比较对数可能性对正态分布和对数正态分布的ML拟合:
ml(c(10,2), x)$value # -199.9697
ml(c(2,0.2), x, lognorm=T)$value # -203.1891
best(x) # Normal
尝试使用对数正态分布:
best(rlnorm(100, 2.6, 0.2)) # lognormal
取决于n,均值和标准差,分配将不是完美的:
> table(replicate(1000, best(rnorm(500, 10, 2))))
Lognormal Normal
6 994
> table(replicate(1000, best(rlnorm(500, 2.6, 0.2))))
Lognormal Normal
999 1
p(X|\theta)
),计算观察到数据的概率。我们不转换数据。我们打印出观测数据概率最高的分布。这种方法是合法的,但缺点是我们无法根据给定数据推断模型p(M|X)
的概率,即数据来自正态分布与对数正态分布的概率(例如,p(正态)= 0.1,p(对数正态)= 0.9)与贝叶斯方法不同。
困难的部分是获得边际可能性,
例:
根据Murphy(2007)(等式203),正态分布的边际似然由
对于对数正态分布,我使用相同的超参数,
后部的行为是这样的:
在实施方程式时,最好使用对数密度而不是密度。但是否则应该很简单。这是我用来生成绘图的代码:
听起来您正在寻找一种实用的方法来帮助可能不是专业统计学家的分析人员,他们需要一些东西来促使他们进行应采用的标准探索性技术,例如查看qq图,密度图等。
在这种情况下,为什么不简单地对原始数据进行正态性检验(Shapiro-Wilk或其他方法),然后对对数转换后的数据进行正态性检验,如果第二个p值较高,则为分析人员考虑使用对数变换提出一个标志。 ?另外,还可以吐出原始数据和转换后数据的密度线图和qqnorm图的2 x 2图形。
从技术上讲,这不会回答您有关相对可能性的问题,但我想知道这是否就是您所需要的。