# Laden der benötigten Pakete in die Julia-Umgebung: using CSV, DataFrames using Statistics, StatsBase using Plots, StatsPlots using Distributions, HypothesisTests using Query using ANOVA, GLM # Dateiname: dateiname = "Rotwein.csv" verzeichnis = pwd() datei = joinpath(verzeichnis, dateiname) # Einlesen der CSV-Datei: Rotwein = CSV.read(datei, header = 1, delim = ';', decimal = ',', normalizenames = true ) # das MLR-Modell schätzen: MLR_Modell = lm(@formula(quality ~ alcohol + volatile_acidity + citric_acid), Rotwein) show(MLR_Modell) println("\n") # Das Bestimmtheitsmaß schätzen: println("Bestimmtheitsmaß: ", round(r2(MLR_Modell), digits = 4), "\n") # Vorhersage schätzen: Vorhersage = round.(predict(MLR_Modell), digits = 1) # Rotwein um Vorhersage ergänzen: Rotwein[!,:Note_Vorhersage] = Vorhersage # Die Differenz zwischen beobachteter und geschätzter Q-Note berechnen: delta = round.(Vorhersage - Rotwein[!,:quality], digits = 1) # Rotwein um die Differenz ergänzen: Rotwein[!,:delta] = delta show(Rotwein[:,12:14]) # Grafische Darstellung: plot(Rotwein[!,:quality], Rotwein[!,:delta], seriestype = :scatter, title = "Abweichung geschätzter zu beobachteter Qualitätsnote", leg = false, xlabel = "Qualitätsnote", ylabel = "Differenz", smooth = true) # Schätzung der Qualitätsnoten für neue Daten: Alkohol = [12.2, 10.4, 11.4, 9.8] FS = [0.4, 0.6, 0.34, 0.7] Z = [0.44, 0.17, 0.45, 0.25] NeueDaten = DataFrame(alcohol = Alkohol, volatile_acidity = FS, citric_acid = Z) Ergebnis = round.(predict(MLR_Modell, NeueDaten), digits = 1) println("\n", "\n", "Schätzung der Weinqualitätsnote: $Ergebnis")