पांडा में स्तरीकृत नमूनाकरण (उदाहरण के साथ)


शोधकर्ता अक्सर किसी जनसंख्या से नमूने लेते हैं और संपूर्ण जनसंख्या के बारे में निष्कर्ष निकालने के लिए नमूने से प्राप्त डेटा का उपयोग करते हैं।

आमतौर पर इस्तेमाल की जाने वाली नमूना पद्धति स्तरीकृत यादृच्छिक नमूनाकरण है, जिसमें एक आबादी को समूहों में विभाजित किया जाता है और प्रत्येक समूह से एक निश्चित संख्या में सदस्यों को नमूने में शामिल करने के लिए यादृच्छिक रूप से चुना जाता है।

यह ट्यूटोरियल पायथन में स्तरीकृत यादृच्छिक नमूनाकरण करने के दो तरीकों की व्याख्या करता है।

उदाहरण 1: गिनती का उपयोग करके स्तरीकृत नमूनाकरण

मान लीजिए कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें 2 अलग-अलग टीमों के 8 बास्केटबॉल खिलाड़ियों का डेटा है:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

#view DataFrame
df

        team position assists rebounds
0 A G 5 11
1 A G 7 8
2 A F 7 10
3 A G 8 6
4 B F 5 6
5 B F 7 9
6 B C 6 6
7 B C 9 10

निम्नलिखित कोड दिखाता है कि नमूने में शामिल करने के लिए प्रत्येक टीम से 2 खिलाड़ियों को यादृच्छिक रूप से चुनकर स्तरीकृत यादृच्छिक नमूनाकरण कैसे किया जाए:

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

        team position assists rebounds
0 A G 5 11
3 A G 8 6
6 B C 6 6
5 B F 7 9

ध्यान दें कि स्तरीकृत नमूने में प्रत्येक टीम के दो खिलाड़ी शामिल हैं।

उदाहरण 2: अनुपात का उपयोग करके स्तरीकृत नमूनाकरण

आइए फिर से मान लें कि हमारे पास निम्नलिखित पांडा डेटाफ़्रेम है जिसमें 2 अलग-अलग टीमों के 8 बास्केटबॉल खिलाड़ियों का डेटा शामिल है:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

#view DataFrame
df

        team position assists rebounds
0 A G 5 11
1 A G 7 8
2 A F 7 10
3 A G 8 6
4 B F 5 6
5 B F 7 9
6 B C 6 6
7 B C 9 10

ध्यान दें कि डेटाफ़्रेम में 8 में से 6 खिलाड़ी (75%) टीम ए में हैं और 8 में से 2 खिलाड़ी (25%) टीम बी में हैं।

निम्नलिखित कोड दिखाता है कि स्तरीकृत यादृच्छिक नमूनाकरण कैसे किया जाए ताकि प्रत्येक टीम के नमूने में खिलाड़ियों का अनुपात बड़े डेटाफ़्रेम में प्रत्येक टीम के खिलाड़ियों के अनुपात से मेल खाए:

 import numpy as np

#define total sample size desired
N = 4

#perform stratified random sampling
df. groupby ('team', group_keys= False ). apply ( lambda x: x. sample (int(np. rint (N* len (x)/ len (df))))). sample (frac=1). reset_index (drop= True )

        team position assists rebounds
0 B F 7 9
1 B G 8 6
2 B C 6 6
3 A G 7 8

ध्यान दें कि स्तरीकृत नमूने में टीम ए के खिलाड़ियों का अनुपात (25%) बड़े डेटाफ़्रेम में टीम ए के खिलाड़ियों के अनुपात से मेल खाता है।

इसी प्रकार, स्तरीकृत नमूने में टीम बी खिलाड़ियों का अनुपात (75%) बड़े डेटाफ़्रेम में टीम बी खिलाड़ियों के अनुपात से मेल खाता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि पांडा का उपयोग करके अन्य नमूना प्रकारों का चयन कैसे करें:

पांडा में क्लस्टर सैंपलिंग कैसे करें
पांडाओं के बीच व्यवस्थित नमूनाकरण कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *