import os import pandas as pd import numpy as np # location will help to open files in the same directory as the py-script __location__ = os.path.realpath( os.path.join(os.getcwd(), os.path.dirname(__file__))) df = pd.read_csv(os.path.join(__location__, 'vl3-standardfehler.csv')) # Dataframe print(df) print(df.sum()) sums = df.sum() print('Summierte Häufigkeit: ', sums['freq']) # Calculate Mean, respecting frequencies rowSum = 0 for index, row in df.iterrows(): rowSum = rowSum + row.x * row.freq mean = rowSum / sums.freq print("mean: ", mean) # Geschätzte Populationsvarianz, unter Beachtung der Häufigkeiten # Sample Variance: ^σ² = (1 / n - 1) * Σ(freq*(x - mean)²) variancePart1 = (1 / (sums.freq - 1)) summeQuadrierteAbweichungen = 0 for index, row in df.iterrows(): summeQuadrierteAbweichungen = summeQuadrierteAbweichungen + (row.freq * (row.x - mean)**2) print(row['x'], row['freq'], 'summe²abweichungen: ', summeQuadrierteAbweichungen) variance = variancePart1 * summeQuadrierteAbweichungen print("pop variance: ", variance) # √(^σ²) standardDev = variance**(1/2) # √n = n^1/2 print("pop Standardabweichung: ", standardDev) # √(ŝd / freq) standardfehler = standardDev / sums.freq**(1/2) # √n = n^1/2 print("Standardfehler des Mittelwerts: ", standardfehler) # "Bonus": # Mittelwertsverteilung bei 2 Würfeln print() import random i=0 sum=0 # Augen: (0,1,)2,3,4,5,6,7,8,9,10,11,12 Häufigkeitsliste: freqList = [0,0,0,0,0,0,0,0,0,0,0,0,0] while i < 1000: tempSum = 0 wuerfel1 = random.randrange(1,7) # 1. Würfel {1,2,3,4,5,6} wuerfel2 = random.randrange(1,7) # 2. Würfel {1,2,3,4,5,6} tempSum = tempSum + wuerfel1 + wuerfel2 if tempSum == 2: freqList[2] = freqList[2] + 1 elif tempSum == 3: freqList[3] = freqList[3] + 1 elif tempSum == 4: freqList[4] = freqList[4] + 1 elif tempSum == 5: freqList[5] = freqList[5] + 1 elif tempSum == 6: freqList[6] = freqList[6] + 1 elif tempSum == 7: freqList[7] = freqList[7] + 1 elif tempSum == 8: freqList[8] = freqList[8] + 1 elif tempSum == 9: freqList[9] = freqList[9] + 1 elif tempSum == 10: freqList[10] = freqList[10] + 1 elif tempSum == 11: freqList[11] = freqList[11] + 1 elif tempSum == 12: freqList[12] = freqList[12] + 1 sum = sum + tempSum i = i+1 print("Mittelwert bei 2 Würfeln: ", sum / 1000) print(freqList)