{"id":14444,"date":"2025-08-13T13:37:00","date_gmt":"2025-08-13T11:37:00","guid":{"rendered":"http:\/\/www.soeren-in-norwegen.net\/blog\/?p=14444"},"modified":"2025-04-27T15:16:22","modified_gmt":"2025-04-27T13:16:22","slug":"kevin-bacon-anhang-a2-reproduzierbarkeit-11-schwerwiegender-fehler-bei-den-damaligen-ausgaengen","status":"publish","type":"post","link":"http:\/\/www.soeren-in-norwegen.net\/blog\/2025\/08\/kevin-bacon-anhang-a2-reproduzierbarkeit-11-schwerwiegender-fehler-bei-den-damaligen-ausgaengen\/","title":{"rendered":"Kevin Bacon &#8211; Anhang A2 &#8211; Reproduzierbarkeit 11: schwerwiegender Fehler bei den damaligen Ausgaengen (Teil 1)"},"content":{"rendered":"<p><a href=\"http:\/\/www.soeren-in-norwegen.net\/blog\/?p=14406\" target=\"_blank\" rel=\"noopener\">Letztes Mal<\/a> reproduzierte ich die &#8222;Aussteiger&#8220;. Dabei benutzte ich aber eine etwas andere Herangehensweise als damals. Ich erwaehnte nur kurz, dass die damalige Herangehensweise etwas &#8222;haarig&#8220; war in Bezug auf Selbstreferenzen, da die entsprechenden Kurven nicht nur und ausschlieszlich am Ende des (seitenabhaengigen) Linknetzwerks &#8222;aussteigen&#8220;, sondern das auch schon auf fruehen Linkleveln tun k\u00f8nnen \u2026 um dann u.U. auch wieder &#8222;reaktiviert&#8220; zu werden auf nachfolgenden Linkleveln.<br \/>\nWieauchimmer, da beide Herangehsenweisen zur Ermittling der &#8222;Aussteiger&#8220; bei den anderen Gr\u00f8szen von Interesse zum selben Ergebnis fuehren, und auch das Diagramm der Selbstreferenzen auf den ersten Blick nicht all zu unterschiedlich war, habe ich mich darum zunaechst gar nicht weiter gekuemmert und nur mit \u2026<\/p>\n<blockquote><p>[d]eswegen sind die roten Balken im linke[n] Diagramm hier nicht identisch zum damaligen Diagramm<\/p><\/blockquote>\n<p>\u2026 kommentiert.<\/p>\n<p>Natuerlich hat mir das keine Ruhe gelassen, und ich wollte schauen wie grosz die Diskrepanz ist. \u2026 \u2026 \u2026 Und ach du Schreck! \u2026 da hab ich ja einen wirklich ernstzunehmenden Fehler gemacht.<br \/>\nAber der Reihe nach und heute nur mit den 2020 Daten denn hier muss nix in dem Sinne reproduziert werden, denn ich will ja den Fehler diskutieren.<\/p>\n<p>Zur Erinnerung: die neue Herangehensweise findet den &#8222;Ausgang&#8220; derart, dass vom Ende einer Kurve, in Richtung Anfang gehend, geschaut wird, bei welchem Linklevel der Wert der Kurve zum ersten Mal UNgleich Null ist. Die damalige Herangehensweise hingegen schaute vom Anfang einer Kurve, in Richtung Ende gehend, bei welchem Linklevel der Wert der Kurve zum ersten Mal GLEICH Null wird.<br \/>\nWie gesagt, ist das, von den Selbstreferenzen abgesehen, kein Problem, da alle anderen Gr\u00f8szen von Interesse &#8222;durchgehende&#8220; Kurven haben und beide Methoden das selbe Ergebnis liefern. Aber es geht ja um genau diese Selbstreferenzen.<\/p>\n<p>Hier sieht man den Unterschied der Aussteiger-per-Linklevel-Kurven-der-Selbstreferenzen wenn man das wie damals macht (schwarze Punkte, vorwaerts nach der erste Null suchend) bzw. besser (rote Quadrate, rueckwaerts nach dem ersten Wert der ungleich Null ist suchend):<\/p>\n<p><a href=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/226_self_references_exits_forward_vs_backward.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-14501 size-full\" src=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/226_self_references_exits_forward_vs_backward.png\" alt=\"\" width=\"601\" height=\"453\" \/><\/a><\/p>\n<p>Achtung: Damals hatte ich das Linklevel beim dem zum ersten Mal null Selbstreferenzen auftreten als &#8222;Ausgang&#8220; deklariert, waehrend es nach der neuen Methode das Linklevel direkt davor ist was ja noch einen Wert ungleich null hat. Die Punkte von damals wurden dahingehend um ein Linklevel nach Links verschoben; das gilt auch fuer alle folgenden Diagramme.<\/p>\n<p>Das scheint anfangs qualitativ (!) recht gut uebereinzustimmen (davon abgesehen, dass ich damals &#8222;flache&#8220; Kurven nicht extra bedacht hatte). Quantitativ gibt&#8217;s zwar zum Teil zahlentechnisch grosze Unterschiede die man wg. der logarithmischen Skala (fast) nicht wahr nimmt, das ist aber nicht so wichtig, denn alles was &#8217;n Unterschied von &#8217;nem Faktor weniger als &#8217;ne Gr\u00f8szenordnung hat ist schon OK.<br \/>\nWas mich zu Werten ueber LL<sub>10<\/sub> bringt; denn ab dort erhaelt man mit der (neuen) Rueckwaertsmethode ca. &#8217;ne Gr\u00f8szenordnung mehr &#8222;Ausgaenge&#8220; als mit der (alten) Vorwaertsmethode.<\/p>\n<p>Aber das ist NICHT der schwerwiegende Fehler, denn das ist erklaerbar mittels &#8222;Reaktivierungen&#8220;. Es passiert dass eine Kurve die schon &#8222;ausgestiegen&#8220; ist, auf einem h\u00f8heren Linklevel &#8222;reaktiviert&#8220; wird. Das ist dann meistens nur das eine einzige Linklevel (oder vllt. auch mal zwei oder drei), auf dem pl\u00f8tzlich nochmal eine Selbstreferenz auftaucht. Das fuehrt dann natuerlich zu einem weiteren &#8222;Ausgang&#8220; (es ist halt nur nicht der erste &#8222;Ausgang&#8220; fuer eine gegebene Kurve) der von der Rueckwaertsmethode erkannt wird, wenn es denn der Letzte ist.<br \/>\nDamit die Vorwaertsmethode so weit hinten einen &#8222;Ausgang&#8220; registriert, muss die entsprechende Kurve ohne Unterbrechung mindestens eine Selbstreferenz auf jedem Linklevel bis dorthin gehabt haben. Eine so lange ununterbroche Kette von Selbstreferenzen zu haben hat natuerlich eine sehr kleine Wahrscheinlichkeit, weswegen die Vorwaertsmethode bspw. auf LL<sub>35<\/sub> nur einen &#8222;Ausgang&#8220; registriert, waehrend die Rueckwaertsmethode 45 &#8222;Ausgaenge&#8220; aufspuert (wovon der eine von der Vorwaertsmethode darunter ist).<br \/>\nIn anderen Worten: die Diskrepanz hat eine Erklaerung die aus der Natur der unterschiedlichen Methoden kommt, und insb. weil es sich hierbei um eher kleine absolute Zahlen handelt, macht mich der Unterschied nicht wirklich stutzig.<\/p>\n<p>Nun arbeite ich aber an der Reproduzierbarkeit und da ist&#8217;s kontraproduktiv die Methode zu aendern (auch wenn es die bessere Methode ist). Das wurmte mich und deswegen setzte ich mich ran und hackte kurz die Vorwaertsmethode zusammen. Weil ich gute Vorarbeit geleistet habe ging das recht fix. \u2026 \u2026 \u2026 Und hier ging der &#8222;Aerger&#8220; los.<\/p>\n<p>Alles fing damit an, dass ich mittlerweile von &#8222;flachen&#8220; Kurven (also solchen die keine einzige Selbstreferenz haben) gelernt hatte. Damals hatte ich die ueberhaupt nicht beachtet. Nun wollte ich die aber mit unterbringen. Deswegen muss ich nochmal kurz auf die Rueckwaertsmethode zu sprechen kommen und erklaeren warum die der Vorwaertsmethode ueberlegen (und vorzuziehen) ist um die &#8222;Ausgaenge&#8220; zu bestimmen.<\/p>\n<p>Es gibt bei der Rueckwaerrtsmethode nur zwei Bedingungen und alles andere folgt zwingend aus denen. Erstens: geh rueckwaerts, Zweitens: der erste Wert ungleich Null ist der Ausgang. Simpler als das geht&#8217;s nicht. Und wenn man mal nachdenkt ist die erste Bedingung keine richtige Bedingung denn man kann eine Dynamik nicht erforschen, wenn man sich nicht bewegt; man braucht also zwingend eine &#8222;Bewegungsrichtung&#8220;. Wichtig ist nur zu wissen, wann man stoppen muss (wann man also das gefunden hat wonach man sucht). Ich sage jetzt also mal, dass es nur EINE Bedingung gibt \u2026 einfacher geht&#8217;s nicht.<br \/>\nMan sieht leicht, dass da automatisch der &#8222;wahre Ausgang&#8220; rausfaellt, denn bei der Rueckwaertsmethode muss man sich nicht drum kuemmern ob eine Kurve mehrere vorherige &#8222;Ausgaenge&#8220; hat und dann nochmal &#8222;reaktiviert&#8220; wird. Auszerdem folgt automatisch dass eine Kurve flach ist wenn man bis LL<sub>0<\/sub> kommt und kein einziger Wert ueber Null liegt.<\/p>\n<p>Nun zurueck zur Vorwaertsmethode; im Namen liegt bereits die &#8222;Bewegungsrichtung&#8220;, womit das gegessen ist. Oben schrieb ich, dass ich schaute, wann der erste Wert Null wird als &#8222;Ausgangsbedingung&#8220;. Das alleine ist zunaechst eine genauso simple Regel aehnlich bei der Rueckwaertsmethode. Die ist aber leider nur notwendig und nicht hinreichend. Insb. dann wenn man flache Kurven unterscheiden will, denn bei denen liegt ja bereits auf LL<sub>0<\/sub> der Wert Null vor \u2026 ich kann aber nicht entscheiden ob eine Kurve flach ist, ohne durch alle Linklevel durchgegangen zu sein.<br \/>\nDeswegen muss man eine zweite Bedingung anfuehren und die Erste etwas modifizieren: ein &#8222;Ausgang&#8220; liegt vor, wenn der Wert auf einem gegebenen Linklevel UNgleich Null und der Wert auf dem naechsten (!) Linklevel GLEICH Null ist. Kommt man am Ende aller Linklevel an und beide Bedinungen lagen nie gleichzeitig vor, hat man (automatisch) eine flache Kurve (fuer die die &#8222;gleich Null&#8220; Bedingung ueberall gilt).<\/p>\n<p>Damit erhaelt man dieses Diagramm:<\/p>\n<p><a href=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/227_self_references_exits_forward_value_at_LL_not_at_next.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-14502 size-full\" src=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/227_self_references_exits_forward_value_at_LL_not_at_next.png\" alt=\"\" width=\"601\" height=\"453\" \/><\/a><\/p>\n<p>Das sieht auf den ersten Blick ganz gut aus. Es gibt ein rotes Quadrat bei LL<sub>minus 1<\/sub> fuer die flachen Kurven und deswegen stimmen die Werte bei LL<sub>0<\/sub> nicht ueberein (denn frueher hatte ich beides in LL<sub>0<\/sub> zusammengefasst). Das ist also OK \u2026 Aber Moment mal! Wieso findet die neue Vorwaertsmethode einen Wert bei LL<sub>27<\/sub> (und ein paar anderen Linkleveln) die alte aber nicht? Und ueberhaupt scheinen die schwarzen Punkte und Quadrate etwas gegeneinander verschoben zu sein! (Das sieht man bei linearer Ordinate deutlich deutlicher). Beides sollte nicht vorkommen, ich muss hier also was &#8222;falsch&#8220; machen \u2026 Hinweis: ich habe damals was (maechtig) falsch gemacht.<\/p>\n<p>Also suchte ich nach dem alten Code \u2026 und konnte den nicht finden. Ich bin mir ziemlich sicher, dass der irgendwo ist, aber der alte Code ist so ein Saustall (was ja die Motivation fuer den Reproduktionsteil des ganzen Projekts ist, weil ich eben auch den Code ordentlich machen wollte, damit ich das publizieren kann), dass ich den entsprechenden Teil nicht mittels Schlagwortsuche gefunden hab und ich wollte nicht durch mehrere tausend Linien Code lesen. Auszerdem gibt es eine gewisse Wahrscheinlichkeit, dass ich den tatsaechlich gel\u00f8scht habe \u2026 das liegt an einer gewissen Eigenheit meines <em>Modus Operandi<\/em>, aber da geh ich jetzt nicht naeher drauf ein.<\/p>\n<p>Also ueberlegte ich was ich damals gemacht haben k\u00f8nnte und zum Glueck war mein (neuer) Code jetzt &#8222;gut sortiert&#8220; und mittels nur einer winzigen Aenderung konnte ich die &#8222;Wert auf einem gegebenen Linklevel muss UNgleich Null&#8220;-Bedingung rausschmeiszen \u2026 denn an die hatte ich damals ja gar nicht gedacht. Es bleibt also nur &#8222;Wert auf dem naechsten Linklevel muss GLEICH Null sein&#8220; uebrig. Und siehe da \u2026<\/p>\n<p><a href=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/228_self_references_exits_forward_JUST_no_value_at_next_LL.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-14503 size-full\" src=\"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-content\/uploads\/228_self_references_exits_forward_JUST_no_value_at_next_LL.png\" alt=\"\" width=\"601\" height=\"453\" \/><\/a><\/p>\n<p>\u2026 das passt \u2026 Hurra! Also auszer von den Werten bei LL<sub>minus 1<\/sub> und LL<sub>0<\/sub> abgesehen, aber die stimmen in der Summe mit dem alten Wert bei LL<sub>0<\/sub> ueberein. Super! Reproduziert \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 aber hmmmm \u2026 hier stimmt doch was nicht! \u2026 \u2026 \u2026 Der Beitrag ist nur jetzt schon so lang, sodass ich den Rest der Diskussion auf&#8217;s naechste Mal verschiebe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Letztes Mal reproduzierte ich die &#8222;Aussteiger&#8220;. Dabei benutzte ich aber eine etwas andere Herangehensweise als damals. Ich erwaehnte nur kurz, dass die damalige Herangehensweise etwas &#8222;haarig&#8220; war in Bezug auf Selbstreferenzen, da die entsprechenden Kurven nicht nur und ausschlieszlich am Ende des (seitenabhaengigen) Linknetzwerks &#8222;aussteigen&#8220;, sondern das auch schon auf fruehen Linkleveln tun k\u00f8nnen \u2026 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/14444"}],"collection":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/comments?post=14444"}],"version-history":[{"count":8,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/14444\/revisions"}],"predecessor-version":[{"id":14504,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/14444\/revisions\/14504"}],"wp:attachment":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/media?parent=14444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/categories?post=14444"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/tags?post=14444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}