Minha resposta é o início de um hack total, mas não conheço nenhuma maneira estabelecida de fazer o que você pede.
Meu primeiro passo seria classificar a ordem do seu conjunto de dados para encontrar a posição proporcional no seu conjunto de dados e transformá-lo em uma distribuição normal. Esse método foi usado em Reynolds & Hewitt, 1996. Veja o código R de amostra abaixo no PROCMiracle.
Uma vez que a distribuição é normal, o problema foi revertido - uma questão de ajustar a curtose, mas não distorcer. Uma pesquisa no Google sugeriu que se pudesse seguir os procedimentos de John & Draper, 1980, para ajustar a curtose, mas não a inclinação - mas não pude replicar esse resultado.
Minhas tentativas de desenvolver uma função bruta de expansão / restrição que pega o valor de entrada (normalizado) e adiciona ou subtrai um valor proporcional à posição da variável na escala normal resultam em um ajuste monotônico, mas na prática tende a criar uma distribuição bimodal através de uma que possua os valores desejados de assimetria e curtose.
Sei que essa não é uma resposta completa, mas achei que poderia dar um passo na direção certa.
PROCMiracle <- function(datasource,normalrank="BLOM")
{
switch(normalrank,
"BLOM" = {
rmod <- -3/8
nmod <- 1/4
},
"TUKEY" = {
rmod <- -1/3
nmod <- 1/3
},
"VW" ={
rmod <- 0
nmod <- 1
},
"NONE" = {
rmod <- 0
nmod <- 0
}
)
print("This may be doing something strange with NA values! Beware!")
return(scale(qnorm((rank(datasource)+rmod)/(length(datasource)+nmod))))
}