Auswahlverfahren für eine Zufallsstichprobe aus Matrix oder Array mit Datensatz in MATLAB

Mehak Mubarik 30 Januar 2023
  1. Extrahieren Sie Zufallsstichproben mit der Funktion randsample in MATLAB
  2. Extrahieren Sie Zufallsstichproben mit der datasample-Funktion in MATLAB
  3. Extrahieren Sie zufällige Stichproben-Teilmengen einer Spalte aus einer Datensatzmatrix mit datasample in MATLAB
Auswahlverfahren für eine Zufallsstichprobe aus Matrix oder Array mit Datensatz in MATLAB

Wir werden verschiedene Methoden zur Auswahl zufälliger Stichproben aus beliebigen Datensätzen, Arrays oder Matrizen mit verschiedenen Befehlen von MATLAB betrachten.

Um Ihre Konzepte zu klären und Ihnen einen vollständigen Einblick zu geben, wie Sie Zufallsstichproben erhalten, erklären wir die Funktionen wie Randn, randsample, datasample, indem wir Beispiele für Codes geben, um Zufallsstichproben aus Ihrem Datensatz mit Ersatz zu extrahieren as ohne Ersatz/Substitution zusammen mit Ausschnitten, die zeigen, wie Ihre Ausgabe aussehen wird.

Nehmen wir an, wir haben eine Matrix, die unseren Datensatz mit 50.000 Zeilen enthält. Wir wollen aus unserer Matrix eine Zufallsstichprobe mit 50 Entitäten auswählen. Wir können diese Aufgabe mit mehr als einer Stichprobenmethode durchführen. Bevor Sie mit der Auflistung dieser Methoden beginnen, denken Sie daran, dass eine Zufallsstichprobe/Daten/Datensatz einige Daten sind, die zufällig aus einer Matrix eines Datensatzes ausgewählt werden. Um Voreingenommenheit und andere unerwünschte mögliche Auswirkungen auszuschließen, verwenden wir Zufallsstichproben. Aber wir müssen bedenken, dass es nicht ganz so einfach ist, wie es uns scheint. Die Auswahl einer Zufallsstichprobe aus einem Datensatz ist komplizierter als die Auswahl von 10 Entitäten aus einem Datensatz, der aus 500 Entitäten besteht. Außerdem müssen wir sicherstellen, ob die Stichprobe tatsächlich zufällig ist oder nicht!

Um mit unserer Annahme fortzufahren, können wir MATLAB verwenden, um Zufallsstichproben aus unserem Datensatz zu extrahieren. MATLAB bietet uns mehrere Funktionen, um zufällige Stichproben/Daten aus einem gegebenen Datensatz auszuwählen. Zum Beispiel können wir die Funktion randsample in MATLAB verwenden, um Stichproben zufällig aus jedem Array oder jeder Matrix auszuwählen, die Daten enthält, sowohl mit als auch ohne Ersetzung/Substitution.

Extrahieren Sie Zufallsstichproben mit der Funktion randsample in MATLAB

Unter der Annahme, dass N_obs-Beobachtungen einheitlich zufällig mit Ersetzungen aus Einträgen im Datensatz ausgewählt werden, verwenden wir die Funktion:

O_put = randsample(ourdata,N_obs)

Wobei N_obs die Anzahl der Beobachtungen darstellt. Wenn ourdata ein Vektor ist, ist unsere Ausgabe O_put auch ein Vektor, der aus N_obs Zufallsstichproben aus dem Datensatz besteht.

Lassen Sie uns diese Funktion verwenden, um unser angenommenes Problem zu lösen.

Code:

%Let's assume we have 50,000 entries in a dataset "ourdata".

ourdata=50000;

%We want to obtain 5 random samples from this dataset 

N_obs=5;

%Let's follow the above-explained concept and write our code

O_put = randsample(ourdata,N_obs);

Ausgabe:

O_put =

       46700
       33937
       42457
       32788
        1786

Extrahieren Sie Zufallsstichproben mit der datasample-Funktion in MATLAB

Wenn wir beim Extrahieren von Stichproben die Abmessungen berücksichtigen möchten, verwenden wir die folgende Funktion.

y = datasample(ourdata,N_obs,'Replace',false)

Wenn Replace true ist, wählen wir das Sample mit Ersatz; andernfalls wählen wir das Muster ersatzlos aus. Wenn Replace auf false gesetzt ist, beschränken wir N_obs so, dass es nicht mehr als unsere festgelegte Anzahl von Elementen im Datensatz ist.

Replace ist standardmäßig true.

true = Beispiel mit Ersetzung.

false = Probe ohne Ersatz.

Wir können dies erreichen, indem wir einen einzeiligen Code schreiben. Unter Berücksichtigung der obigen Annahmen formulieren wir unseren Code wie folgt.

%Let's assume we have 50,000 entries in a dataset "ourdata".
%We want to obtain 5 random samples from this dataset 
%Let's follow the above-explained concept and write our code using function
%datasample
%Let's Draw five unique values from the integers 1:50000 using 1 line code.

O_put = datasample(1:50000,5,'Replace',false);

Ausgabe:

O_put =

       24489       22279       32315       35467       37732

Extrahieren Sie zufällige Stichproben-Teilmengen einer Spalte aus einer Datensatzmatrix mit datasample in MATLAB

Dazu verwenden wir in MATLAB die Funktion randn. Es erstellt Arrays von Zufallswerten mit normaler Verteilung.

I_put=randn(A) erzeugt eine A-by-A-Matrix, die zufällig generierte Elemente enthält.

Wenn A kein Skalar (ein Vektor) ist, zeigt MATLAB eine Fehlermeldung an.

Um nun unsere Zufallsstichproben zu erhalten, verwenden wir die Funktion datasample, die Teilmengen unserer gegebenen Datenmatrix aus zufälligen Spalten ergibt.

Code:

I_put = randn(10,100000);
O_put = datasample(I_put,5,2,'Replace',false)

Ausgabe:

O_put =

-0.5995   -0.7377   -1.1902   -0.6021   -1.0812
-0.0572   -0.7831    0.4746    0.7105   -0.8038
 0.8401    1.0824   -0.3507    0.4069   -2.0817
-1.1358   -0.9041   -0.1702    0.5950    0.3954
-1.0887   -0.7766   -1.6901   -0.5047    1.1286
-0.0187   -0.3354   -0.7458    1.8554    0.8492
 0.3251   -0.4219    0.2440   -0.4750    0.7628
 1.4713   -1.9788   -1.6672    0.0035   -0.4316
 0.6880    1.4387   -1.3525   -0.6950    0.6411
-0.2777   -0.4776   -0.9841    1.2752    0.2645
Mehak Mubarik avatar Mehak Mubarik avatar

Mehak is an electrical engineer, a technical content writer, a team collaborator and a digital marketing enthusiast. She loves sketching and playing table tennis. Nature is what attracts her the most.

LinkedIn

Verwandter Artikel - MATLAB Random