Jawaban saya adalah awal dari peretasan total, tetapi saya tidak mengetahui adanya cara yang mapan untuk melakukan apa yang Anda minta.
Langkah pertama saya adalah menentukan urutan urutan dataset Anda, Anda dapat menemukan posisi proporsional dalam dataset Anda dan kemudian mengubahnya menjadi distribusi normal, metode ini digunakan dalam Reynolds & Hewitt, 1996. Lihat contoh kode R di bawah ini dalam PROCMiracle.
Setelah distribusinya normal, maka masalahnya telah teratasi - masalah menyesuaikan kurtosis tetapi tidak miring. Pencarian google menyarankan bahwa seseorang dapat mengikuti prosedur John & Draper, 1980 untuk menyesuaikan kurtosis tetapi tidak condong - tetapi saya tidak bisa meniru hasil itu.
Upaya saya untuk mengembangkan fungsi penyempitan / penyempitan mentah yang mengambil nilai input (dinormalisasi) dan menambah atau mengurangi nilai dari itu sebanding dengan posisi variabel pada skala normal memang menghasilkan penyesuaian monotonik, tetapi dalam praktiknya cenderung menciptakan distribusi bimodal meskipun memiliki kemiringan dan nilai kurtosis yang diinginkan.
Saya menyadari ini bukan jawaban yang lengkap, tetapi saya pikir ini mungkin memberikan langkah ke arah yang benar.
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))))
}