Statistiken an der Befehlszeile für Anfänger im Bereich Data ScientistsStatistiken an der Befehlszeile für Anfänger im Bereich Data Scientists
Bild vom Herausgeber

# Einführung

Wenn Sie gerade erst mit der Datenwissenschaft beginnen, denken Sie vielleicht, dass Sie Instruments wie Python, R oder andere Software program benötigen, um statistische Analysen von Daten durchzuführen. Allerdings ist die Befehlszeile bereits ein leistungsstarkes statistisches Toolkit.

Befehlszeilentools können große Datensätze oft schneller verarbeiten, als sie in speicherintensive Anwendungen zu laden. Sie sind einfach zu skripten und zu automatisieren. Darüber hinaus funktionieren diese Instruments auf jedem Unix-System ohne irgendetwas installieren.

In diesem Artikel erfahren Sie, wie Sie wichtige statistische Operationen direkt von Ihrem Terminal aus nur mit integrierten Unix-Instruments durchführen.

🔗 Hier ist das Bash-Skript auf GitHub. Es wird dringend empfohlen, mitzuprogrammieren, um die Konzepte vollständig zu verstehen.

Um diesem Tutorial folgen zu können, benötigen Sie:

  • Sie benötigen eine Unix-ähnliche Umgebung (Linux, macOS oder Home windows mit WSL).
  • Wir verwenden nur Normal-Unix-Instruments, die bereits installiert sind.

Öffnen Sie Ihr Terminal, um zu beginnen.

# Beispieldaten einrichten

Bevor wir Daten analysieren können, benötigen wir einen Datensatz. Erstellen Sie eine einfache CSV-Datei, die den täglichen Web site-Verkehr darstellt, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:

cat > visitors.csv << EOF
date,guests,page_views,bounce_rate
2024-01-01,1250,4500,45.2
2024-01-02,1180,4200,47.1
2024-01-03,1520,5800,42.3
2024-01-04,1430,5200,43.8
2024-01-05,980,3400,51.2
2024-01-06,1100,3900,48.5
2024-01-07,1680,6100,40.1
2024-01-08,1550,5600,41.9
2024-01-09,1420,5100,44.2
2024-01-10,1290,4700,46.3
EOF

Dadurch wird eine neue Datei mit dem Namen erstellt Visitors.csv mit Kopfzeilen und zehn Zeilen mit Beispieldaten.

# Erkunden Sie Ihre Daten

// Zeilen in Ihrem Datensatz zählen

Eines der ersten Dinge, die man in einem Datensatz identifizieren kann, ist die Anzahl der darin enthaltenen Datensätze. Der wc (Wortanzahl) Befehl mit dem -l Flag zählt die Anzahl der Zeilen in einer Datei:

Die Ausgabe zeigt: 11 visitors.csv (insgesamt 11 Zeilen, minus 1 Kopfzeile = 10 Datenzeilen).

// Anzeigen Ihrer Daten

Bevor mit den Berechnungen begonnen wird, ist es hilfreich, die Datenstruktur zu überprüfen. Der head Der Befehl zeigt die ersten paar Zeilen einer Datei an:

Hier werden die ersten fünf Zeilen angezeigt, sodass Sie eine Vorschau der Daten anzeigen können.

date,guests,page_views,bounce_rate
2024-01-01,1250,4500,45.2
2024-01-02,1180,4200,47.1
2024-01-03,1520,5800,42.3
2024-01-04,1430,5200,43.8

// Extrahieren einer einzelnen Spalte

Um mit bestimmten Spalten in einer CSV-Datei zu arbeiten, verwenden Sie die schneiden Befehl mit Trennzeichen und Feldnummer. Der folgende Befehl extrahiert die Besucherspalte:

lower -d',' -f2 visitors.csv | tail -n +2

Dies extrahiert Feld 2 (Besucherspalte) mit lowerUnd tail -n +2 überspringt die Kopfzeile.

# Berechnung von Maßen der zentralen Tendenz

// Den Mittelwert ermitteln (Durchschnitt)

Der Mittelwert ist die Summe aller Werte dividiert durch die Anzahl der Werte. Wir können dies berechnen, indem wir die Zielspalte extrahieren und dann verwenden awk Werte akkumulieren:

lower -d',' -f2 visitors.csv | tail -n +2 | awk '{sum+=$1; rely++} END {print "Imply:", sum/rely}'

Der awk Der Befehl akkumuliert die Summe und zählt, während er jede Zeile verarbeitet, und teilt sie dann durch END Block.

Als nächstes berechnen wir den Median und den Modus.

// Den Median finden

Der Median ist der Mittelwert beim Sortieren des Datensatzes. Bei einer geraden Anzahl von Werten ist es der Durchschnitt der beiden Mittelwerte. Sortieren Sie zuerst die Daten und finden Sie dann die Mitte:

lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk '{arr(NR)=$1; rely=NR} END {if(countpercent2==1) print "Median:", arr((rely+1)/2); else print "Median:", (arr(rely/2)+arr(rely/2+1))/2}'

Dadurch werden die Daten numerisch sortiert kind -nspeichert Werte in einem Array und ermittelt dann den Mittelwert (oder den Durchschnitt der beiden Mittelwerte, wenn die Anzahl gerade ist).

// Den Modus finden

Der Modus ist der am häufigsten vorkommende Wert. Wir finden dies, indem wir sortieren, Duplikate zählen und ermitteln, welcher Wert am häufigsten vorkommt:

lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | uniq -c | kind -rn | head -n 1 | awk '{print "Mode:", $2, "(seems", $1, "occasions)"}'

Dadurch werden Werte sortiert und Duplikate gezählt uniq -csortiert nach Häufigkeit in umgekehrter Reihenfolge und wählt das oberste Ergebnis aus.

# Berechnung von Streuungsmaßen (oder Ausbreitungsmaßen)

// Den Maximalwert finden

Um den größten Wert in Ihrem Datensatz zu finden, vergleichen wir jeden Wert und verfolgen den Maximalwert:

awk -F',' 'NR>1 {if($2>max) max=$2} END {print "Most:", max}' visitors.csv

Dadurch wird der Header mit übersprungen NR>1vergleicht jeden Wert mit dem aktuellen Maximalwert und aktualisiert ihn, wenn ein größerer Wert gefunden wird.

// Den Mindestwert finden

Um den kleinsten Wert zu finden, initialisieren Sie auf ähnliche Weise ein Minimal aus der ersten Datenzeile und aktualisieren Sie es, wenn kleinere Werte gefunden werden:

awk -F',' 'NR==2 {min=$2} NR>2 {if($2<min) min=$2} END {print "Minimal:", min}' visitors.csv

Führen Sie die obigen Befehle aus, um die Maximal- und Minimalwerte abzurufen.

// Finden von Min und Max

Anstatt zwei separate Befehle auszuführen, können wir sowohl das Minimal als auch das Most in einem einzigen Durchgang ermitteln:

awk -F',' 'NR==2 {min=$2; max=$2} NR>2 {if($2max) max=$2} END {print "Min:", min, "Max:", max}' visitors.csv

Dieser Single-Go-Ansatz initialisiert beide Variablen aus der ersten Zeile und aktualisiert sie dann einzeln.

// Berechnen der (Bevölkerungs-)Standardabweichung

Die Standardabweichung misst, wie weit die Werte vom Mittelwert abweichen. Für eine vollständige Grundgesamtheit verwenden Sie diese Formel:

awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; print "Std Dev:", sqrt((sumsq/rely)-(imply*imply))}' visitors.csv

Dies akkumuliert die Summe und die Summe der Quadrate und wendet dann die Formel an: ( sqrt{frac{sum x^2}{N} – mu^2} ), was die Ausgabe ergibt:

// Berechnung der Standardabweichung der Stichprobe

Wenn Sie mit einer Stichprobe und nicht mit einer vollständigen Grundgesamtheit arbeiten, verwenden Sie Bessels Korrektur (Dividieren durch ( n-1 )) für unvoreingenommene Stichprobenschätzungen:

awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; print "Pattern Std Dev:", sqrt((sumsq-(sum*sum/rely))/(count-1))}' visitors.csv

Dies ergibt:

// Varianz berechnen

Varianz ist das Quadrat der Standardabweichung. Es ist ein weiteres Maß für die Streuung, das in vielen statistischen Berechnungen nützlich ist:

awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; var=(sumsq/rely)-(imply*imply); print "Variance:", var}' visitors.csv

Diese Berechnung spiegelt die Standardabweichung wider, lässt jedoch die Quadratwurzel weg.

# Berechnung von Perzentilen

// Quartile berechnen

Quartile teilen sortierte Daten in vier gleiche Teile. Sie sind besonders nützlich, um die Datenverteilung zu verstehen:

lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk '
{arr(NR)=$1; rely=NR}
END {
  q1_pos = (rely+1)/4
  q2_pos = (rely+1)/2
  q3_pos = 3*(rely+1)/4
  print "Q1 (twenty fifth percentile):", arr(int(q1_pos))
  print "Q2 (Median):", (countpercent2==1) ? arr(int(q2_pos)) : (arr(rely/2)+arr(rely/2+1))/2
  print "Q3 (seventy fifth percentile):", arr(int(q3_pos))
}'

Dieses Skript speichert sortierte Werte in einem Array, berechnet Quartilpositionen mithilfe der Formel ( (n+1)/4 ) und extrahiert Werte an diesen Positionen. Der Code gibt Folgendes aus:

Q1 (twenty fifth percentile): 1100
Q2 (Median): 1355
Q3 (seventy fifth percentile): 1520

// Berechnen eines beliebigen Perzentils

Sie können jedes Perzentil berechnen, indem Sie die Positionsberechnung anpassen. Der folgende versatile Ansatz verwendet lineare Interpolation:

PERCENTILE=90
lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk -v p=$PERCENTILE '
{arr(NR)=$1; rely=NR}
END {
  pos = (rely+1) * p/100
  idx = int(pos)
  frac = pos - idx
  if(idx >= rely) print p "th percentile:", arr(rely)
  else print p "th percentile:", arr(idx) + frac * (arr(idx+1) - arr(idx))
}'

Dies berechnet die Place als ( (n+1) occasions (Perzentil/100) ) und verwendet dann eine lineare Interpolation zwischen Array-Indizes für Bruchpositionen.

# Arbeiten mit mehreren Spalten

Häufig möchten Sie Statistiken über mehrere Spalten gleichzeitig berechnen. So berechnen Sie gleichzeitig Durchschnittswerte für Besucher, Seitenaufrufe und Absprungrate:

awk -F',' '
NR>1 {
  v_sum += $2
  pv_sum += $3
  br_sum += $4
  rely++
}
END {
  print "Common guests:", v_sum/rely
  print "Common web page views:", pv_sum/rely
  print "Common bounce price:", br_sum/rely
}' visitors.csv

Dadurch werden für jede Spalte separate Akkumulatoren verwaltet und in allen drei wird die gleiche Anzahl verwendet, was die folgende Ausgabe ergibt:

Common guests: 1340
Common web page views: 4850
Common bounce price: 45.06

// Berechnung der Korrelation

Korrelation misst die Beziehung zwischen zwei Variablen. Der Pearson-Korrelationskoeffizient reicht von -1 (perfekte destructive Korrelation) bis 1 (perfekte constructive Korrelation):

awk -F', *' '
NR>1 {
  x(NR-1) = $2
  y(NR-1) = $3

  sum_x += $2
  sum_y += $3

  rely++
}
END {
  if (rely < 2) exit

  mean_x = sum_x / rely
  mean_y = sum_y / rely

  for (i = 1; i <= rely; i++) {
    dx = x(i) - mean_x
    dy = y(i) - mean_y

    cov   += dx * dy
    var_x += dx * dx
    var_y += dy * dy
  }

  sd_x = sqrt(var_x / rely)
  sd_y = sqrt(var_y / rely)

  correlation = (cov / rely) / (sd_x * sd_y)

  print "Correlation:", correlation
}' visitors.csv

Dadurch wird die Pearson-Korrelation berechnet, indem die Kovarianz durch das Produkt der Standardabweichungen dividiert wird.

# Abschluss

Die Befehlszeile ist ein leistungsstarkes Werkzeug für statistische Analysen. Sie können große Datenmengen verarbeiten, komplexe Statistiken berechnen und Berichte automatisieren – und das alles, ohne etwas zu installieren, das über das hinausgeht, was bereits auf Ihrem System vorhanden ist.

Diese Fähigkeiten ergänzen Ihre Python- und R-Kenntnisse, anstatt sie zu ersetzen. Verwenden Sie Befehlszeilentools für eine schnelle Untersuchung und Datenvalidierung und wechseln Sie dann bei Bedarf zu speziellen Instruments für komplexe Modellierung und Visualisierung.

Das Beste daran ist, dass diese Instruments auf praktisch jedem System verfügbar sind, das Sie in Ihrer Karriere als Datenwissenschaftler verwenden werden. Öffnen Sie Ihr Terminal und beginnen Sie mit der Erkundung Ihrer Daten.

Bala Priya C ist ein Entwickler und technischer Redakteur aus Indien. Sie arbeitet gerne an der Schnittstelle von Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Zu ihren Interessen- und Fachgebieten gehören DevOps, Datenwissenschaft und Verarbeitung natürlicher Sprache. Sie liebt es zu lesen, zu schreiben, zu programmieren und Kaffee zu trinken! Derzeit arbeitet sie daran, zu lernen und ihr Wissen mit der Entwickler-Group zu teilen, indem sie Tutorials, Anleitungen, Meinungsbeiträge und mehr verfasst. Bala erstellt außerdem ansprechende Ressourcenübersichten und Programmier-Tutorials.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert