คำตอบของฉันคือการเริ่มต้นของการแฮ็คทั้งหมด แต่ฉันไม่ได้ตระหนักถึงวิธีการที่กำหนดไว้ในการทำสิ่งที่คุณถาม
ขั้นตอนแรกของฉันคือการจัดลำดับชุดข้อมูลของคุณคุณสามารถค้นหาตำแหน่งที่เป็นสัดส่วนในชุดข้อมูลของคุณจากนั้นแปลงเป็นชุดข้อมูลแบบธรรมดาวิธีนี้ใช้ใน Reynolds & Hewitt, 1996 ดูตัวอย่างรหัส R ด้านล่างใน PROCMiracle
เมื่อการกระจายเป็นปกติแล้วปัญหาได้ถูกเปิดบนหัวของมัน - เรื่องของการปรับ kurtosis แต่ไม่เอียง การค้นหา google แนะนำว่าเราสามารถทำตามขั้นตอนของ John & Draper, 1980 เพื่อปรับเปลี่ยนความหนา แต่ไม่ใช่ความเบ้ - แต่ฉันไม่สามารถทำซ้ำผลลัพธ์นั้นได้
ความพยายามของฉันในการพัฒนาฟังก์ชั่นการแพร่กระจาย / การ จำกัด น้ำมันดิบที่รับค่าอินพุต (ทำให้เป็นมาตรฐาน) และเพิ่มหรือลบค่าจากมันตามสัดส่วนกับตำแหน่งของตัวแปรในระดับปกติจะส่งผลให้มีการปรับแบบโมโนโทนิก แต่ในทางปฏิบัติ การกระจาย bimodal แม้ว่าจะมีค่าความเบ้และค่าเคิร์ตซีสที่ต้องการ
ฉันรู้ว่านี่ไม่ใช่คำตอบที่สมบูรณ์ แต่ฉันคิดว่ามันอาจให้ขั้นตอนในทิศทางที่ถูกต้อง
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))))
}