Explorative Datenanalyse mit Julia

Feb 06 2023
Die Verwendung von VegaLite Exploratory Data Analysis (EDA) ist ein statistischer Ansatz zur Zusammenfassung und Visualisierung eines Datensatzes, um Erkenntnisse zu gewinnen und Muster, Beziehungen und Anomalien in den Daten zu entdecken. Es ist wichtig, diese Analyse durchzuführen, da wir uns die Daten genauer ansehen können, bevor wir uns für eine weitere Analyse der Daten oder deren Verwendung in unserem Projekt entscheiden.

verwendenVegaLite

Foto von Choong Deng Xiang auf Unsplash

Exploratory Data Analysis (EDA) ist ein statistischer Ansatz zur Zusammenfassung und Visualisierung eines Datensatzes, um Erkenntnisse zu gewinnen und Muster, Beziehungen und Anomalien in den Daten zu entdecken.

Es ist wichtig, diese Analyse durchzuführen, da wir uns die Daten genauer ansehen können, bevor wir uns für eine weitere Analyse der Daten oder deren Verwendung in unserem Projekt entscheiden. Es hilft uns bei Bedarf auch bei der Auswahl einer geeigneten Teilmenge der Daten.

Sie können auch fehlende Werte oder NaN-Werte (keine Zahl) identifizieren. Manchmal sind die Daten für eine weitere Analyse nicht geeignet oder wir können fehlende Werte oder Nullen ersetzen.

Es gibt verschiedene Ansätze zur explorativen Datenanalyse (EDA). Ich habe mehrere Ansätze aufgelistet, die ich für wichtig halte, obwohl es noch mehr gibt:

  1. Univariate Analyse:
  2. Dazu gehört die Analyse jeder Variablen, um deren Verteilung, zentrale Tendenz und Ausbreitung zu verstehen. Zu den Visualisierungen gehören: Histogramme, Dichtediagramme und Boxplots.
    • Dabei wird der Zusammenhang zwischen zwei Variablen analysiert. Zu den Visualisierungen gehören: Streudiagramme und Korrelationsmatrizen.
    • Dabei geht es darum, fehlende Werte in den Daten zu identifizieren und zu behandeln. Zu den Techniken können Imputation (Mittelwert, Median oder Moduswerte) oder möglicherweise KNN-Imputation gehören.
    • Dabei geht es darum, Ausreißer in den Daten zu identifizieren und zu behandeln. Zu den Techniken gehören die visuelle Überprüfung der Daten, die Verwendung statistischer Tests wie Z-Scores oder eines einfachen Box- und Whisker-Plots (Boxplot).
    • Inferenzstatistische Tests wie t-Tests, ANOVA-Tests usw. können verwendet werden, um Hypothesen über Beziehungen zwischen Variablen zu testen.

    Es ist wichtig, visuelle Darstellungen der Daten zu erstellen, die die Daten am besten erklären!

    Die Daten abrufen

    using Plots, DataFrames,  PlotThemes, VegaLite,  UrlDownload; gr()
    url = "https://raw.githubusercontent.com/NicJC/CarSales/main/CarS.csv"
    data = urldownload(url) |> DataFrame
    
           
                    

    Ich kann dafür eine Funktion schreiben

    fun(x) = ismissing(x) || (x isa Number && isnan(x) || isnothing(x)) ? 0 : xfun (generic function with 1 method)
    
           
                    

    fun(data)
    
           
                    

    ismissing(data)
    

    Ich erstelle eine Zusammenfassung der Daten

    describe(data)
    
           
                    

    Explorative Datenanalyse

    • Univariate Analyse

    using VegaLite
    data |>
    @vlplot(width=600,
        height=200,:bar, x={:Mileage, bin=true}, y="count()", 
        title="Histogram of Mileage by Make of vehicle",
        config={
            title={
                color=:black
            }}, color =:Make )
    
           
                    

    using VegaLite
    data |> @vlplot(
        width=500,
        height=200,
        :area,
        transform=[
            {density="Mileage",bandwidth=0.2}
        ],
       x={"value:q", title="Mileage"},
        y= {"density:q",bin=true}, title="Density plot of Mileage of vehicles",
        config={
            title={
                color=:black
            }} 
    )
    
           
                    

    using VegaLite
    data |> @vlplot(
        width=900,
        height=300,
        mark={:boxplot, extent=1.5},
        x="CostPrice:o",
        y={:StockID, axis={title="Stock ID"}}, 
        title="Box plots of Stock IDs of vehicles",
        config={
            title={
                color=:black
            }} 
    )
    
           
                    

    Streudiagramm

    using VegaLite
    data |>  
    @vlplot(width=700,
        height=220,:point,
        x=:Model,
        y=:Mileage,
        title="Scatter Plot of Cars",
        config={
            title={
                color=:black
            }}, 
        color=:Make)
    
           
                    

    using VegaLite
    data |>
    @vlplot(
        repeat={
            row=[:CostPrice, :StockID, :Mileage],
            column=[:Mileage, :StockID, :CostPrice]
        }
    ) +
    @vlplot(
        :point,
        selection={
            brush={
                type=:interval,
                resolve=:union,
                on="[mousedown[event.shiftKey], window:mouseup] > window:mousemove!",
                translate="[mousedown[event.shiftKey], window:mouseup] > window:mousemove!",
                zoom="wheel![event.shiftKey]"
            },
            grid={
                type=:interval,
                resolve=:global,
                bind=:scales,
                translate="[mousedown[!event.shiftKey], window:mouseup] > window:mousemove!",
                zoom="wheel![!event.shiftKey]"
            }
        },
        x={field={repeat=:column}, type=:quantitative},
        y={field={repeat=:row}, type=:quantitative},
        color={
            condition={
                selection=:brush,
                field=:Make,
                type=:nominal
            },
            value=:grey
        }
    )
    
           
                    

    using VegaLite
    data |>
    @vlplot(repeat={column=[:CostPrice, :StockID, :Mileage]}) +
    @vlplot(
        :bar,
        x={field={repeat=:column},bin=true,type=:quantitative},
        y="count()",
        color=:Make
    )
    
           
                    
    using VegaLite data |> @vlplot(width=500, height=200, :circle, x={:CostPrice, bin={maxbins=10}}, y={:CostPrice, bin={maxbins=10}}, title="Binned Scatterplot: Cost price of vehicles", config={ title={ color=:black }} , size="count()" )

    Es ist sehr wichtig, eine explorative Datenanalyse durchzuführen, da Sie dadurch auf lange Sicht Zeit sparen können, da die Daten möglicherweise zahlreiche Korrekturmaßnahmen benötigen, bevor Formeln auf die Daten oder für Geschäftsanalysezwecke angewendet werden können.

    Fehlende Werte sind immer ein großes Problem. Wie wird Ihr Unternehmen mit fehlenden Daten umgehen? Werden die Regisseure mit der Mittelzurechnung zufrieden sein oder wäre es besser, die gesamte Beobachtung zu entfernen? Diese Entscheidungen wirken sich auf das Endergebnis der Datenanalyse oder des datenwissenschaftlichen Projekts aus.

    Ich hoffe, Ihnen hat der Artikel gefallen!

    Vernetzen Sie sich auf Linkedin oder Github oder folgen Sie mir für weitere Artikel über Julia, R, Python und angewandte Statistiken!