analysis

Prompt Engineering im Alltag, Teil 7: Datenanalyse

Eine eher wenig beachtete Fähigkeit von ChatGPT ist, dass es Daten analysieren kann. ChatGPT kann Dateien lesen, analysieren und daraus Visualisierungen, Dateien und Analysen liefern. In diesem Beitrag sehen wir uns an, wie Sie ChatGPT für die Datenanalyse einsetzen. Um zu zeigen, was Advanced Data Analysis kann, verwenden wir Daten von Free Data Sets.
Zur Veranschaulichung verwenden wir einen Datensatz zu den globalen Emissionen aus fossilen Brennstoffen von 1750 bis 2021. Der Datensatz ist ziemlich komplex und hat mehr als 50.000 Zeilen und mehr als 70 Spalten. Sie werden merken, dass Sie mehrere Dateien auf einmal hochladen können. ChatGPT versucht dann zu verstehen, wie sie zusammenhängen. Zum Zeitpunkt der Erstellung dieses Beitrags lassen sich bis zu 750 MB hochladen, pro Datei maximal 25 MB. Nachdem wir die Dateien für ChatGPT bereitgestellt haben, erklären wir, was die Dateien sind und was wir zunächst mit den Daten vorhaben. In unserem Fall geht es um globale Emissionen aus fossilen Brennstoffen, und wir möchten eine Grafik, die zeigt, wie sich die Emissionen im Lauf der Zeit entwickelt haben:

Die CSV-Datei enthält Daten zu den globalen Emissionen aus fossilen Brennstoffen von 1750 bis 2021. Die XLS-Datei enthält eine Beschreibung der Spalten. Kannst du eine Grafik erstellen, die zeigt, wie sich die Emissionen nach Ländern über den Beobachtungszeitraum entwickelt haben?

Nach dem Prompt liest ChatGPT den Inhalt der Dateien und beginnt, Python-Code zu erzeugen und auszuführen, um die Dateien zu analysieren. Es beschreibt, was es findet, und erklärt, wie es die Grafik zeichnen wird. Bei uns kam das heraus:

import matplotlib.pyplot as plt
# Filter the dataset for relevant columns
emissions_filtered = emissions_data[[‘country’, ‘year’, ‘co2’]].dropna()
# Since visualizing all countries over such a long period can be complex,
# let’s focus on the top emitting countries in the latest available year to simplify the visualization.
latest_year = emissions_filtered[‘year’].max()
top_emitting_countries = emissions_filtered[emissions_filtered[‘year’] == latest_year].nlargest(10, ‘co2’)[‘country’]
# Filter the dataset to include only the top emitting countries
emissions_top_countries = emissions_filtered[emissions_filtered[‘country’].isin(top_emitting_countries)]
# Pivot the data for visualization
emissions_pivot = emissions_top_countries.pivot(index=’year’, columns=’country’, values=’co2′)
# Plotting
plt.figure(figsize=(14, 8))
plt.plot(emissions_pivot, marker=”, linewidth=2)
plt.title(‘Development of CO2 Emissions by Country (Top 10 in 2021)’, fontsize=16)
plt.xlabel(‘Year’, fontsize=14)
plt.ylabel(‘CO2 Emissions (million tonnes)’, fontsize=14)
plt.legend(emissions_pivot.columns, loc=’upper left’, title=’Country’)
plt.grid(True)
plt.yscale(‘log’)
plt.tight_layout()
# Save the figure
plt_path = ‘/mnt/data/co2_emissions_development_by_country.png’
plt.savefig(plt_path)
plt_path

Nach dieser ersten Analyse können wir tiefer in die Daten einsteigen. Angenommen, wir wollen wissen, wie sich die Länder der Europäischen Union über die Jahre entwickelt haben:

Kannst du ein Kreisdiagramm der CO2-Emissionen der Länder der Europäischen Union von 2010 bis 2021 erstellen?

Beachten Sie, dass wir ChatGPT nicht gesagt haben, welche Länder zur Europäischen Union gehören. Das ermittelt es selbst und berücksichtigt sogar den Brexit:

# List of European Union (EU) countries based on common membership around 2021 (excluding UK due to Brexit)
eu_countries = [
   ‘Austria’, ‘Belgium’, ‘Bulgaria’, ‘Croatia’, ‘Cyprus’, ‘Czechia’, ‘Denmark’,
   ‘Estonia’, ‘Finland’, ‘France’, ‘Germany’, ‘Greece’, ‘Hungary’, ‘Ireland’,
   ‘Italy’, ‘Latvia’, ‘Lithuania’, ‘Luxembourg’, ‘Malta’, ‘Netherlands’,
   ‘Poland’, ‘Portugal’, ‘Romania’, ‘Slovakia’, ‘Slovenia’, ‘Spain’, ‘Sweden’
]
# Filter dataset for EU countries and the years 2010 to 2021
emissions_eu = emissions_filtered[
   (emissions_filtered[‘country’].isin(eu_countries)) &
   (emissions_filtered[‘year’] >= 2010) &
   (emissions_filtered[‘year’] <= 2021)
]
# Aggregate CO2 emissions by country
eu_co2_emissions = emissions_eu.groupby(‘country’)[‘co2′].sum()
# Plotting the pie chart
plt.figure(figsize=(10, 8))
plt.pie(eu_co2_emissions, labels=eu_co2_emissions.index, autopct=’%1.1f%%’, startangle=140)
plt.title(‘CO2 Emissions of EU Countries (2010-2021)’, fontsize=16)
plt.axis(‘equal’)  # Equal aspect ratio ensures that pie is drawn as a circle.
# Save the figure
pie_chart_path = ‘/mnt/data/eu_co2_emissions_pie_chart.png’
plt.savefig(pie_chart_path)
pie_chart_path

Die Grafik sieht schon fast gut aus, großartig ist sie aber nicht. Einige Beschriftungen stehen zu eng beieinander und sind schwer lesbar, aber für den Anfang passt es. Sie können ChatGPT zum Beispiel bitten, das mit einer farbigen Legende zu verbessern. Wir graben aber lieber weiter in den Daten. Als Nächstes schauen wir uns an, wie sich die Emissionen Deutschlands im Lauf der Jahre verändert haben:

Kannst du ein Balkendiagramm erstellen, das die Entwicklung des Anteils der CO2-Emissionen für Deutschland zeigt?

Weil wir ChatGPT nicht erklärt haben, dass wir Deutschlands Beitrag zu den Emissionen der Europäischen Union sehen wollen, nimmt es automatisch den gesamten Datensatz:

Um ein Balkendiagramm zu erstellen, das die Entwicklung des Anteils der CO2-Emissionen für Deutschland zeigt, konzentriere ich mich darauf, die jährlichen CO2-Emissionen als Anteil an den Gesamtemissionen Deutschlands über den angegebenen Zeitraum darzustellen. Dazu berechne ich den Anteil der Emissionen jedes Jahres an den Gesamtemissionen aller im Datensatz für Deutschland erfassten Jahre.

Extrahieren wir also die CO2-Emissionsdaten für Deutschland, berechnen die jährlichen Anteile und erstellen dann das Balkendiagramm. Am Ende bekamen wir das Balkendiagramm mit Deutschlands Beitrag zu den weltweiten Emissionen. Jetzt möchten wir ein Gefühl dafür bekommen, wann Deutschland irgendwann gar keine Emissionen mehr haben wird:

Mach eine Trendanalyse für die Deutschland-Daten aus dem letzten Balkendiagramm. Wann können wir damit rechnen, null zu erreichen?

ChatGPT beginnt mit einem linearen Regressionsmodell und berechnet, wann null erreicht wird:

Um den Trend der CO2-Emissionen Deutschlands zu analysieren und abzuschätzen, wann die Emissionen null erreichen könnten, können wir ein lineares Regressionsmodell auf die jährlichen CO2-Emissionsdaten anwenden. So lässt sich der Trend in die Zukunft fortschreiben und auf Basis der historischen Daten abschätzen, wann sich die Emissionen null annähern könnten.

Leider erreichen wir null nicht vor 2100. Auch hier sehen Sie, wie ChatGPT Annahmen trifft, wenn nichts anderes vorgegeben ist:

Das lineare Regressionsmodell, das an die CO2-Emissionsdaten Deutschlands angepasst wurde, sagt in der Trendanalyse für den prognostizierten Zeitraum bis zum Jahr 2100 kein Jahr voraus, in dem die CO2-Emissionen null erreichen. Das Ergebnis deutet darauf hin, dass das lineare Modell auf Basis der historischen Daten beim aktuellen Trend keinen Rückgang der Emissionen auf null erwartet. Ein lineares Regressionsmodell bildet die komplexen Trends bei CO2-Emissionen womöglich nicht genau ab, gerade wenn sich Politik, Technologien und wirtschaftliche Faktoren im Lauf der Zeit ändern. Ausgefeiltere Modelle oder Analysen, die diese Faktoren eventuell einbeziehen, könnten ein anderes Bild davon ergeben, wann Deutschland null Emissionen erreichen könnte.

Da ChatGPT selbst sagt, dass ein lineares Regressionsmodell die Trends womöglich nicht genau abbildet, können wir uns für andere Modelle entscheiden. Wenn Sie andere Modelle kennen, können Sie ChatGPT einfach bitten, ein anderes zu verwenden. Oder Sie fragen, welche Modelle infrage kommen:

Welche anderen Modelle außer dem linearen Regressionsmodell kannst du auf die Daten anwenden? Gib mir eine Liste und ordne die Einträge nach ihren Stärken und Schwächen.

ChatGPT liefert eine Liste von Modellen, die sich auf die Daten anwenden lassen. Wir entscheiden uns für ARIMA (Autoregressive Integrated Moving Average) und lassen ChatGPT arbeiten. Wenn Sie ein Modell nicht kennen (so wie ich ARIMA), prüfen Sie die Analyse von ChatGPT unbedingt mit Leuten nach, die mit dem Modell umgehen können. Sie können ChatGPT auch selbst bitten, die Berechnungen zu erklären und die Ergebnisse noch einmal zu prüfen. Hier finden Sie die Konversation, nur die hochgeladenen Dateien fehlen.

Daten bereinigen, umwandeln und aggregieren

In den Beispielen haben wir die Daten so verwendet, wie sie vorlagen. Je nach Qualität der verfügbaren Daten müssen Sie sie vielleicht zuerst bereinigen. Dafür müssen Sie die Daten kennen, vor allem wenn sie schlecht strukturiert sind („dirty“). Sie können ChatGPT aber auch bitten, sie durchzugehen, neu zu strukturieren, Feldtypen umzuformatieren und die Daten so aufzubereiten, dass Sie damit arbeiten können.
Die größte Einschränkung ist die Größe der Datensätze. Riesige Dateien mit Millionen von Zeilen können Sie nicht wirklich verarbeiten. Wie schon erwähnt, können Sie Dateien mit etwa 25 MB hochladen und 100.000 Datenzeilen recht problemlos verarbeiten. Außerdem gibt es ein Zeitlimit von 60 Sekunden: Braucht ChatGPT für die Verarbeitung länger, schlägt sie fehl.

Weitere Fähigkeiten von Advanced Data Analysis

ChatGPT bringt von Haus aus noch ein paar weitere bemerkenswerte Fähigkeiten mit.

  1. Statistische Analyse: Dazu gehören verschiedene statistische Tests und Analysen, etwa Hypothesentests, Korrelationsanalysen, Regressionsanalysen und aufwendigere statistische Modellierung.
  2. Machine Learning: Hier lassen sich Machine-Learning-Modelle erstellen und bewerten. Dazu gehören Datenaufbereitung, Feature Engineering, Modellauswahl, Training, Evaluierung und Vorhersagen. Das Thema ist so umfangreich, dass es eine eigene Behandlung verdient.
  3. Textanalyse: Bei Textdaten ist vieles möglich, darunter Textvorverarbeitung, Sentimentanalyse, Topic Modeling und andere Methoden der Verarbeitung natürlicher Sprache (NLP).

Fazit

Unser Streifzug durch die Datenanalyse zeigt, wie leistungsfähig ChatGPT in diesem Bereich ist und wie oft das unterschätzt wird. ChatGPT kommt mit komplexen Datensätzen wie den globalen Emissionen aus fossilen Brennstoffen von 1750 bis 2021 zurecht und erledigt anspruchsvolle Aufgaben in Statistik, Machine Learning und Textanalyse. Diese bemerkenswerte Vielseitigkeit lässt sich mit einfachen Prompts nutzen.

FAQs

  1. Wie geht ChatGPT mit fehlenden oder unvollständigen Daten in den analysierten Datensätzen um? ChatGPT lässt fehlende oder unvollständige Daten in der Regel entweder in der Analyse weg oder schätzt die fehlenden Werte mit Imputationsverfahren aus den vorhandenen Daten.
  2. Kann ChatGPT etwas über die Genauigkeit der Modelle sagen, die es für Vorhersagen oder Trendanalysen verwendet? Die Genauigkeit von Vorhersagemodellen wie linearer Regression oder ARIMA wird meist mit Kennzahlen wie R-Quadrat, dem mittleren quadratischen Fehler oder ähnlichen statistischen Maßen bewertet. Die genauen Methoden können je nach Kontext und Daten variieren.
  3. Wie bestimmt ChatGPT die Signifikanz von Korrelationen, die es bei der Datenanalyse findet? Für die Signifikanz von Korrelationen nutzt ChatGPT vermutlich statistische Tests, etwa Korrelationskoeffizienten nach Pearson oder Spearman, und beurteilt anhand von p-Werten, ob die gefundenen Zusammenhänge statistisch signifikant sind. So lassen sich Muster, Trends und Vorhersagen gründlich analysieren, und die Erkenntnisse aus der Analyse sind verlässlich.

Aus dem Englischen übersetzt: zum Originalbeitrag

Gestalten Sie die Zukunft Ihres Unternehmens mit KI

Tauchen Sie ein in unsere spannenden Workshops und rüsten Sie Ihr Team mit den Werkzeugen und dem Wissen aus, um im Zeitalter der KI führend zu sein.

Kontaktieren Sie uns
Scroll to top