มีการกระจายของ 'สมดุล' ของการวัดหรือไม่?


14

ฉันค้นหาบนเว็บ แต่ไม่พบสิ่งที่เป็นประโยชน์

โดยทั่วไปฉันกำลังมองหาวิธีการวัดว่ามีการกระจายมูลค่าอย่างเท่าเทียมกันอย่างไร ในขณะที่การกระจายกระจายอย่างเท่าเทียมกันเช่นX : ป้อนคำอธิบายรูปภาพที่นี่

และการแจกแจงการแจกแจงแบบ'ไม่สม่ำเสมอ' Yซึ่งมีค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานเท่ากัน: ป้อนคำอธิบายรูปภาพที่นี่

แต่มีการวัดค่าสมดุลใด ๆ m เช่นนั้น m (X)> m (Y)? หากไม่มีสิ่งใดจะเป็นวิธีที่ดีที่สุดในการสร้างการวัดเช่นนี้

(ภาพสกรีนช็อตจาก Khan Academy)


1
แล้วความเบ้
wolfsatthedoor

เอนโทรปีเป็นสิ่งที่ดีสำหรับการแจกแจงแบบแยกซึ่งได้รับการสนับสนุนเหมือนกัน แต่ฉันไม่รู้ว่ามันดีสำหรับการแจกแจงแบบต่อเนื่องหรือไม่
Stéphane Laurent

คุณแน่ใจหรือไม่ว่าพล็อตจุดเป็นสิ่งที่คุณต้องการ ฉันไม่คิดว่าคุณจะถามถึงความเหมือนกันจริงๆ ดูเหมือนว่าคำถามเกี่ยวกับ "clumpiness" หรือ "degree of clustering" หรือแม้กระทั่ง multimodality
shadowtalker

@ StéphaneLaurent - ฉันถูกแนะนำให้รู้จักกับเอนโทรปีโดยคนอื่น ๆ เช่นกัน คุณช่วยกรุณาสละเวลาและอธิบายรายละเอียดหน่อยได้ไหม?
Ketan

1
คุณต้องกำหนดสิ่งที่คุณหมายอย่างชัดเจนให้มากขึ้นโดย "กระจายแบบสม่ำเสมอ" สมองที่แท้จริงของฉันบอกว่าข้อมูลเช่น 1,4,7,10,13, ... มีการกระจายอย่างเท่าเทียมกัน แต่คุณอาจหมายถึงบางสิ่งที่แตกต่างอย่างสิ้นเชิง
Emil Friedman

คำตอบ:


16

มาตรฐานที่มีประสิทธิภาพและเป็นที่เข้าใจกันดีในทางทฤษฎีและเป็นที่ยอมรับกันอย่างแพร่หลายในการวัด "สมดุล" คือฟังก์ชั่นของRipley Kและฟังก์ชัน L ที่สัมพันธ์กันอย่างใกล้ชิด แม้ว่าโดยทั่วไปแล้วสิ่งเหล่านี้จะใช้เพื่อประเมินการกำหนดค่าจุดเชิงพื้นที่สองมิติ แต่การวิเคราะห์ที่จำเป็นในการปรับให้เข้ากับมิติหนึ่ง (ซึ่งโดยทั่วไปจะไม่ได้รับในการอ้างอิง) นั้นเป็นเรื่องง่าย


ทฤษฎี

ฟังก์ชัน K ประมาณการสัดส่วนของคะแนนภายในระยะทางของจุดทั่วไป สำหรับการแจกแจงแบบสม่ำเสมอในช่วงเวลา[ 0 , 1 ]สัดส่วนที่แท้จริงสามารถคำนวณได้และ (asymptotically ในขนาดตัวอย่าง) เท่ากับ1 - ( 1 - d )d[0,1]2 ฟังก์ชัน L รุ่นหนึ่งมิติที่เหมาะสมจะลบค่านี้จาก K เพื่อแสดงการเบี่ยงเบนจากความสม่ำเสมอ ดังนั้นเราอาจพิจารณาปรับมาตรฐานของชุดข้อมูลให้มีช่วงหน่วยและตรวจสอบฟังก์ชัน L เพื่อหาค่าเบี่ยงเบนรอบศูนย์1(1d)2


ตัวอย่างการทำงาน

เพื่อแสดงให้เห็นว่าฉันได้จำลองตัวอย่างอิสระจำนวนตัวอย่างจากขนาด64จากการแจกแจงแบบเดียวกันและได้วางแผนฟังก์ชัน L (ปกติ) สำหรับระยะทางที่สั้นกว่า (จาก0ถึง1 /999640 ) จึงสร้างซองจดหมายเพื่อประเมินการกระจายตัวอย่างของฟังก์ชั่นเปิด L (พล็อตจุดที่ดีภายในซองจดหมายนี้ไม่สามารถแยกความแตกต่างอย่างมีนัยสำคัญจากความเท่าเทียมกัน) เหนือสิ่งนี้ฉันได้วางแผนฟังก์ชัน L สำหรับตัวอย่างที่มีขนาดเท่ากันจากการกระจายรูปตัวยูการกระจายแบบผสมที่มีส่วนประกอบที่ชัดเจนสี่ประการ ฮิสโตแกรมของตัวอย่างเหล่านี้ (และของการแจกแจงพาเรนต์) แสดงขึ้นเพื่อการอ้างอิงโดยใช้สัญลักษณ์เส้นเพื่อจับคู่กับฟังก์ชั่น L1/3

รูป

เดือยแหลมแยกออกจากกันของการกระจายรูปตัวยู (เส้นประสีแดง, ฮิสโตแกรมซ้ายสุด) สร้างกลุ่มของค่าที่เว้นระยะอย่างใกล้ชิด นี่คือภาพสะท้อนจากความลาดชันที่มีขนาดใหญ่มากในการทำงานของ L ที่0จากนั้นฟังก์ชั่น L จะลดลงจนกลายเป็นลบในที่สุดเพื่อสะท้อนช่องว่างในระยะทางระดับกลาง0

ตัวอย่างจากการแจกแจงแบบปกติ (เส้นทึบสีน้ำเงิน, ฮิสโตแกรมขวาสุด) นั้นใกล้เคียงกับการกระจายแบบสม่ำเสมอ ดังนั้นฟังก์ชั่น L จึงไม่ออกจากอย่างรวดเร็ว อย่างไรก็ตามโดยระยะทาง0.10หรือมากกว่านั้นมันได้เพิ่มขึ้นอย่างเพียงพอเหนือซองจดหมายเพื่อส่งสัญญาณแนวโน้มที่จะจัดกลุ่มเล็กน้อย การเพิ่มขึ้นอย่างต่อเนื่องในระยะทางกลางแสดงว่าการจัดกลุ่มนั้นกระจายและแพร่หลาย (ไม่ จำกัด เฉพาะบางจุดที่แยกได้)00.10

ความชันเริ่มต้นขนาดใหญ่สำหรับตัวอย่างจากการกระจายของส่วนผสม (ฮิสโตแกรมกลาง) แสดงการจัดกลุ่มที่ระยะทางเล็ก ๆ (น้อยกว่า ) เมื่อปล่อยลงสู่ระดับลบจะเป็นการส่งสัญญาณการแยกที่ระยะทางระดับกลาง เมื่อเปรียบเทียบสิ่งนี้กับฟังก์ชั่น L การกระจายตัวของรูปตัวยูจะเผยให้เห็น: ความลาดชันที่0จำนวนที่เส้นโค้งเหล่านี้เพิ่มขึ้นสูงกว่า0และอัตราที่พวกเขาลงไปในที่สุด0.1500ทั้งหมดให้ข้อมูลเกี่ยวกับลักษณะของการรวมกลุ่ม ข้อมูล. คุณลักษณะใด ๆ เหล่านี้สามารถเลือกได้ว่าเป็น "การวัดคู่" แบบเดี่ยวเพื่อให้เหมาะกับการใช้งานเฉพาะ0

ตัวอย่างเหล่านี้แสดงให้เห็นว่า L-function สามารถตรวจสอบได้อย่างไรเพื่อประเมินการออกของข้อมูลจากความสม่ำเสมอ ("สม่ำเสมอ") และข้อมูลเชิงปริมาณเกี่ยวกับขนาดและลักษณะของการแยกออกจากมัน

(หนึ่งสามารถพล็อตฟังก์ชั่น L ทั้งหมดซึ่งขยายไปถึงระยะปกติเต็มรูปแบบที่เพื่อประเมินการออกเดินทางขนาดใหญ่จากความสม่ำเสมอโดยปกติแม้ว่าการประเมินพฤติกรรมของข้อมูลในระยะทางเล็ก ๆ นั้นมีความสำคัญมากกว่า)1


ซอฟต์แวร์

Rรหัสเพื่อสร้างรูปนี้ดังนี้ มันเริ่มต้นด้วยการกำหนดฟังก์ชั่นในการคำนวณ K และ L มันสร้างความสามารถในการจำลองจากการกระจายตัวของส่วนผสม จากนั้นจะสร้างข้อมูลจำลองและสร้างแปลง

Ripley.K <- function(x, scale) {
  # Arguments:
  # x is an array of data.
  # scale (not actually used) is an option to rescale the data.
  #
  # Return value:
  # A function that calculates Ripley's K for any value between 0 and 1 (or `scale`).
  #
  x.pairs <- outer(x, x, function(a,b) abs(a-b))  # All pairwise distances
  x.pairs <- x.pairs[lower.tri(x.pairs)]          # Distances between distinct pairs
  if(missing(scale)) scale <- diff(range(x.pairs))# Rescale distances to [0,1]
  x.pairs <- x.pairs / scale
  #
  # The built-in `ecdf` function returns the proportion of values in `x.pairs` that
  # are less than or equal to its argument.
  #
  return (ecdf(x.pairs))
}
#
# The one-dimensional L function.
# It merely subtracts 1 - (1-y)^2 from `Ripley.K(x)(y)`.  
# Its argument `x` is an array of data values.
#
Ripley.L <- function(x) {function(y) Ripley.K(x)(y) - 1 + (1-y)^2}
#-------------------------------------------------------------------------------#
set.seed(17)
#
# Create mixtures of random variables.
#
rmixture <- function(n, p=1, f=list(runif), factor=10) {
  q <- ceiling(factor * abs(p) * n / sum(abs(p)))
  x <- as.vector(unlist(mapply(function(y,f) f(y), q, f)))
  sample(x, n)
}
dmixture <- function(x, p=1, f=list(dunif)) {
  z <- matrix(unlist(sapply(f, function(g) g(x))), ncol=length(f))
  z %*% (abs(p) / sum(abs(p)))
}
p <- rep(1, 4)
fg <- lapply(p, function(q) {
  v <- runif(1,0,30)
  list(function(n) rnorm(n,v), function(x) dnorm(x,v), v)
  })
f <- lapply(fg, function(u) u[[1]]) # For random sampling
g <- lapply(fg, function(u) u[[2]]) # The distribution functions
v <- sapply(fg, function(u) u[[3]]) # The parameters (for reference)
#-------------------------------------------------------------------------------#
#
# Study the L function.
#
n <- 64                # Sample size
alpha <- beta <- 0.2   # Beta distribution parameters

layout(matrix(c(rep(1,3), 3, 4, 2), 2, 3, byrow=TRUE), heights=c(0.6, 0.4))
#
# Display the L functions over an envelope for the uniform distribution.
#
plot(c(0,1/3), c(-1/8,1/6), type="n", 
     xlab="Normalized Distance", ylab="Total Proportion",
     main="Ripley L Functions")
invisible(replicate(999, {
  plot(Ripley.L(x.unif <- runif(n)), col="#00000010", add=TRUE)
}))
abline(h=0, lwd=2, col="White")
#
# Each of these lines generates a random set of `n` data according to a specified
# distribution, calls `Ripley.L`, and plots its values.
#
plot(Ripley.L(x.norm <- rnorm(n)), col="Blue", lwd=2, add=TRUE)
plot(Ripley.L(x.beta <- rbeta(n, alpha, beta)), col="Red", lwd=2, lty=2, add=TRUE)
plot(Ripley.L(x.mixture <- rmixture(n, p, f)), col="Green", lwd=2, lty=3, add=TRUE)
#
# Display the histograms.
#
n.breaks <- 24
h <- hist(x.norm, main="Normal Sample", breaks=n.breaks, xlab="Value")
curve(dnorm(x)*n*mean(diff(h$breaks)), add=TRUE, lwd=2, col="Blue")
h <- hist(x.beta, main=paste0("Beta(", alpha, ",", beta, ") Sample"), 
          breaks=n.breaks, xlab="Value")
curve(dbeta(x, alpha, beta)*n*mean(diff(h$breaks)), add=TRUE, lwd=2, lty=2, col="Red")
h <- hist(x.mixture, main="Mixture Sample", breaks=n.breaks, xlab="Value")
curve(dmixture(x, p, g)*n*mean(diff(h$breaks)), add=TRUE, lwd=2, lty=3, col="Green")

1
ฉันทำงานเป็นส่วนใหญ่ใน Numpy และบางครั้งใน SciPy คุณมีความคิดใด ๆ หรือไม่ว่าการวัดนี้มีอยู่ในไลบรารี่ของ python หรือไม่? การค้นหาไม่ส่งคืนสิ่งที่เกี่ยวข้อง
Ketan

ฟังก์ชั่น L อาจไม่สามารถใช้งานได้เนื่องจากโดยปกติแล้วจะมีรหัสสำหรับสองมิติขึ้นไป อัลกอริทึมเป็นเรื่องง่ายที่คุณสามารถดูได้จากการดำเนินการที่นี่: คำนวณฟังก์ชันการกระจายเชิงประจักษ์สะสมRipley.Lของระยะทางระหว่างคู่ที่แตกต่างกันข้อมูลทั้งหมดแล้วปรับตามที่แสดงใน
whuber

ความแปรปรวนของการวัดขึ้นอยู่กับผู้ไม่เชื่อเรื่องพระเจ้าหรือความแปรปรวนหรือไม่?
Ketan

1
ขั้นตอนพื้นฐานที่ผมอธิบายไว้ที่นี่ normalizes ข้อมูลเพื่อให้สอดคล้องกับช่วงที่จะช่วง ] เช่นนี้มันคือ "ความแปรปรวนของผู้ไม่เชื่อเรื่องพระเจ้า" อย่างไรก็ตามนั่นทำให้อ่อนไหวต่อค่าผิดปกติ (ปัญหานี้อาจเป็นปัญหาที่รุนแรงในมิติที่สูงกว่า) เราสามารถเอาชนะข้อ จำกัด ดังกล่าวได้โดยการทำให้เป็นมาตรฐานในช่วงควอไทล์ (เช่น IQR) และทำการปรับที่เหมาะสมในการแก้ไข1 - ( 1 - d ) 2สำหรับ ฟังก์ชั่น L นี่จะทำให้ฟังก์ชัน L- non ที่ไม่ใช่พารามิเตอร์และมีประสิทธิภาพซึ่งฉันคิดว่าตอบข้อกังวลของคุณ [0,1]1(1d)2
เสียงหวือ

คุณกล่าวว่า "ปัญหานี้อาจเป็นปัญหาที่รุนแรงในระดับที่สูงขึ้น" มันได้รับการดัดแปลงสำหรับอาร์เรย์ที่ไม่แปรเปลี่ยนใช่ไหม ฉันไม่แน่ใจทั้งหมดถ้าฉันเข้าใจทุกอย่างดี คุณกรุณาเขียน Ripley.L เป็นภาษาอื่นหรือใน pseudocode ได้ไหม? หรือคุณสามารถคอมเม้นท์โค้ดที่มีอยู่เล็กน้อยหรืออย่างน้อยฟอร์แมต Ripley.L ไปยังหลายบรรทัดเพื่อเพิ่มความสามารถในการอ่าน การขาดเอกสารที่เหมาะสมใด ๆ ที่statsmodels.sourceforge.net/stable/generated/ ......ไม่ได้ช่วยฉันเท่าไหร่
Ketan

5

ฉันคิดว่าคุณต้องการวัดว่าการกระจายตัวของเครื่องแบบใกล้เคียงแค่ไหน

คุณสามารถดูระยะห่างระหว่างฟังก์ชันการแจกแจงสะสมของการกระจายแบบสม่ำเสมอและฟังก์ชันการแจกแจงสะสมเชิงประจักษ์ของตัวอย่าง

{1,2,3,4,5}Fu(x)

Fu(x)=i=1[x]1/5.

X1,3,5X

FX(1)=1/3,FX(2)=1/3,FX(3)=2/3,FX(4)=2/3,FX(5)=1

Y1,1,5Y

FY(1)=2/3,FY(2)=2/3,FY(3)=2/3,FY(4)=2/3,FY(5)=1

ทีนี้การวัดระยะทางระหว่างการแจกแจงลองหาผลรวมของระยะทางในแต่ละจุดนั่นคือ

d(F,G)=i=15|F(x)G(x)|.

d(Fu,FX)<d(Fu,FY)

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


บางมาตรการอื่น ๆ ที่นิยมของระยะทางในการจัดจำหน่ายที่มีการทดสอบ Kolmogorov-Smirnovและทดสอบแอนเดอ-ดาร์ลิ่ง
Tom Minka

สวัสดี ขอบคุณสำหรับคำตอบ. โปรดกลับมาทบทวนคำถามที่อัปเดตใหม่เพื่อแก้ความกำกวมและแจ้งให้เราทราบหากคำตอบของคุณใช้ได้ ถ้าเป็นเช่นนั้น ฉันจะต้องตรวจสอบมัน
Ketan

ใช่คำตอบของฉันใช้ได้กับมันตราบใดที่ 'สม่ำเสมอ' หมายถึง 'เครื่องแบบ'
ŁukaszKidziński

ตกลง. คุณช่วยอธิบายเกี่ยวกับคำตอบหน่อยได้ไหม
Ketan

@ Tomominka ขอบคุณบรรทัดฐานแน่นอนบรรทัดฐานเหล่านี้ดียิ่งขึ้นเนื่องจากมีขั้นตอนการทดสอบที่พัฒนาขึ้นมา
ŁukaszKidziński

1

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

ถ้ามันมีความเหมือนกันอย่างแท้จริงในการสังเกตุจุด PM ทั้งหมดควรมีค่าเท่ากันและความแตกต่างระหว่าง max และ min คือ 0 ยิ่งความแตกต่างโดยเฉลี่ยอยู่ใกล้ 0 มากเท่าใดยิ่งการ "ยิ่ง" เป็นจำนวนมากการสังเกตก็ยิ่งต่ำลง ความแตกต่างสูงสุดและ "ยอดเขา" ที่น้อยลงยังแสดงให้เห็นว่าการสังเกตเชิงประจักษ์นั้นเป็นอย่างไร

อัปเดต แน่นอนคุณสามารถใช้การทดสอบไคสแควร์เพื่อความเท่าเทียมกันหรือเปรียบเทียบฟังก์ชันการกระจายเชิงประจักษ์กับชุดเครื่องแบบ แต่ในกรณีเหล่านั้นคุณจะถูกลงโทษโดยช่องว่างขนาดใหญ่ในการสังเกตแม้ว่าการกระจายของการสังเกตยังคงอยู่ "แม้แต่"


สำหรับชุดของค่าที่เป็นไปได้ที่กำหนดฉันต้องการสร้างแบบจำลองโดยทั่วไปว่า 'หายาก' หรือ 'เฉพาะ' มันจะมีค่าเฉพาะจากชุดของค่านั้น ในการขาดตัวเลือกอื่น ๆ ฉันพยายามวัดว่ามีการกระจายคุณค่าอย่างเท่าเทียมกันหรือสม่ำเสมอ ยิ่งการกระจายยิ่งมีโอกาสน้อยที่จะมีค่าแปลก ๆ จากชุด ในขณะที่หากข้อมูลทั้งหมดอยู่ในช่วงสุดขีดของการแจกแจงค่าใด ๆ อาจเป็นสิ่งที่ควรค่าแก่การพิจารณาว่าเป็น 'แปลก' ฉันหวังว่าคุณจะได้รับมัน
Ketan

1

การวัดที่คุณกำลังมองหาเรียกว่าความขัดแย้งอย่างเป็นทางการแตกต่าง

รุ่นหนึ่งมิติมีดังนี้:

I=[a,b)x1,,xNIฉัน

JIA(J,N)J J

A(J,N)=|{x1,,xN}J|,
V(J)J

x1,,xN

>DN=supJ|A(J,N)V(J)N|,
J=j=1[0,tj), with 0tj1.

The discrepancy thus compares the actual number of points in a given volume with the expected number of points in that volume, assuming the sequence x1,,xN is uniformly distributed in I.

Low discrepancy sequences are often called quasirandom sequences.

A basic overview of low discrepancy sequences can be found here, and my blog post "The unreasonable effectiveness of quasirandom sequences" compares various methods when applied to Numerical Integration, mapping points to the surface of a sphere, and quasiperiodic tiling.


0

It sounds like you are interested in the pairwise differences of randomly observed values in a particular sequence, as in the case of modeling growth or trend. There are a number of ways to do so in time series analyses. A very basic approach is just a simple linear model regressing the sequence values upon their index values. In the first case, your linear model would give you a singular regression coefficient of 1 (predictive R2=1). In the later case, this would be a coefficient of 1.51 and an R2 of 0.78.


I don't know if I understood clearly enough what you meant, but I simply need to understand how 'evenly' something is distributed in a distribution. Variance is not that useful given that one can get the same variance and mean for two very differently distributed distributions.
Ketan

@Ketan, you changed your question substantially. Either way, I am not clear what that might be. In any regard, it's clear that my answer is not addressing what you are interested in based on the most recent version of your question.
AdamO

For a given set of possible values, I want to basically model how 'rare' or 'peculiar' it would be have a particular value from that set of values. In lack of any other options, I'm trying to measure how evenly or uniformly distributed the values are. The more even the distribution, the less chance there is to have any peculiar value from the set. Whereas, if for example all the data lies in the extremes of a distribution, any value can be something worthy to be considered as 'peculiar'. I hope you get it?
Ketan

No, sorry still not following. Just to verify, are you familiar with the formal definition of "uniformly" distributed data? A "normal" distribution, for example, is not uniform. Both are symmetric. You seem to allude to whether symmetry might be of interest, but then you seem to say that the probability of sampling "rare" values is of interest. For instance, a Cauchy distribution is symmetric, but is known to be an example of a distribution that will generate outliers as a probability model.
AdamO

Let me put it this way: Each set is simply the set of all values of a particular attribute in a dataset. I basically want to quantify each attribute by how 'stable' its values are, for which I've been using simple variance till now. But last night, I realized that exactly same variance and mean is possible for 2 attributes, even though one could be 'even', and other having most of the values in 2 extremes. Hence now I want an additional measure to measure if the values can be found evenly, or do they reside more in the extremes.
Ketan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.