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.
Antworten:
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")
stattc("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 (zpredict.lognet
. B. ).Das Problem dabei war: Ein Objekt, das Sie mit einer alten Version von erstellt hatten,
glmnet
war nicht mit den neuen Funktionen kompatibel (da der Versand umgekehrt funktionierte). Die meisten Leute wären nicht an diesem Ort (wer speichert einglmnet
Objekt 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 :-)
quelle
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 wurdensessionInfo()
. Selbst wenn sich etwas ändert, bleiben alte Versionen in CRAN erhalten, sodass Sie die alten Versionen bei Bedarf erhalten können.quelle
Nur ein kurzer Punkt:
quelle
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.
quelle