Bootstrapping

Code-Stücke können hier veröffentlicht werden.
Antworten
Code1010
User
Beiträge: 2
Registriert: Sonntag 1. November 2020, 11:59

Hallo,

ich habe eine Frage zu einer Bootstrapping Aufgabe

Aufgabe:
Schreiben Sie eine Funktion,

die eine Liste von Zahlen als Eingabe übernimmt
die ihren Mittelwert berechnet
die den Mittelwert 1000 Mal wiederholt/bootstrapped
und schließlich eine eine Liste mit drei Elementen zurückgibt ( den Mittelwert sowie die untere und obere Grenze des 95%-Konfidenzintervalls des bootstrapped-Mittelwerts).

Ich weiß nicht wie ich das angehe.

Vielen Dank im Voraus
Benutzeravatar
__blackjack__
User
Beiträge: 13144
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Code1010: Wo liegt denn das konkrete Problem? Und wie ist Dein Kenntnisstand a) in Python und b) bezüglich der Mathematik (Mittelwert, Bootstrapping-Verfahren, Konfidenzintervall, …). Sollst/darfst Du externe Bibliotheken verwenden?

So ganz allgemein wäre der Anfang das Tutorial in der Python-Dokumentation.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Code1010
User
Beiträge: 2
Registriert: Sonntag 1. November 2020, 11:59

meine Idee war

def bootstrap(input_list):
output_list = []
for i in range(1000):
data = df.sample(n=len(df),replace=True)
output_list.append(pearsonr(data)[0])
mean = sum(output_list) / len(output_list)
lower_bound = round(np.percentile(output_list,2.5),2)
upper_bound = round(np.percentile(output_list,97.5),2)
return [mean, lower_bound, upper_bound]

example_list = [3,4,7,3,2,6]
bootstrap(example_list)
Benutzeravatar
__blackjack__
User
Beiträge: 13144
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Code1010: Wo wird denn da etwas mit `input_list` gemacht? Wo kommen`df` und `np` her und welche Werte haben die? Und warum machst Du nichts mit dem Rückgabewert der Funktion?
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten