Làm thế nào để bạn lấy mẫu ngẫu nhiên mà không cần thay thế trong python?

Khởi chạy và chạy chương trình SAS. Sau đó, xem lại kết quả đầu ra để thuyết phục bản thân rằng mã thực sự đã chọn một mẫu gồm 15 quan sát từ tập dữ liệu gửi thư. Lưu ý rằng sự khác biệt duy nhất giữa mã này và mã SURVEYSELECT trước đó là câu lệnh sampsize = 15 ở đây thay thế cho câu lệnh samprate = 0. 30 tuyên bố ở đó. Bạn có thể muốn thay đổi hạt giống (seed) và kích thước mẫu (sampsize) một vài lần để xem nó ảnh hưởng đến mẫu như thế nào

Phần này tóm tắt các cách bạn đã học để lấy mẫu ngẫu nhiên bằng Python và giới thiệu một cách mới

10. 4. 1. Đánh giá. Lấy mẫu từ Tổng thể trong Bảng

Nếu bạn đang lấy mẫu từ một tập hợp các cá nhân có dữ liệu được trình bày trong các hàng của bảng, thì bạn có thể sử dụng phương pháp Bảng

die.sample(7)
7 để lấy mẫu của bảng. Nghĩa là, bạn có thể sử dụng
die.sample(7)
7 để chọn một mẫu ngẫu nhiên gồm các cá nhân

Theo mặc định,

die.sample(7)
7 rút ngẫu nhiên đồng đều với sự thay thế. Đây là một mô hình tự nhiên cho các thí nghiệm may rủi như gieo xúc xắc

faces = np.arange(1, 7)
die = Table().with_columns('Face', faces)
die

Khuôn mặt123456

Chạy ô bên dưới để mô phỏng 7 lần tung xúc xắc

die.sample(7)

Khuôn mặt5335516

Đôi khi việc lấy mẫu các cá nhân một cách ngẫu nhiên mà không cần thay thế sẽ tự nhiên hơn. Đây được gọi là mẫu ngẫu nhiên đơn giản. Đối số

actors = Table.read_table(path_data + 'actors.csv')
actors
0 cho phép bạn làm điều này

actors = Table.read_table(path_data + 'actors.csv')
actors

Nam diễn viênTổng cộngSố lượng phimTrung bình mỗi phim#1 Tổng doanh thuHarrison Ford4871. 741118. 8Chiến tranh giữa các vì sao. Thần Lực Thức Tỉnh936. 7Samuel L. Jackson4772. 86969. 2 Biệt Đội Báo Thù Tập 623. 4Morgan Freeman4468. 36173. 3 Hiệp sĩ bóng đêm 534. 9Tom Hanks4340. 84498. 7Câu chuyện đồ chơi 3415Robert Downey, Jr. 3947. 35374. 5 Biệt đội báo thù tập 623. 4Eddie Murphy3810. 438100. 3Shrek 2441. 2 Tom Cruise 3587. 23699. 6Chiến tranh thế giới234. 3Johnny Depp3368. 64574. 9 Chiếc Rương Tử Thần 423. 3Michael Caine3351. 55857. 8 Hiệp sĩ bóng đêm 534. 9Scarlett Johansson3341. 23790. 3 Biệt Đội Báo Thù Tập 623. 4

(40 hàng bị bỏ qua)

# Simple random sample of 5 rows
actors.sample(5, with_replacement=False)

Nam diễn viênTổng cộngSố lượng phimTrung bình mỗi phim#1 Tổng doanh thuMorgan Freeman4468. 36173. 3 Hiệp sĩ bóng đêm 534. 9Orlando Bloom2815. 817165. 6 Rương Tử Thần 423. 3 Cameron Diaz 3031. 73489. 2Shrek 2441. 2Michael Caine3351. 55857. 8 Hiệp sĩ bóng đêm 534. 9Leonardo DiCaprio2518. 325100. 7Titanic658. 7

die.sample(7)
7 cung cấp cho bạn toàn bộ mẫu theo thứ tự các hàng được chọn, nên bạn có thể sử dụng các phương pháp Bảng trên bảng được lấy mẫu để trả lời nhiều câu hỏi về mẫu. Ví dụ: bạn có thể tìm thấy số lần xúc xắc xuất hiện sáu điểm hoặc số lượng phim trung bình trong đó các diễn viên được lấy mẫu xuất hiện hoặc liệu một trong hai diễn viên được chỉ định có xuất hiện trong mẫu không. Bạn có thể cần nhiều dòng mã để lấy một số thông tin này

10. 4. 2. Đánh giá. Lấy mẫu từ một quần thể trong một mảng

Nếu bạn đang lấy mẫu từ một tập hợp các cá nhân có dữ liệu được biểu diễn dưới dạng một mảng, bạn có thể sử dụng hàm NumPy

actors = Table.read_table(path_data + 'actors.csv')
actors
2 để

Theo mặc định,

actors = Table.read_table(path_data + 'actors.csv')
actors
2 mẫu ngẫu nhiên có thay thế

# The faces of a die, as an array
faces

array([1, 2, 3, 4, 5, 6])

# 7 rolls of the die
np.random.choice(faces, 7)

array([4, 1, 6, 3, 5, 4, 6])

Đối số

actors = Table.read_table(path_data + 'actors.csv')
actors
4 cho phép bạn lấy một mẫu ngẫu nhiên đơn giản, nghĩa là một mẫu được lấy ngẫu nhiên mà không cần thay thế

# Array of actor names
actor_names = actors.column('Actor')

# Simple random sample of 5 actor names
np.random.choice(actor_names, 5, replace=False)

die.sample(7)
0

Giống như

die.sample(7)
7 đã làm, thì
actors = Table.read_table(path_data + 'actors.csv')
actors
2 cũng cung cấp cho bạn toàn bộ chuỗi các phần tử được lấy mẫu. Bạn có thể sử dụng các phép toán mảng để trả lời nhiều câu hỏi về mẫu. Ví dụ: bạn có thể tìm thấy diễn viên nào là người thứ hai được rút hoặc số lượng mặt của con xúc xắc xuất hiện nhiều lần. Một số câu trả lời có thể cần nhiều dòng mã

10. 4. 3. Lấy mẫu từ phân phối theo phân loại

Đôi khi chúng tôi quan tâm đến một thuộc tính phân loại của các cá nhân được lấy mẫu của chúng tôi. Ví dụ: chúng ta có thể đang xem liệu một đồng xu có mặt ngửa hay mặt ngửa. Hoặc chúng ta có thể quan tâm đến các đảng phái chính trị của các cử tri được chọn ngẫu nhiên

Trong những trường hợp như vậy, chúng tôi thường cần tỷ lệ cử tri được lấy mẫu trong các nhóm khác nhau. Nếu chúng ta có toàn bộ mẫu, chúng ta có thể tính các tỷ lệ này. Hàm

actors = Table.read_table(path_data + 'actors.csv')
actors
7 trong thư viện
actors = Table.read_table(path_data + 'actors.csv')
actors
8 thực hiện công việc đó cho chúng tôi. Nó được thiết kế để lấy mẫu ngẫu nhiên với sự thay thế từ phân phối theo phân loại và trả về tỷ lệ của các phần tử được lấy mẫu trong mỗi danh mục

Hàm

actors = Table.read_table(path_data + 'actors.csv')
actors
7 nhận hai đối số

  • kích thước mẫu

  • sự phân bố của các danh mục trong dân số, dưới dạng một danh sách hoặc mảng tỷ lệ cộng lại thành 1

Nó trả về một mảng chứa phân phối của các danh mục trong một mẫu ngẫu nhiên có kích thước nhất định được lấy từ dân số. Đó là một mảng bao gồm các tỷ lệ mẫu trong tất cả các danh mục khác nhau, theo cùng thứ tự xuất hiện trong phân bố dân số

Ví dụ: giả sử mỗi cây của một loài có xác suất ra hoa đỏ là 25%, xác suất ra hoa màu hồng là 50% và xác suất ra hoa trắng là 25%, bất kể màu hoa của tất cả các cây khác là gì. Bạn có thể sử dụng

actors = Table.read_table(path_data + 'actors.csv')
actors
7 để xem tỷ lệ các màu khác nhau giữa 300 cây thuộc loài

die.sample(7)
1

die.sample(7)
2

Như bạn mong đợi, tỷ lệ trong tổng mẫu là 1

die.sample(7)
3

die.sample(7)
4

Các danh mục trong

# Simple random sample of 5 rows
actors.sample(5, with_replacement=False)
1 theo thứ tự Đỏ, Hồng, Trắng. Thứ tự đó được duy trì bởi
actors = Table.read_table(path_data + 'actors.csv')
actors
7. Nếu bạn chỉ muốn tỷ lệ cây có hoa màu hồng trong mẫu, bạn có thể sử dụng
# Simple random sample of 5 rows
actors.sample(5, with_replacement=False)
3

die.sample(7)
5

die.sample(7)
6

Bạn có thể sử dụng

actors = Table.read_table(path_data + 'actors.csv')
actors
7 và các phép toán mảng để trả lời các câu hỏi chỉ dựa trên tỷ lệ các cá nhân được lấy mẫu trong các danh mục khác nhau. Bạn sẽ không thể trả lời các câu hỏi yêu cầu thông tin chi tiết hơn về mẫu, chẳng hạn như cây nào trong số các cây được lấy mẫu có từng màu khác nhau

Có thể lấy mẫu ngẫu nhiên mà không cần thay thế không?

Khi bạn chọn ngẫu nhiên các bản ghi từ một tập dữ liệu lớn hơn (hoặc một số cơ sở dữ liệu chính), bạn có thể lấy mẫu theo một vài cách khác nhau, bao gồm. lấy mẫu không thay thế, trong đó một tập hợp con của các quan sát được chọn ngẫu nhiên và sau khi một quan sát được chọn, nó không thể được chọn lại .

Lấy mẫu ngẫu nhiên đơn giản không thay thế là gì?

Lấy mẫu ngẫu nhiên đơn giản không thay thế (srswor) cỡ n là thiết kế lấy mẫu xác suất trong đó một số cố định n đơn vị được chọn từ tổng thể gồm N đơn vị mà không thay thế sao cho mọi mẫu có thể gồm n đơn vị đều có xác suất được chọn như nhau