3.6 KiB
Um die statistischen Analysen in dein bestehendes Modell einzufügen, darunter die Berechnung von Konfidenzintervallen und das Erstellen von Histogrammen zur Visualisierung der Endkompetenzwerte, kannst du den Code wie folgt erweitern:
Ergänzung zum Code
Nach der Simulation und grundlegenden Analyse können die folgenden Schritte implementiert werden:
Berechnung von Konfidenzintervallen für den mittleren Kompetenzwert am Ende der Simulationsperiode.
- Erstellung von Histogrammen der Endkompetenzwerte, um die Verteilung zu visualisieren.
Hier ist der vollständige Code mit den zusätzlichen statistischen Analysen:
python
Copy code import numpy as np import pandas as pd import matplotlib.pyplot as plt import scipy.stats as stats
Definiere die Startbedingungen und Parameter
start_kompetenz = 1.25 quartale = 12 bereitschafts_std = 0.1 bereitschafts_steigerung_phase = { 'Anpassung': -0.1, 'Verfestigung': 0.2, 'Wachstum': 0.5, 'Plateau': 0.7 }
Funktionen zur Anpassung der Bereitschaft, Motivation und Neugier
def anpassung_der_bereitschaft(aktuelles_quartal): if aktuelles_quartal <= 4: return bereitschafts_steigerung_phase['Anpassung'] elif 5 <= aktuelles_quartal <= 6: return bereitschafts_steigerung_phase['Verfestigung'] elif 7 <= aktuelles_quartal <= 10: return bereitschafts_steigerung_phase['Wachstum'] else: return bereitschafts_steigerung_phase['Plateau']
def motivation(aktuelles_quartal): if aktuelles_quartal == 8: return -0.3 elif aktuelles_quartal == 12: return 0.4 return 0
def neugier(aktuelles_quartal, start_kompetenz): if start_kompetenz < 5: return 0.2 if aktuelles_quartal <= 6 else -0.1 return 0.1 if aktuelles_quartal <= 6 else -0.05
Simulation der Kompetenzentwicklung
simulations_durchläufe = 1000 ergebnisse = pd.DataFrame()
for durchlauf in range(simulations_durchläufe): kompetenz = [start_kompetenz] for quartal in range(1, quartale + 1): steigerung = anpassung_der_bereitschaft(quartal) + motivation(quartal) + neugier(quartal, start_kompetenz) bereitschaft = np.random.normal(steigerung, bereitschafts_std) neue_kompetenz = np.clip(kompetenz[-1] + bereitschaft, 1, 10) kompetenz.append(neue_kompetenz) ergebnisse[f'Quartal_{durchlauf}'] = kompetenz
Berechnung von Konfidenzintervallen
end_kompetenzen = ergebnisse.iloc[-1] mittelwert = end_kompetenzen.mean() std_abweichung = end_kompetenzen.std() konfidenzintervall = stats.norm.interval(0.95, loc=mittelwert, scale=std_abweichung / np.sqrt(len(end_kompetenzen)))
Visualisierung von Histogramm der Endkompetenz
plt.figure() plt.hist(end_kompetenzen, bins=10, color='blue', alpha=0.7) plt.title('Histogramm der Endkompetenzwerte') plt.xlabel('Kompetenzniveau') plt.ylabel('Häufigkeit') plt.grid(True) plt.show()
Ausgabe der Analyseergebnisse
print("Durchschnittliche Endkompetenz:", mittelwert) print("Standardabweichung der Endkompetenz:", std_abweichung) print("95% Konfidenzintervall für die mittlere Endkompetenz:", konfidenzintervall)
Erklärung
- Konfidenzintervalle: Das 95% Konfidenzintervall gibt an, wo die wahre mittlere Endkompetenz mit 95% Sicherheit liegt. Es wird unter der Annahme berechnet, dass die Endkompetenzen normalverteilt sind.
- Histogramm: Dieses visualisiert die Verteilung der Endkompetenzwerte aller Simulationsdurchläufe, was hilft, die Form der Verteilung zu erkennen und auf Anomalien zu prüfen.