สร้างน้ำหนักที่กระจายอย่างสม่ำเสมอซึ่งรวมเป็นเอกภาพหรือไม่?


14

เป็นเรื่องปกติที่จะใช้ตุ้มน้ำหนักในการใช้งานเช่นการสร้างแบบจำลองการผสมและการรวมฟังก์ชั่นพื้นฐานเป็นเส้นตรง น้ำหนักwiมักจะต้องเชื่อฟังwi 0 และ 1 ฉันต้องการสุ่มเลือกเวกเตอร์น้ำหนักจากการกระจายเวกเตอร์ดังกล่าวอย่างสม่ำเสมอiwi=1w=(w1,w2,)

อาจเป็นการดึงดูดให้ใช้โดยที่ U (0, 1) อย่างไรก็ตามตามที่กล่าวไว้ในความคิดเห็นด้านล่างการกระจายของ\ mathbf {w }ไม่เหมือนกันwi=ωijωjωiw

อย่างไรก็ตามเนื่องจากข้อ จำกัดiwi=1ดูเหมือนว่ามิติของปัญหาคือn1และควรจะเลือกwโดยเลือกพารามิเตอร์n1ตาม การกระจายและการคำนวณ\ mathbf {w} ที่สอดคล้องกันwจากพารามิเตอร์เหล่านั้น (เพราะเมื่อมีการระบุน้ำหนักn1น้ำหนักที่เหลือจะถูกกำหนดอย่างสมบูรณ์)

ปัญหาดูเหมือนจะคล้ายกับปัญหาการเลือกจุดทรงกลม (แต่แทนที่จะเลือก 3 เวกเตอร์ที่ norm เป็นเอกภาพฉันต้องการเลือก -vector ซึ่ง norm เป็นเอกภาพ) n 12n1

ขอบคุณ!


3
วิธีการของคุณไม่ได้สร้างเวกเตอร์ที่กระจายอย่างสม่ำเสมอบน Simplex เมื่อต้องการทำสิ่งที่คุณต้องการอย่างถูกต้องวิธีที่ตรงไปตรงมาที่สุดคือการสร้างตัวแปรสุ่ม iidจากนั้นปรับมาตรฐานให้เป็นปกติด้วยผลรวม คุณสามารถลองทำได้โดยหาวิธีอื่นเพื่อวาดเฉพาะตัวแปรโดยตรง แต่ฉันมีข้อสงสัยเกี่ยวกับการแลกเปลี่ยนประสิทธิภาพตั้งแต่ตัวแปรสามารถสร้างได้อย่างมีประสิทธิภาพมากจากตัวแปร E x p ( 1 ) n - 1 E x p ( 1 ) U ( 0 , 1 )nExp(1)n1Exp(1)U(0,1)
พระคาร์ดินัล

คำตอบ:


22

เลือกอย่างสม่ำเสมอ (โดยการเครื่องแบบจำนวนจริงในช่วงเวลา ) เรียงสัมประสิทธิ์เพื่อให้{n-1} ชุด n - 1 [ 0 , 1 ] 0 x 1x n - 1x[0,1]n1n1[0,1]0x1xn1

w=(x1,x2x1,x3x2,,xn1xn2,1xn1).

เนื่องจากเราสามารถกู้คืนการเรียงลำดับด้วยวิธีผลรวมบางส่วนของการแมปคือถึง 1; โดยเฉพาะอย่างยิ่งภาพของมันคือเริมใน n เพราะ (a) การแลกเปลี่ยนแต่ละครั้งในการเรียงลำดับเป็นการแปลงเชิงเส้น (b) สูตรก่อนหน้าคือเส้นตรงและ (c) การแปลงเชิงเส้นรักษาความสม่ำเสมอของการแจกแจงความสม่ำเสมอของแสดงถึงความสม่ำเสมอของบน simplex โดยเฉพาะอย่างยิ่งโปรดทราบว่าระยะขอบของไม่จำเป็นต้องเป็นอิสระw ฉันxw ( n - 1 ) ! n - 1 R n x w n - 1 wxiwixw(n1)!n1Rnxw n1w

พล็อตจุด 3D

จุดนี้ 3D พล็อตการแสดงผลของปี 2000 การทำซ้ำของขั้นตอนวิธีนี้สำหรับ 3 คะแนนจะถูก จำกัด อยู่ที่ซิมเพล็กซ์และมีการกระจายอย่างสม่ำเสมอทั่วกันn=3


เพราะเวลาการดำเนินการของขั้นตอนวิธีนี้คือก็จะไม่มีประสิทธิภาพขนาดใหญ่nแต่นี่จะตอบคำถาม! วิธีที่ดีกว่า (โดยทั่วไป) เพื่อสร้างค่าที่กระจายอย่างสม่ำเสมอบน -simplexคือการวาด realsในช่วงเวลา , คำนวณn n - 1 n ( x 1 , , x n ) [ 0 , 1 ]O(nlog(n))O(n)nn1n(x1,,xn)[0,1]

yi=log(xi)

(ซึ่งทำให้แต่ละบวกด้วยความน่าจะเป็นซึ่งผลรวมของพวกเขาเกือบจะไม่ใช่ศูนย์) และตั้งค่า 1yi1

w=(y1,y2,,yn)/(y1+y2++yn).

สิ่งนี้ได้ผลเพราะแต่ละมีการซึ่งหมายถึงมีการแจกแจงDirichlet - และนั่นคือรูปแบบเดียวกัน Γ ( 1 ) w ( 1 , 1 , 1 )yiΓ(1)w(1,1,1)

[พล็อตจุด 3 มิติ 2]


1
@Chris ถ้าโดย "Dir (1)" คุณหมายถึงการแจกแจง Dirichlet พร้อมพารามิเตอร์ =คำตอบคือใช่ ( 1 , 1 , , 1 )(α1,,αn)(1,1,,1)
whuber

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

1
ชัดเจนมากขึ้น: สำหรับการแจกแจงที่มีความหนาแน่นความหนาแน่นของสถิติการสั่งซื้อของตัวอย่าง iid ของขนาดคือ<x_n)} ในกรณีของการแจกแจงสถิติการสั่งซื้อจะเหมือนกันในโพลีท็อป เมื่อนำมาจากจุดนี้การแปลงสภาพที่เหลืออยู่จะกำหนดขึ้นและผลลัพธ์จะตามมา n n ! f ( x 1 ) f ( x n ) 1 ( x 1 < x 2 < < x n ) f = 1 [ 0 , 1 ] ( x )fnn!f(x1)f(xn)1(x1<x2<<xn)f=1[0,1](x)
พระคาร์ดินัล

1
@cardinal นั้นเป็นจุดที่น่าสนใจ แต่ฉันไม่คิดว่ามันจะสำคัญแม้ว่าคุณจะพูดถูกว่ารายละเอียดเพิ่มเติมสามารถช่วยได้ สัญญาแลกเปลี่ยน (อันที่จริงคือการสะท้อนการแปลงเชิงเส้นของqua ) ไม่ได้สุ่ม: มันถูกกำหนดไว้ล่วงหน้า ผลก็คือถูกแกะสลักเป็นภูมิภาคที่หนึ่งแตกต่างจากที่อื่น ๆ และมี bijection เลียนแบบกำหนดไว้ล่วงหน้าระหว่างแต่ละภูมิภาคและหนึ่งที่โดดเด่น ความจริงเพิ่มเติมเพียงอย่างเดียวที่เราต้องการก็คือการกระจายตัวแบบสม่ำเสมอในภูมิภาคนั้นมีความเหมือนกันในส่วนย่อยที่วัดได้ของมันซึ่งเป็นเรื่องเล็กน้อย ( n - 1 ) !In1=[0,1]n1(n1)!
whuber

2
@whuber: คำพูดที่น่าสนใจ ขอบคุณสำหรับการแบ่งปัน! ฉันมักจะชื่นชมความคิดที่ลึกซึ้งของคุณในสิ่งต่าง ๆ เกี่ยวกับความคิดเห็นก่อนหน้าของฉันเกี่ยวกับ "การแปลงเชิงเส้นแบบสุ่ม" จุดของฉันก็คือว่าอย่างน้อยผ่านการเปลี่ยนแปลงที่ใช้ขึ้นอยู่กับจุดตัวอย่าง\วิธีคิดอีกอย่างคือมันมีฟังก์ชั่นคงที่ที่กำหนดไว้ล่วงหน้าเช่นนั้นแต่ฉันจะไม่เรียกฟังก์ชันนั้นเป็นเส้นตรงแม้ว่ามันจะเป็นเส้นตรงบนเซตย่อยที่แบ่งพาร์ติชัน -cube :)xωT:Rn1Rn1w=T(x)(n1)
สำคัญ

1
    zz <- c(0, log(-log(runif(n-1))))
    ezz <- exp(zz)
    w <- ezz/sum(ezz)

รายการแรกถูกกำหนดเป็นศูนย์เพื่อระบุตัวตน คุณจะเห็นว่าทำในรูปแบบโลจิสติก multinomial ของหลักสูตรในรูปแบบพหุนามคุณจะยังมีตัวแปรภายใต้เลขยกกำลังที่มากกว่าแค่การสุ่มzzs การกระจายตัวของzzs คือการกระจายมูลค่ามาก; คุณต้องใช้สิ่งนี้เพื่อให้แน่ใจว่าน้ำหนักที่ได้เป็น iid ฉันเริ่มใส่rnormals ตรงนั้น แต่ก็มีความรู้สึกว่ามันไม่ได้ผล


ไม่ได้ผล คุณลองดูฮิสโตแกรมหรือไม่?
พระคาร์ดินัล

4
คำตอบของคุณเกือบจะถูกต้องแล้ว หากคุณสร้าง iidและหารด้วยผลรวมคุณจะได้การแจกแจงที่ถูกต้อง ดูการกระจาย Dirichletสำหรับรายละเอียดเพิ่มเติมแม้ว่ามันจะไม่ได้หารือเรื่องนี้อย่างชัดเจน nExp(1)
พระคาร์ดินัล

1
ด้วยคำศัพท์ที่คุณใช้คุณจะสับสนเล็กน้อย
พระคาร์ดินัล

2
ที่จริงแล้วลิงก์ Wiki จะพูดถึงสิ่งนี้ (พอใช้) อย่างชัดเจน ดูย่อหน้าที่สองภายใต้หัวข้อSupport
พระคาร์ดินัล

1
ลักษณะนี้มีทั้ง จำกัด และกว้างเกินไป มันกว้างเกินไปในการที่การกระจายที่เกิดจากต้องเป็น "เครื่องแบบ" บนเริมใน n มันมีข้อ จำกัด มากเกินไปในการที่คำถามถูกเขียนโดยทั่วไปมากพอที่จะอนุญาตให้เป็นฟังก์ชันของการกระจาย variate ซึ่งจะสันนิษฐานได้ แต่ไม่จำเป็นต้องประกอบด้วยอิสระ (และอาจจะเป็น iid) ตัวแปร wn1Rnwn1n1
whuber

0

วิธีแก้ปัญหานั้นชัดเจน รหัส MathLab ต่อไปนี้ให้คำตอบสำหรับน้ำหนัก 3 ตัว

function [  ] = TESTGEN( )
SZ  = 1000;
V  = zeros (1, 3);
VS = zeros (SZ, 3);
for NIT=1:SZ   
   V(1) = rand (1,1);     % uniform generation on the range 0..1
   V(2) = rand (1,1) * (1 - V(1));
   V(3) = 1 - V(1) - V(2);  
   PERM = randperm (3);    % random permutation of values 1,2,3
   for NID=1:3
         VS (NIT, NID) = V (PERM(NID));
    end
end 
figure;
scatter3 (VS(:, 1), VS(:,2), VS (:,3));
end

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


1
ระยะขอบของคุณไม่มีการกระจายที่ถูกต้อง ตัดสินจากบทความ Wikipedia เกี่ยวกับการแจกแจง Dirichlet (ส่วนการสร้างตัวเลขสุ่มซึ่งมีอัลกอริธึมที่คุณเข้ารหัส) คุณควรใช้การกระจายเบต้า (1,2) สำหรับ V (1) ไม่ใช่เครื่องแบบ [0,1] การกระจาย
soakley

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