Python lấy mẫu theo tỷ lệ

Khi chúng tôi muốn tiến hành một thử nghiệm trên dân số - ví dụ: toàn bộ dân số của một quốc gia - không phải lúc nào cũng thực tế hoặc thực tế để đưa mọi đối tượng (công dân) vào thử nghiệm

Thay vào đó, chúng tôi dựa vào một mẫu, là một tập hợp con của tổng thể, sau đó đưa ra kết luận về tổng thể dựa trên kết quả của mẫu

Bây giờ, lấy một mẫu từ dân số được gọi là kỹ thuật lấy mẫu và cách lấy mẫu là điều cần thiết cho kết quả

Có rất nhiều kỹ thuật lấy mẫu, nhưng trong hướng dẫn này, chúng ta sẽ xem xét một trong số chúng được gọi là lấy mẫu ngẫu nhiên phân tầng và cách thức hoạt động của nó. Không chần chừ thêm nữa, chúng ta hãy bắt đầu

Lấy mẫu ngẫu nhiên phân tầng là gì?

Trước khi đi vào chi tiết về lấy mẫu ngẫu nhiên phân tầng, chúng ta hãy chia nhỏ thuật ngữ này thành các bit để chúng ta có thể nắm bắt nó tốt hơn. Hãy bắt đầu với phân tầng

Trong bối cảnh lấy mẫu, phân tầng có nghĩa là chia dân số thành các nhóm hoặc tầng nhỏ hơn dựa trên một đặc điểm. Nói cách khác, bạn chia dân số thành các nhóm dựa trên các đặc điểm của chúng

Lấy mẫu ngẫu nhiên đòi hỏi phải chọn ngẫu nhiên các đối tượng (thực thể) từ dân số. Mỗi đối tượng có xác suất được chọn như nhau từ tổng thể để tạo thành một mẫu (tiểu quần thể) của tổng thể

Vì vậy, lấy mẫu ngẫu nhiên phân tầng là một phương pháp lấy mẫu trong đó dân số được tách thành các nhóm hoặc tầng tùy thuộc vào một đặc điểm cụ thể. Sau đó, các đối tượng từ mỗi tầng (số ít của các tầng) được lấy mẫu ngẫu nhiên

Bạn chia dân số thành các nhóm dựa trên một đặc điểm và sau đó chọn ngẫu nhiên một đối tượng hoặc thực thể từ mỗi nhóm

Các loại lấy mẫu ngẫu nhiên phân tầng

Lấy mẫu phân tầng được chia thành hai loại, đó là

  • Lấy mẫu ngẫu nhiên phân tầng theo tỷ lệ
  • Lấy mẫu ngẫu nhiên phân tầng không cân xứng

Lấy mẫu ngẫu nhiên phân tầng theo tỷ lệ là một kiểu lấy mẫu trong đó kích thước của mẫu ngẫu nhiên thu được từ mỗi tầng tỷ lệ thuận với kích thước của tổng thể của toàn bộ tầng đó.

Nói cách khác, tỷ lệ của toàn bộ tầng bằng tỷ lệ của tầng mẫu. Xem xét ví dụ sau

students = {
    
    "Name": ["Ibrahim", "Ganiyat", "Joel", "Elijah", "Yusuf", "Nurain", 
            "Dayo", "David", "Olu", "Tobi"],
    
    "ID":  ['001', '002', '003', '004', '005', '006','007', '008', '009', '010'],
    
    "Grade": ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'A', 'B', 'A'],
    
    "Category": [1, 2, 2, 1, 3, 3, 1, 2, 3, 3]
}
df = pd.DataFrame(students)
>>
Python lấy mẫu theo tỷ lệ

Khung dữ liệu trên chứa tên, ID, điểm và danh mục của sinh viên. Giả sử chúng ta muốn phân tầng học sinh dựa trên đặc điểm lớp của họ và lấy mẫu 60% học sinh từ mỗi nhóm. Điều đó có nghĩa là chúng tôi sẽ có ba tầng trong khung dữ liệu trên, bởi vì chúng tôi có ba lớp khác nhau

Chúng ta có thể lấy mẫu bằng cách gõ như sau

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))

Bây giờ những gì chúng tôi đã làm ở trên là nhóm khung dữ liệu thành các tầng khác nhau bằng cách sử dụng phương thức

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
6. Sau đó, chúng tôi đã thông qua tính năng
df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
7. Đối với mỗi nhóm (tầng), chúng tôi lấy mẫu ngẫu nhiên 10 quan sát từ nhóm đó

Python lấy mẫu theo tỷ lệ

Bây giờ nếu chúng ta nhìn vào tỷ lệ của

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
1 và
df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
2, chúng ta sẽ thấy rằng tỷ lệ cho cả hai khung dữ liệu là như nhau

Python lấy mẫu theo tỷ lệ

Mặt khác, lấy mẫu ngẫu nhiên phân tầng không cân xứng liên quan đến việc lựa chọn ngẫu nhiên các tầng mà không quan tâm đến tỷ lệ. Nói cách khác, lấy mẫu được thực hiện dựa trên một số lượng xác định. Hãy xem một ví dụ

df.groupby('Grade', group_keys=False).apply(lambda x: x.sample(n=2))

Trong mã này, bạn có thể thấy rằng chúng tôi chỉ chỉ định số lượng mẫu thực tế mà chúng tôi muốn đạt được

Python lấy mẫu theo tỷ lệ

Hầu hết thời gian, bạn sẽ sử dụng lấy mẫu phân tầng theo tỷ lệ. Không cân xứng đòi hỏi nhiều kiến ​​thức chuyên môn hơn. Khi thực hiện lấy mẫu phân tầng, rất có thể bạn sẽ sử dụng lấy mẫu theo tỷ lệ

Ứng dụng lấy mẫu ngẫu nhiên phân tầng

1. Lấy mẫu dựa trên đặc điểm chung

Khi một hoặc nhiều đối tượng trong một thử nghiệm chia sẻ các đặc điểm, điều đó cho thấy họ là thành viên của cùng một nhóm (một đối tượng chỉ có thể thuộc một nhóm cụ thể)

Ví dụ: giả sử 50 học sinh làm bài kiểm tra và thang điểm của bài kiểm tra chỉ là A-E. Vì vậy, chúng ta có thể có những học sinh trong cùng một nhóm lớp, ví dụ, những học sinh được điểm A (và không thể có một học sinh có hai điểm). Kết quả là, chúng có chung đặc điểm hoặc tính năng, đó là cấp

Vì vậy, khi bạn muốn lấy mẫu đối tượng dựa trên các đặc điểm chung, bạn nên sử dụng phương pháp lấy mẫu ngẫu nhiên phân tầng. Điều này đảm bảo rằng một thành viên của một nhóm cụ thể sẽ được đưa vào

Điều này là do lấy mẫu ngẫu nhiên phân tầng khác với lấy mẫu ngẫu nhiên đơn giản, đây cũng là một kỹ thuật lấy mẫu. Lấy mẫu ngẫu nhiên phân tầng lấy mẫu ngẫu nhiên trong tổng thể không có đặc điểm nào (nghĩa là mỗi đối tượng trong tổng thể đều có cơ hội được chọn như nhau)

Do đó, lấy mẫu ngẫu nhiên đơn giản không thể đảm bảo rằng một thành viên nhất định của một nhóm cụ thể sẽ được đưa vào mẫu.

Hãy xem một ví dụ để xem những gì chúng ta đang nói về. Giả sử chúng ta muốn lấy mẫu 60% sinh viên bằng cách sử dụng cả lấy mẫu ngẫu nhiên phân tầng và lấy mẫu đơn giản

Chúng ta có thể xem kết quả lấy mẫu ngẫu nhiên phân tầng bên dưới

df.groupby('Grade', group_keys=False).apply(lambda x: x.sample(frac=0.6))
Python lấy mẫu theo tỷ lệ

Và đây là kết quả của việc lấy mẫu ngẫu nhiên đơn giản.

df.sample(frac= 0.6)
Python lấy mẫu theo tỷ lệ

Chúng ta có thể thấy rằng các học sinh đạt điểm C không được đưa vào mẫu. Điều này là do trong lấy mẫu ngẫu nhiên đơn giản, mọi quan sát đều có cơ hội được chọn như nhau vì chúng tôi không lấy mẫu dựa trên các đặc điểm. Điều này có nghĩa là có khả năng một quan sát sẽ không được chọn.

Mặt khác, trong lấy mẫu ngẫu nhiên phân tầng, chúng tôi xem xét tất cả các nhóm chúng tôi muốn lấy mẫu và sau đó lấy mẫu ngẫu nhiên từ mỗi nhóm

2. Tập dữ liệu không cân bằng

Tập dữ liệu không cân bằng là một vấn đề phân loại học máy trong đó hai nhãn lớp trong biến mục tiêu không tỷ lệ với nhau. Nói cách khác, một lớp có số lượng cao hơn lớp kia, dẫn đến sự mất cân bằng

Trong học máy, lấy mẫu phân tầng cũng được sử dụng để có được tỷ lệ mẫu giống nhau cho tập huấn luyện và tập kiểm tra nếu có sự mất cân bằng trong tập dữ liệu

Ví dụ: tập dữ liệu bệnh mãn tính có nhãn mất cân bằng như hình bên dưới. Bạn có thể bấm vào đây để tải về bộ dữ liệu

df = pd.read_csv("kidney_disease.csv")
df.head()
Python lấy mẫu theo tỷ lệ

Nếu chúng ta kiểm tra tính năng nhãn tỷ lệ là

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
3, chúng ta có thể thấy rằng nó bị mất cân bằng.

Python lấy mẫu theo tỷ lệ

Bây giờ, giả sử chúng ta muốn tách tập huấn luyện và tập kiểm tra bằng cách lấy mẫu ngẫu nhiên đơn giản. Chúng tôi sẽ không đạt được tỷ lệ tương tự cho tập huấn luyện và bài kiểm tra như tỷ lệ dân số

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
0
Python lấy mẫu theo tỷ lệ

Chúng ta có thể thấy rằng tỷ lệ nhãn cho cả

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
4 và
df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
5 không giống với tỷ lệ dân số. Để đạt được tỷ lệ tương tự, chúng ta có thể sử dụng tham số
df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
6 trong
df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
7 như hình bên dưới.

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))
5

Đoạn mã trên cho thấy tập dữ liệu được phân tầng trên nhãn. Vì vậy, với điều đó, chúng ta sẽ đạt được tỷ lệ tương tự như tỷ lệ dân số

Python lấy mẫu theo tỷ lệ

Phần kết luận

Trong hướng dẫn này, chúng tôi đã xem xét lấy mẫu phân tầng và cách bạn có thể sử dụng nó trong thống kê và học máy. Chúng tôi cũng đã xem xét các loại lấy mẫu phân tầng

Cảm ơn bạn đã dành thời gian

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Python lấy mẫu theo tỷ lệ
Ibrahim Abayomi Ogunbiyi

Tôi là một nhà khoa học dữ liệu nhiệt tình, thích phá vỡ và sửa chữa những thứ liên quan đến dữ liệu, đồng thời quan tâm đến dữ liệu một cách rõ ràng để cung cấp cho tôi thông tin chi tiết về những gì nó đang miêu tả


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có việc làm với tư cách là nhà phát triển. Bắt đầu

Sample_proportions Python là gì?

Bạn có thể sử dụng sample_proportions để xem tỷ lệ các màu khác nhau giữa 300 cây thuộc loài . Như bạn mong đợi, tỷ lệ trong tổng mẫu là 1. Bạn có thể sử dụng sample_proportions và phép toán mảng để trả lời các câu hỏi chỉ dựa trên tỷ lệ của các cá nhân được lấy mẫu trong các danh mục khác nhau.

lấy mẫu PPS với ví dụ là gì?

Điều này được gọi là xác suất tỷ lệ thuận với quy mô (PPS). Ví dụ: nếu một mẫu có 20.000 thành viên, xác suất thành viên được chọn sẽ là 1/20000 hoặc. 005 phần trăm. Nếu một mẫu khác có 10.000 thành viên, cơ hội để một thành viên được chọn sẽ là 1/10000 hoặc.

Lấy mẫu theo tỷ lệ và không theo tỷ lệ là gì?

Trong lấy mẫu hạn ngạch theo tỷ lệ, cỡ mẫu từ mỗi nhóm phụ tỷ lệ thuận với kích thước của nhóm phụ so với tổng thể. Phương pháp phi tỷ lệ không thực hiện được sự cân bằng này, có lẽ vì tỷ lệ chính xác không được biết

Kích thước mẫu tương ứng là gì?

Lấy mẫu theo tỷ lệ là chiến lược lấy mẫu (phương pháp thu thập người tham gia nghiên cứu) được sử dụng khi dân số bao gồm một số nhóm nhỏ có số lượng rất khác nhau. Số lượng người tham gia từ mỗi nhóm nhỏ được xác định bởi số lượng của họ so với toàn bộ dân số .