วิธีเปลี่ยนการกระจายเลปโตคอตติกไปสู่ภาวะปกติ?


12

สมมติว่าฉันมีตัวแปร leptokurtic ที่ฉันต้องการเปลี่ยนเป็นค่าปกติ การเปลี่ยนแปลงอะไรที่ทำให้งานนี้สำเร็จ ฉันตระหนักดีว่าการแปลงข้อมูลอาจไม่เป็นที่ต้องการเสมอไป แต่เป็นการศึกษาเชิงวิชาการสมมติว่าฉันต้องการที่จะ "ตอก" ข้อมูลลงในแบบปกติ นอกจากนี้ดังที่คุณสามารถบอกได้จากพล็อตค่าทั้งหมดเป็นค่าบวกอย่างเคร่งครัด

ฉันได้ลองใช้การเปลี่ยนแปลงที่หลากหลาย (สิ่งที่ฉันเคยเห็นมาก่อนรวมถึง, ฯลฯ ) แต่ไม่มีใครทำงานได้ดีเป็นพิเศษ มีการเปลี่ยนแปลงที่รู้จักกันดีในการทำให้การกระจายตัวของเลปโตไคโตริกเป็นปกติมากขึ้นหรือไม่?1X,X,asinh(X)

ดูตัวอย่างพล็อต QQ ปกติด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่


5
คุณคุ้นเคยกับการแปลงความน่าจะเป็นรวมหรือไม่? มันถูกเรียกใช้ในไม่กี่กระทู้ในเว็บไซต์นี้หากคุณต้องการที่จะเห็นมันในการดำเนินการ
whuber

8

1
เอ๊ะอะไรที่ทำให้คุณเรียกว่า platykurtic เว้นแต่ฉันจะพลาดบางสิ่งบางอย่างดูเหมือนว่ามันจะมีความรุนแรงสูงกว่าปกติ
Glen_b

3
@Glen_b ฉันคิดว่าถูกต้อง: มันเป็น leptokurtic แต่ทั้งสองเงื่อนไขเหล่านี้จะสวยโง่ยกเว้นในเพื่อให้ห่างไกลที่พวกเขาให้การอ้างอิงถึงการ์ตูนต้นฉบับโดยนักศึกษาในBiometrika เกณฑ์คือ kurtosis; ค่าสูงหรือต่ำหรือ (ดียิ่งขึ้น) วัดปริมาณ
Nick Cox

3
t6

คำตอบ:


12

ฉันใช้การแจกแจงแบบหางยาวอย่างหนัก Lambert W x Fเพื่ออธิบายและแปลงข้อมูล leptokurtic ดู (ของฉัน) โพสต์ต่อไปนี้สำหรับรายละเอียดเพิ่มเติมและการอ้างอิง:

นี่คือตัวอย่างที่ทำซ้ำได้โดยใช้แพ็คเกจ LambertW R

library(LambertW)
set.seed(1)
theta.tmp <- list(beta = c(2000, 400), delta = 0.2)
yy <- rLambertW(n = 100, distname = "normal", 
                theta = theta.tmp)

test_norm(yy)

ทดสอบความปกติของข้อมูลต้นฉบับ

## $seed
## [1] 267509
## 
## $shapiro.wilk
## 
##  Shapiro-Wilk normality test
## 
## data:  data.test
## W = 1, p-value = 0.008
## 
## 
## $shapiro.francia
## 
## 	Shapiro-Francia normality test
## 
## data:  data.test
## W = 1, p-value = 0.003
## 
## 
## $anderson.darling
## 
##  Anderson-Darling normality test
## 
## data:  data
## A = 1, p-value = 0.01

yy×XN(2000,400)δ=0.25

กลับไปที่คำถามของคุณ: จะทำให้ข้อมูล leptokurtic นี้เป็นปกติได้อย่างไร เราสามารถประมาณค่าพารามิเตอร์ของการแจกแจงโดยใช้ MLE (หรือสำหรับวิธีการใช้ช่วงเวลาIGMM())

mod.Lh <- MLE_LambertW(yy, distname = "normal", type = "h")
summary(mod.Lh)

## Call: MLE_LambertW(y = yy, distname = "normal", type = "h")
## Estimation method: MLE
## Input distribution: normal
## 
##  Parameter estimates:
##        Estimate  Std. Error  t value Pr(>|t|)    
## mu     2.05e+03    4.03e+01    50.88   <2e-16 ***
## sigma  3.64e+02    4.36e+01     8.37   <2e-16 ***
## delta  1.64e-01    7.84e-02     2.09    0.037 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## -------------------------------------------------------------- 
## 
## Given these input parameter estimates the moments of the output random variable are 
##   (assuming Gaussian input): 
##  mu_y = 2052; sigma_y = 491; skewness = 0; kurtosis = 13.

W_delta()X

# get_input() handles does the right transformations automatically based on
# estimates in mod.Lh
xx <- get_input(mod.Lh)
test_norm(xx)

ทดสอบความปกติของข้อมูล Gaussianized

## $seed
## [1] 218646
## 
## $shapiro.wilk
## 
##  Shapiro-Wilk normality test
## 
## data:  data.test
## W = 1, p-value = 1
## 
## 
## $shapiro.francia
## 
## 	Shapiro-Francia normality test
## 
## data:  data.test
## W = 1, p-value = 1
## 
## 
## $anderson.darling
## 
##  Anderson-Darling normality test
## 
## data:  data
## A = 0.1, p-value = 1

Voila!


ฉันเป็นแฟนและเริ่มทำงานกับ scikit เรียนรู้เหมือนรุ่นสำหรับ python: github.com/gregversteeg/gaussianize
Greg Ver Steeg

Georg เป็นไปได้หรือไม่ที่คุณจะให้คำอธิบายที่ง่ายยิ่งขึ้นเกี่ยวกับการทำงานของการแปลงร่าง?
Azuric

Z=Uexp(δ/2U2)Uδ>0Z

9

sign(.)abs(.)13Ymedian(Y)

แม้ว่าการแปลงรูทของคิวบ์จะทำได้ไม่ดีนัก แต่กลับกลายเป็นสแควร์รูทและรูทสามไตรมาสที่คลุมเครือนั้นทำงานได้ดีขึ้น

นี่คือพล็อตความหนาแน่นเคอร์เนลดั้งเดิมที่สอดคล้องกับพล็อต QQ ของตัวแปร leptokurtic ในคำถามเดิม:

ป้อนคำอธิบายรูปภาพที่นี่


หลังจากใช้การแปลงแบบรากที่สองกับส่วนเบี่ยงเบนพล็อต QQ จะมีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ดีกว่า แต่ก็สามารถใกล้กว่า


โดยใช้การแปลงรูทสามในสี่ไปยังส่วนเบี่ยงเบน

ป้อนคำอธิบายรูปภาพที่นี่


และความหนาแน่นของเคอร์เนลสุดท้ายของตัวแปรที่แปลงสภาพนี้มีลักษณะดังนี้

ป้อนคำอธิบายรูปภาพที่นี่

ดูใกล้ฉัน


8

ในหลายกรณีอาจไม่มีการแปลงแบบโมโนโทนิที่เรียบง่ายซึ่งจะให้ผลลัพธ์ใกล้เคียงกับปกติ

ตัวอย่างเช่นลองจินตนาการว่าเรามีการแจกแจงซึ่งเป็นการรวมกันอัน จำกัด ของการแจกแจงแบบปกติของพารามิเตอร์ต่าง ๆ การแปลงบันทึกจะแปลงองค์ประกอบใด ๆ ของส่วนผสมให้เป็นมาตรฐาน แต่การผสมผสานของบรรทัดฐานในข้อมูลที่แปลงแล้วจะทำให้คุณมีบางสิ่งที่ไม่ปกติ

หรืออาจมีการแปลงที่ค่อนข้างดี แต่ไม่ใช่รูปแบบใดรูปแบบหนึ่งที่คุณคิดว่าจะลอง - หากคุณไม่รู้การกระจายของข้อมูลคุณอาจไม่พบมัน ตัวอย่างเช่นถ้าข้อมูลมีการกระจายแกมม่าคุณจะไม่พบการแปลงเป็นค่าปกติ (ซึ่งมีอยู่จริง) เว้นแต่ฉันจะบอกคุณอย่างชัดเจนว่าการกระจายคืออะไร (แม้ว่าคุณอาจสะดุดกับการแปลงลูกบาศก์รูทที่ในนี้ ตัวพิมพ์เล็กจะทำให้ใกล้เคียงกับปกติตราบใดที่พารามิเตอร์รูปร่างไม่เล็กเกินไป)

มีวิธีมากมายในการที่ข้อมูลสามารถดูเหมาะสมที่จะถูกแปลง แต่ไม่ได้ดูดีมากในรายการการแปลงที่เห็นได้ชัด

หากคุณสามารถให้เราเข้าถึงข้อมูลอาจเป็นไปได้ว่าเราสามารถสังเกตเห็นการเปลี่ยนแปลงที่ไม่เป็นไร - หรือเราสามารถแสดงให้คุณเห็นว่าทำไมคุณถึงไม่เจอ

เพียงแค่จากความประทับใจที่มองเห็นที่นั่นดูเหมือนว่ามีส่วนผสมของสองบรรทัดฐานด้วยเกล็ดที่แตกต่างกัน มีเพียงเล็กน้อยของความไม่สมดุลซึ่งคุณสามารถสังเกตได้อย่างง่ายดายโดยบังเอิญ นี่คือตัวอย่างของตัวอย่างจากการผสมผสานของสองบรรทัดฐานที่มีค่าเฉลี่ยทั่วไป - ตามที่คุณเห็นมันค่อนข้างคล้ายกับพล็อตของคุณ (แต่ตัวอย่างอื่นอาจดูเทลด์ที่หนักกว่าหรือเบากว่า - ที่ขนาดตัวอย่างนี้มีการเปลี่ยนแปลงมากมาย สถิติภายนอก 1 sd ทั้งสองด้านของค่าเฉลี่ย)

ป้อนคำอธิบายรูปภาพที่นี่

ในความเป็นจริงที่นี่เป็นของคุณและทับฉัน:

ป้อนคำอธิบายรูปภาพที่นี่


แน่นอนว่ามันดูเหมือนการผสมผสานของการแจกแจงปกติสองระดับที่แตกต่างกันและการสังเกตที่ยอดเยี่ยม
Underminer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.