86 lines
3.6 KiB
Markdown
86 lines
3.6 KiB
Markdown
## **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
|
|
|
|
<p style="text-align:center;margin:0">
|
|
</p>
|
|
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.
|
|
## **Dieser Code fügt deinem Simulationsmodell wichtige statistische Analysen hinzu, um die Unsicherheit und Verteilung der Ergebnisse zu verstehen.** |