คำถามติดแท็ก bootstrap

bootstrap เป็นวิธี resampling เพื่อประเมินการกระจายตัวตัวอย่างของสถิติ

2
เราสามารถใช้ตัวอย่างบูตสแตรปที่มีขนาดเล็กกว่าตัวอย่างดั้งเดิมได้หรือไม่?
ฉันต้องการใช้ bootstrapping เพื่อประเมินช่วงความมั่นใจสำหรับพารามิเตอร์โดยประมาณจากชุดข้อมูลพาเนลที่มี บริษัท = N 250 บริษัท และ T = 50 เดือน การประมาณค่าพารามิเตอร์มีราคาแพง (ไม่กี่วันของการคำนวณ) เนื่องจากการใช้ตัวกรองคาลมานและการประเมินแบบไม่เชิงเส้นที่ซับซ้อน ดังนั้นการวาด (แทนที่) B (เป็นร้อยหรือมากกว่า) ตัวอย่างของ M = N = 250 บริษัท จากตัวอย่างดั้งเดิมและการประมาณค่าพารามิเตอร์ B ครั้งนั้นเป็นไปไม่ได้ที่คำนวณได้แม้ว่านี่จะเป็นวิธีพื้นฐานสำหรับการบูต ดังนั้นฉันกำลังพิจารณาใช้ M ขนาดเล็กกว่า (เช่น 10) สำหรับตัวอย่าง bootstrap (แทนที่จะเป็นขนาดเต็มของ N = 250) วาดแบบสุ่มด้วยการแทนที่จาก บริษัท ดั้งเดิมจากนั้นปรับขนาดเมทริกซ์ความแปรปรวนร่วมประมาณ bootstrap ของพารามิเตอร์โมเดลด้วย (ในตัวอย่างข้างต้นด้วย 1/25) เพื่อคำนวณเมทริกซ์ความแปรปรวนร่วมสำหรับพารามิเตอร์ตัวแบบที่ประมาณไว้ในตัวอย่างเต็ม1ยังไม่มีข้อความM1NM\frac{1}{\frac{N}{M}} ช่วงความเชื่อมั่นที่ต้องการนั้นสามารถประมาณขึ้นอยู่กับสมมติฐานของภาวะปกติหรือเชิงประจักษ์สำหรับตัวอย่างขนาดเล็กโดยใช้กระบวนการที่คล้ายกัน …

4
Bootstrap, Monte Carlo
ฉันถูกตั้งคำถามต่อไปนี้เป็นส่วนหนึ่งของการบ้าน: ออกแบบและดำเนินการศึกษาแบบจำลองเพื่อตรวจสอบประสิทธิภาพของ bootstrap เพื่อให้ได้ช่วงความเชื่อมั่น 95% จากค่าเฉลี่ยของตัวอย่างข้อมูลที่ไม่แปรเปลี่ยน การติดตั้งของคุณอาจอยู่ใน R หรือ SAS แง่มุมของประสิทธิภาพที่คุณอาจต้องการดูคือช่วงความมั่นใจช่วงเวลา (เช่นสัดส่วนช่วงเวลาความมั่นใจมีค่าเฉลี่ยจริง) และการเปลี่ยนแปลงของมอนติคาร์โล (กล่าวคือขีด จำกัด ความเชื่อมั่นสูงสุดและล่างแตกต่างกันระหว่างการจำลอง) ไม่มีใครรู้วิธีที่จะไปเกี่ยวกับแง่มุมการเปลี่ยนแปลงของ Monte Carlo นี้? ฉันไม่สามารถแม้แต่จะหาอัลกอริทึมหรืออะไรก็ได้ มันจะทำอย่างไรกับการรวม Monte Carlo? ขอบคุณ!

4
Bootstrap กับ Monte Carlo การประมาณข้อผิดพลาด
ฉันอ่านบทความการเผยแพร่ข้อผิดพลาดโดยวิธีมอนติคาร์โลในการคำนวณทางธรณีวิทยาแอนเดอร์สัน (1976)และมีบางสิ่งที่ฉันไม่เข้าใจ พิจารณาข้อมูลที่วัดได้และโปรแกรมที่ประมวลผลและคืนค่าที่กำหนด ในบทความโปรแกรมนี้ใช้เพื่อให้ได้ค่าที่ดีที่สุดก่อนโดยใช้วิธีการของข้อมูล (เช่น: ){ A , B , C }{ A ± σA, B ± σB, C± σค}{A±σA,B±σB,C±σC}\{A\pm\sigma_A, B\pm\sigma_B, C\pm\sigma_C\}{ A , B , C}{A,B,C}\{A, B, C\} จากนั้นผู้เขียนใช้วิธีมอนติคาร์โลเพื่อกำหนดความไม่แน่นอนให้กับค่าที่ดีที่สุดนี้โดยการเปลี่ยนแปลงพารามิเตอร์อินพุตภายในขอบเขตความไม่แน่นอน (กำหนดโดยการแจกแจงแบบเกาส์ด้วยวิธีการและค่าเบี่ยงเบนมาตรฐาน ) ก่อนป้อนเข้าโปรแกรม นี่คือตัวอย่างในรูปด้านล่าง:{ σ A , σ B , σ C }{ A , B , C}{A,B,C}\{A, B, C\}{ …

1
ทางเลือกเพื่อบล็อก bootstrap สำหรับอนุกรมเวลาหลายตัวแปร
ขณะนี้ฉันใช้กระบวนการต่อไปนี้ในการทำการบูตอนุกรมเวลาหลายตัวแปรใน R: กำหนดขนาดบล็อก - เรียกใช้ฟังก์ชันb.starในnpแพ็คเกจที่สร้างขนาดบล็อกสำหรับแต่ละชุด เลือกขนาดบล็อกสูงสุด ทำงานtsbootกับซีรีส์ใดก็ได้โดยใช้ขนาดบล็อกที่เลือก ใช้ดัชนีจากเอาต์พุต bootstrap เพื่อสร้างอนุกรมเวลาหลายตัวแปรอีกครั้ง มีคนแนะนำให้ใช้แพคเกจ meboot เป็นทางเลือกแทน block bootstrap แต่เนื่องจากฉันไม่ได้ใช้ชุดข้อมูลทั้งหมดเพื่อเลือกขนาดบล็อกฉันไม่แน่ใจว่าจะรักษาความสัมพันธ์ระหว่างชุดข้อมูลอย่างไรถ้าฉันใช้ดัชนีที่สร้างขึ้นโดยใช้mebootบน หนึ่งชุด หากใครมีประสบการณ์กับ meboot ในการตั้งค่าหลายตัวแปรฉันจะขอบคุณคำแนะนำในกระบวนการอย่างมาก

1
กำลังคำนวณช่วงความมั่นใจสำหรับโหมดหรือไม่
ฉันกำลังมองหาข้อมูลอ้างอิงเกี่ยวกับการคำนวณช่วงความมั่นใจสำหรับโหมด (โดยทั่วไป) Bootstrap อาจเป็นตัวเลือกอันดับแรกตามธรรมชาติ แต่ตามที่กล่าวถึงโดย Romano (1988) bootstrap มาตรฐานจะล้มเหลวสำหรับโหมดและมันไม่ได้ให้วิธีแก้ปัญหาง่ายๆ มีอะไรเปลี่ยนแปลงไปบ้างจากบทความนี้? วิธีที่ดีที่สุดในการคำนวณช่วงความมั่นใจสำหรับโหมดคืออะไร วิธีบูตสแตรปที่ดีที่สุดคืออะไร? คุณสามารถให้การอ้างอิงที่เกี่ยวข้องใด ๆ Romano, JP (1988) ทำการบูตโหมด พงศาวดารของสถาบันคณิตศาสตร์สถิติ 40 (3), 565-586

1
bootstrap p-values ​​ที่ไม่ใช่พารามิเตอร์เทียบกับช่วงความมั่นใจ
บริบท มันค่อนข้างคล้ายกับคำถามนี้แต่ฉันไม่คิดว่ามันจะซ้ำกันแน่นอน เมื่อคุณมองหาคำแนะนำเกี่ยวกับวิธีการทดสอบสมมติฐานบู๊ตสแตรปมันมักจะกล่าวว่ามันเป็นเรื่องปกติที่จะใช้การแจกแจงเชิงประจักษ์สำหรับช่วงความเชื่อมั่น แต่คุณต้องบูตสแตรปจากการกระจายภายใต้สมมติฐานว่างเพื่อให้ได้ ราคา. เป็นตัวอย่างดูคำตอบที่ยอมรับสำหรับคำถามนี้ การค้นหาทั่วไปบนอินเทอร์เน็ตส่วนใหญ่ดูเหมือนจะเป็นคำตอบที่คล้ายกัน เหตุผลที่ไม่ใช้ค่า p ตามการกระจายเชิงประจักษ์คือส่วนใหญ่เราไม่มีค่าคงที่การแปล ตัวอย่าง ขอยกตัวอย่างสั้น ๆ เรามีเหรียญและเราต้องการทดสอบด้านเดียวเพื่อดูว่าความถี่ของหัวใหญ่กว่า 0.5 หรือไม่ เราทำการทดลองและรับหัว จริง p-value สำหรับการทดสอบนี้จะเป็น0.058n = 20n=20n = 20k = 14k=14k = 14p = 0.058พี=0.058p = 0.058 ในทางกลับกันถ้าเราบูต 14 จาก 20 หัวของเราเราได้อย่างมีประสิทธิภาพตัวอย่างจากการกระจายทวินามกับและ\ การเลื่อนการกระจายตัวนี้โดยการลบ 0.2 เราจะได้ผลลัพธ์ที่มีนัยสำคัญแทบเมื่อทดสอบค่าที่สังเกตได้ของเราที่ 0.7 กับการกระจายเชิงประจักษ์ที่ได้รับn = 20n=20n = 20p = 1420= 0.7พี=1420=0.7p = …

1
การบูตสแตรปเหมาะสมกับข้อมูลต่อเนื่องนี้หรือไม่
ฉันเป็นมือใหม่ที่สมบูรณ์ :) ฉันกำลังศึกษาขนาดตัวอย่าง 10,000 คนจากประชากรประมาณ 745,000 คน แต่ละตัวอย่างแสดงถึง "ความคล้ายคลึงกันของเปอร์เซ็นต์" กลุ่มตัวอย่างส่วนใหญ่อยู่ที่ประมาณ 97% -98% แต่มีไม่กี่คนที่อยู่ระหว่าง 60% ถึง 90% นั่นคือการกระจายตัวค่อนข้างเบ้ ประมาณ 0.6% ของผลลัพธ์เป็น 0% แต่สิ่งเหล่านี้จะได้รับการแยกจากตัวอย่าง ค่าเฉลี่ยของตัวอย่าง 10,000 ตัวอย่างทั้งหมดคือ 97.7% และใน Excel StdDev คือ 3.20 ฉันเข้าใจว่า StdDev ไม่สามารถใช้งานได้ที่นี่เพราะผลลัพธ์ไม่ได้กระจายตามปกติ (และเนื่องจาก +3.20 จะทำให้คุณสูงกว่า 100%!) คำถามของฉันคือ: การบูตสแตรป (แนวคิดใหม่สำหรับฉัน) เหมาะสมหรือไม่ ฉันกำลังทำการบูตอย่างถูกต้องหรือไม่ :) ขนาดตัวอย่างที่เพียงพอคืออะไร สิ่งที่ฉันทำคือการสุ่มตัวอย่างใหม่ (แทนที่) ผลลัพธ์ 10,000 รายการของฉันและคำนวณค่าเฉลี่ยใหม่ …

1
ทำความเข้าใจกับเอาต์พุตของ bootstrap ที่ดำเนินการใน R (tsboot, MannKendall)
ฉันมีคำถามเกี่ยวกับการแปลความหมายของการโทร tsboot ใน R ฉันตรวจสอบเอกสารของทั้ง Kendall และแพคเกจสำหรับบูต แต่ฉันก็ไม่ฉลาดกว่าก่อน เมื่อฉันเรียกใช้ bootstrap โดยใช้ตัวอย่างเช่นในแพคเกจ Kendall ที่สถิติการทดสอบเป็นเอกภาพของ Kendall: library(Kendall) # Annual precipitation entire Great Lakes # The Mann-Kendall trend test confirms the upward trend. data(PrecipGL) MannKendall(PrecipGL) ซึ่งยืนยันแนวโน้มขาขึ้น: tau = 0.265, 2-sided pvalue =0.00029206 ตัวอย่างจากนั้นใช้บล็อก bootstrap ต่อไป: # #Use block bootstrap library(boot) data(PrecipGL) MKtau<-function(z) MannKendall(z)$tau …
11 r  bootstrap 

2
ทำไมข้อมูลควรถูกสุ่มใหม่ภายใต้สมมติฐานว่างในการทดสอบสมมติฐานบูตสแตรป?
การใช้วิธีการ bootstrap ที่ตรงไปตรงมาเพื่อทดสอบสมมติฐานคือการประมาณช่วงความมั่นใจของสถิติการทดสอบ โดยการคำนวณซ้ำ ๆ บนตัวอย่าง bootstrapped (ปล่อยให้สถิติตัวอย่างจาก bootstrap เรียกว่า ) เราปฏิเสธถ้าสมมติฐานพารามิเตอร์ (ซึ่งมักจะมีค่าเท่ากับ 0) โกหกนอกช่วงความเชื่อมั่นของtheta} θ ^ θ * H0θ0 ^ θ *θ^θ^\hat{\theta}θ^θ^\hat{\theta}θ* * * *^θ* * * *^\hat{\theta^*}H0H0H_0θ0θ0\theta_0θ* * * *^θ* * * *^\hat{\theta^*} ฉันอ่านแล้วว่าวิธีนี้ไม่มีพลังงานบ้าง ในบทความโดยHall P. และ Wilson SR "สองแนวทางสำหรับการทดสอบสมมติฐาน Bootstrap" (1992)มันถูกเขียนเป็นแนวทางแรกว่าเราควร resampleไม่ใช่\ และนี่คือส่วนที่ฉันไม่เข้าใจ^ θ * -θ0θ* * …

1
ทำไมการทิ้งส่วนที่เหลือจากรูปแบบเอฟเฟกต์ผสมจึงให้ช่วงความมั่นใจในการต่อต้านอย่างอนุรักษ์นิยม?
ฉันมักจะจัดการกับข้อมูลที่แต่ละคนวัดกันหลายครั้งในแต่ละเงื่อนไขตั้งแต่ 2 ข้อขึ้นไป เมื่อไม่นานมานี้ฉันได้เล่นกับการสร้างแบบผสมเอฟเฟกต์เพื่อประเมินหลักฐานความแตกต่างระหว่างเงื่อนไขการสร้างแบบจำลองindividualเป็นเอฟเฟกต์แบบสุ่ม เพื่อให้เห็นภาพความไม่แน่นอนเกี่ยวกับการคาดการณ์จากแบบจำลองดังกล่าวฉันได้ใช้ bootstrapping ซึ่งในแต่ละการวนซ้ำของ bootstrap ทั้งบุคคลและการสังเกต - ภายใน - เงื่อนไข - ภายใน - บุคคล - ตัวอย่างจะถูกแทนที่ด้วยและแบบจำลองเอฟเฟกต์ใหม่ ได้รับ วิธีนี้ใช้งานได้ดีสำหรับข้อมูลที่ถือว่าข้อผิดพลาด gaussian แต่เมื่อข้อมูลเป็นแบบทวินามการบูตสแตรปอาจใช้เวลานานมากเนื่องจากการวนซ้ำแต่ละครั้งจะต้องคำนวณรูปแบบเอฟเฟกต์ผสมแบบทวินามที่คำนวณได้ค่อนข้างเข้มข้น ความคิดที่ฉันมีคือฉันอาจใช้ส่วนที่เหลือจากแบบจำลองเดิมแล้วใช้ส่วนที่เหลือเหล่านี้แทนข้อมูลดิบใน bootstrapping ซึ่งจะอนุญาตให้ฉันคำนวณรูปแบบเอฟเฟกต์แบบ gaussian ในการวนซ้ำของ bootstrap แต่ละครั้ง การเพิ่มการทำนายดั้งเดิมจากแบบจำลองทวินามของข้อมูลดิบไปยังการคาดการณ์ bootstrapped จากส่วนที่เหลือให้ผลตอบแทน 95% CI สำหรับการคาดการณ์ดั้งเดิม อย่างไรก็ตามฉันเพิ่งเขียนโค้ดการประเมินอย่างง่ายของวิธีการนี้การสร้างแบบจำลองไม่แตกต่างกันระหว่างสองเงื่อนไขและการคำนวณสัดส่วนของช่วงเวลาที่ความมั่นใจ 95% ล้มเหลวในการรวมศูนย์และฉันพบว่าขั้นตอนการบูตสต็อก (ไม่รวมศูนย์มากกว่า 5% ของเวลา) ยิ่งไปกว่านั้นฉันเขียนโค้ด (ลิงค์เดียวกันก่อนหน้านี้) การประเมินที่คล้ายกันของวิธีการนี้ที่นำไปใช้กับข้อมูลที่เป็นเกาส์เดิมและได้รับ CIs ต่อต้านอนุรักษ์นิยมในทำนองเดียวกัน ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนั้น?

1
ความน่าจะเป็นที่ครอบคลุมของช่วงความมั่นใจบูตพื้นฐาน
ฉันมีคำถามต่อไปนี้สำหรับหลักสูตรที่ฉันกำลังทำอยู่: ดำเนินการศึกษา Monte Carlo เพื่อประเมินความน่าจะเป็นที่ครอบคลุมของช่วงความมั่นใจบูตมาตรฐานและช่วงความเชื่อมั่นเริ่มต้นพื้นฐาน ตัวอย่างจากประชากรปกติและตรวจสอบอัตราความครอบคลุมเชิงประจักษ์สำหรับค่าเฉลี่ยตัวอย่าง ความน่าจะเป็นของการครอบคลุมสำหรับ bootstrap CI มาตรฐานทั่วไปนั้นง่าย: n = 1000; alpha = c(0.025, 0.975); x = rnorm(n, 0, 1); mu = mean(x); sqrt.n = sqrt(n); LNorm = numeric(B); UNorm = numeric(B); for(j in 1:B) { smpl = x[sample(1:n, size = n, replace = TRUE)]; xbar = mean(smpl); …

1
วิธีการ Bootstrap ทำไม resample“ with replace” แทนที่จะเป็น subsampling แบบสุ่ม
วิธีบูตสแตรปได้เห็นการแพร่กระจายที่ยอดเยี่ยมในปีที่ผ่านมาฉันยังใช้มันมากโดยเฉพาะอย่างยิ่งเพราะเหตุผลที่อยู่เบื้องหลังนั้นค่อนข้างใช้งานง่าย แต่นั่นเป็นสิ่งหนึ่งที่ฉันไม่เข้าใจ เหตุใด Efron จึงเลือกที่จะทำการ resample ด้วยการแทนที่แทนการ subsampling เพียงโดยการสุ่มรวมหรือไม่รวมการสังเกตเดี่ยว ฉันคิดว่าการสุ่มตัวอย่างแบบสุ่มมีคุณภาพดีมากอย่างหนึ่งซึ่งเป็นตัวแทนของสถานการณ์ในชีวิตจริงที่การสังเกตการณ์ที่เรามีในการศึกษาของเราเป็นส่วนย่อยของประชากรสมมุติ ฉันไม่เห็นประโยชน์ของการสังเกตหลายครั้งระหว่างการสุ่มใหม่ ในบริบทจริงไม่มีการสังเกตใดที่คล้ายกันโดยเฉพาะอย่างยิ่งสำหรับสถานการณ์หลายตัวแปรที่ซับซ้อน

2
ข้อดีและข้อเสียของการ bootstrapping
ฉันเพิ่งได้เรียนรู้เกี่ยวกับแนวคิดของการเริ่มระบบและคำถามไร้เดียงสามาถึงใจ: ถ้าเราสามารถสร้างตัวอย่าง bootstrap จำนวนมากของข้อมูลของเราทำไมต้องรำคาญที่จะได้รับข้อมูล "ของจริง" เพิ่มเติมหรือไม่ ฉันคิดว่าฉันมีคำอธิบายโปรดบอกฉันว่าฉันถูกต้องหรือไม่: ฉันคิดว่ากระบวนการ bootstrapping ช่วยลดความแปรปรวน แต่ถ้าชุดข้อมูลดั้งเดิมของฉันคือ BIASED กว่าที่ฉันติดอยู่กับความแปรปรวนต่ำและอคติสูง ฉันกำลังพูด.

1
สองวิธีของการทดสอบนัยสำคัญ bootstrap
การใช้ bootstrap ฉันคำนวณค่า p ของการทดสอบนัยสำคัญโดยใช้สองวิธี: resampling ภายใต้สมมติฐานว่างและนับผลลัพธ์อย่างน้อยที่สุดเท่าที่ผลลัพธ์มาจากข้อมูลต้นฉบับ การ resampling ใหม่ภายใต้สมมติฐานทางเลือกและการนับผลลัพธ์อย่างน้อยที่สุดห่างจากผลลัพธ์ดั้งเดิมเป็นค่าที่สอดคล้องกับสมมติฐานว่าง ผมเชื่อว่า 1 เซนต์วิธีการที่ถูกต้องทั้งหมดเป็นไปตามความหมายของค่าเอพี ฉันไม่ค่อยแน่ใจเกี่ยวกับวินาที แต่มักจะให้ผลลัพธ์ที่คล้ายกันมากและเตือนให้ฉันทดสอบ Wald ฉันถูกไหม? วิธีการทั้งสองถูกต้องหรือไม่ พวกเขาเหมือนกัน (สำหรับตัวอย่างขนาดใหญ่) หรือไม่ ตัวอย่างสำหรับทั้งสองวิธี (แก้ไขหลังจากคำถามของ DWIN และคำตอบของ Erik): ตัวอย่างที่ 1 ลองสร้างการทดสอบบูตสแตรปเหมือนกับการทดสอบ T สองตัวอย่าง วิธีที่ 1 จะสุ่มตัวอย่างจากตัวอย่างหนึ่ง (ได้จากการรวมสองต้นฉบับ) วิธีที่ 2 จะสุ่มตัวอย่างจากตัวอย่างทั้งสองอย่างอิสระ ตัวอย่างที่ 2 เรามาสร้าง bootstrap test ของสหสัมพันธ์ระหว่างx₁…xₐและy₁…yₐ วิธีที่ 1 จะไม่ถือว่ามีความสัมพันธ์และการสุ่มตัวอย่างใหม่อนุญาตสำหรับคู่ (xₑ, yₔ) โดยที่≠ …

4
ทำไมการทดสอบสมมติฐานเกี่ยวกับชุดข้อมูลที่ resampled ปฏิเสธค่า null บ่อยเกินไป?
tl; dr: เริ่มต้นด้วยชุดข้อมูลที่สร้างขึ้นภายใต้ null ฉัน resampled กรณีที่มีการเปลี่ยนและดำเนินการทดสอบสมมติฐานในแต่ละชุดข้อมูล resampled การทดสอบสมมติฐานเหล่านี้ปฏิเสธค่าว่างมากกว่า 5% ของเวลา ในด้านล่างการจำลองที่ง่ายมากฉันสร้างชุดข้อมูลด้วยและฉันพอดีกับ OLS แบบง่าย ๆ จากนั้นสำหรับแต่ละชุดข้อมูลฉันสร้างชุดข้อมูลใหม่ 1,000 ชุดโดยการสุ่มแถวใหม่ของชุดข้อมูลเดิมพร้อมการแทนที่ (อัลกอริทึมที่อธิบายไว้โดยเฉพาะในข้อความคลาสสิกของ Davison & Hinkley ว่าเหมาะสมสำหรับการถดถอยเชิงเส้น) สำหรับแต่ละอันฉันพอดีกับ OLS รุ่นเดียวกัน ในที่สุดประมาณ 16% ของการทดสอบสมมติฐานในตัวอย่าง bootstrap ปฏิเสธ nullในขณะที่เราควรได้รับ 5% (ตามที่เราทำในชุดข้อมูลดั้งเดิม)X∼N(0,1)⨿Y∼N(0,1)X∼N(0,1)⨿Y∼N(0,1)X \sim N(0,1) \amalg Y \sim N(0,1) ฉันสงสัยว่ามันมีบางอย่างเกี่ยวกับการสังเกตซ้ำ ๆ ทำให้เกิดความสัมพันธ์ที่สูงเกินจริงดังนั้นในการเปรียบเทียบฉันลองวิธีอื่นสองวิธีในรหัสด้านล่าง (แสดงความคิดเห็น) ในวิธีที่ 2 ฉันแก้ไขจากนั้นแทนที่ด้วยส่วนที่เหลือ resampled จากโมเดล OLS …

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