Gibt es Beispiele für R-Pakete, die sich zwischen den Versionen dramatisch ändern, sodass die Ergebnisse einer statistischen Funktion erheblich voneinander abweichen?

8

Ich versuche zu verstehen, wie Leute R-Pakete verwenden und habe mich gefragt, ob es dokumentierte Fälle gibt, in denen R-Pakete unterschiedliche Antworten hervorgebracht haben.

Klarstellung: Die Motivation für diese Frage liegt in meiner Anstrengung, das Ziel zu erreichen, die Bedeutung der Herkunft in den Analysemethoden zu verstehen und wie sie reproduzierbare Forschung erleichtert. Während R derzeit in der Wissenschaftsgemeinschaft eine große Rolle spielt und R-Pakete in CRAN ohne detaillierte Informationen [insbesondere Versionsnummern] versioniert sind, könnte jemand, der versucht, ein Werk in Zukunft zu reproduzieren, zu einem anderen Schluss kommen als das Originalwerk ( auch mit den Originaldaten).

Beispiel: In einem Artikel von John Doe heißt es: "Wir haben R 2.3.1 verwendet und glmulti verpackt, um unsere Modelle anzupassen." In 10 Jahren könnte jemand eine neue Version von glmulti verwenden (niemand weiß, welche Version im Original verwendet wurde), was zu einer ganz anderen Schlussfolgerung führen könnte. Meine Frage: Gibt es bereits Beispiele dafür? Das Paket der Version 2 oder R führt zu einem ganz anderen Ergebnis als Version 1.

Maiasaura
quelle
1
Die Frage ist ein bisschen vage. Kannst du es ein bisschen mehr fokussieren?
Dirk Eddelbuettel
Ja, ich habe die Frage geklärt.
Maiasaura

Antworten:

6

Ich hatte Probleme mit Paket glmnetüber Versionen. Wenn ich mich gut erinnere, ging es von Version 1.5 auf 1.6, aber ich bin vielleicht ein bisschen daneben.

Die Ersteller / Betreuer von Paketen haben die Reihenfolge der Klassen ihrer Objekte geändert (so wurde es c("lognet", "glmnet")statt c("glmnet", "lognet")- oder es könnte umgekehrt gewesen sein). Natürlich haben sie auch alle ihre S3-Funktionen geändert, um dies richtig zu handhaben (z predict.lognet. B. ).

Das Problem dabei war: Ein Objekt, das Sie mit einer alten Version von erstellt hatten, glmnetwar nicht mit den neuen Funktionen kompatibel (da der Versand umgekehrt funktionierte). Die meisten Leute wären nicht an diesem Ort (wer speichert ein glmnetObjekt für die spätere Verwendung?), Aber ich war es.

Wohlgemerkt: Dies ist ein sehr leistungsfähiges Paket, das von extrem intelligenten Leuten entwickelt wurde, so dass es jedem passieren kann :-)

Nick Sabbe
quelle
1
Um zu beantworten, wer Objekte speichert: Das tue ich. :)
Iterator
8

Dies variiert von Paket zu Paket, aber die allgemeine Antwort lautet ja . Die Ausgaben können variieren und auch die grundlegende Verwendung (Eingabe- / Ausgabeargumente). Deshalb dokumentiere ich bei einer wichtigen Analyse immer gerne, welche Versionen mit version()und verwendet wurden sessionInfo(). Selbst wenn sich etwas ändert, bleiben alte Versionen in CRAN erhalten, sodass Sie die alten Versionen bei Bedarf erhalten können.

John Colby
quelle
1
+1 Toller Rat. Ich war zuvor in einer R-Tutorial-Klasse, in der der Code des Lehrers mit einer älteren Version von R geschrieben wurde als die Computer des Campus-Labors. Das Debuggen dauerte 30 Minuten, um herauszufinden, was sich in den Punktversionen geändert hat und wie sich der Kurscode ändern musste modifiziert sein. Während einige Software der Abwärtskompatibilität vielleicht zu gehorsam ist, ist mir nie
aufgefallen
1
@JohnColby ist korrekt - es ist sehr wichtig, dass Sie Ihr Setup reproduzieren können, einschließlich der Versionsnummern des Pakets und der Dinge, die häufig übersehen werden, wie z. B. die an Funktionen übergebenen Argumente (ich versuche immer benannte Argumente zu verwenden), die Zufallszahl Samen, die verschiedenen externen Abhängigkeiten und mehr. Die Frage, ob ein Paket die Ergebnisse beeinflusst hat, lautet Ja und ist umfassender als erwartet: Selbst einfache E / A-Pakete können die Ergebnisse beeinflussen, wenn Sie Daten verlieren. :) Sie können Daten verlieren oder die Daten können auf irgendeine Weise geändert werden, wenn sich das Standardverhalten beim Laden von Dateien geändert hat.
Iterator
3

Nur ein kurzer Punkt:

  • Das R-Paket-Ökosystem ist sehr groß, und es liegt wirklich am einzelnen Autor, ob er die Abwärtskompatibilität aufrechterhalten möchte.
  • Ich persönlich hatte keine Probleme mit Basis-R-Paketen, die sich in einer Weise geändert haben, die zu Problemen mit der Abwärtskompatibilität führte. Im Allgemeinen ist dies ein Grund, warum ich Basis-R-Pakete bevorzuge.
Jeromy Anglim
quelle
2

Nach meiner Erfahrung verursachen die meisten Änderungen die üblichen Probleme beim Rechnen / Programmieren. Funktionen werden veraltet, Argumente sind unterschiedlich usw. Zum Beispiel ist mir bereits passiert, dass Code nicht mehr funktioniert, weil für einige Funktionen ein zusätzliches Argument erforderlich ist. Dies kann ärgerlich sein, aber das Problem ist offensichtlich und normalerweise nicht zu schwer zu lösen.

Einige Pakete könnten in dieser Hinsicht besser gepflegt werden, aber es gelten die üblichen „Regeln“ für freie Software: Sie müssen sehen, dass sie von Freiwilligen erstellt werden - oft von Statistikern, die andere Aufgaben haben und keine hauptberuflichen professionellen Softwareentwickler - und ob Qualität und Qualität Zuverlässigkeit ist Ihnen wichtig. Sie sollten alles mit einer Versionsnummer wie 0.x vermeiden und nur ausgereifte Pakete mit einer aktiven Community von Benutzern und Entwicklern verwenden.

Ich bin noch nie auf ein Update gestoßen, das zu heimtückischen Änderungen der statistischen Ergebnisse führen würde (z. B. Umschalten der Standardmethode in einer bestimmten Funktion, Ändern des Freiheitsgrads und des p-Werts bei oberflächlich ähnlichen Ergebnissen). Ich denke, es muss passieren, zumindest durch Fehlerkorrekturen (aber ich habe irgendwo gelesen, dass Microsoft tatsächlich Code in seine neuen Produkte eingefügt hat, um einige ältere Fehler zu emulieren, um die Kompatibilität mit Programmen, die von diesen Fehlern abhängen, nicht zu beeinträchtigen). Vielleicht können uns einige Betreuer einen Einblick geben, wie diese Dinge für ihre Pakete gehandhabt werden.

Gala
quelle