統計関数の結果が大幅に異なるようなバージョン間で劇的に変化するRパッケージの例はありますか?


8

私は人々がRパッケージをどのように使用するかを理解しようとしていて、Rパッケージが異なる答えを出した文書化されたケースがあるかどうか疑問に思っていました。

明確化:この質問の背後にある動機は、分析方法における来歴の重要性を理解し、それが再現性のある研究をどのように促進するかを理解するという目標に私が関わってきた取り組みから来ています。現在Rは科学コミュニティで大きく、RパッケージはCRANでバージョン管理されていますが、詳細な情報(特にバージョン番号)はありませんが、将来的に一連の作品を複製しようとすると、元の作品(元のデータでも)。

例:John Doeによる論文では、「R 2.3.1を使用し、glmultiをパッケージ化してモデルに合わせています」と述べています。今から10年後、誰かがglmultiの新しいバージョンを使用する可能性があり(オリジナルでどのバージョンが使用されたかはだれも知らない)、非常に異なる結論をもたらす可能性があります。私の質問:そのようなことがすでに起こっている例はありますか?バージョン2またはRパッケージは、バージョン1とは大きく異なる結果を生成します。


1
質問は少し曖昧です。もう少し集中できますか?
Dirk Eddelbuettel、2011年

はい、質問を明確にしました。
舞浅浦

回答:


6

glmnetバージョンよりもパッケージに問題がありました。よく覚えていれば、バージョン1.5から1.6になりましたが、少しずれているかもしれません。

パッケージの作成者/メンテナは、オブジェクトのクラスの順序を変更しました(そのため、c("lognet", "glmnet")代わりになりましたc("glmnet", "lognet")-または逆になっている可能性があります)。もちろん、彼らはこれを適切に処理するために、すべてのS3関数も変更しました(例:)predict.lognet

これに関する問題は、古いバージョンので作成したオブジェクトがglmnet新しい機能と互換性がないことでした(ディスパッチが逆に機能したため)。ほとんどの人はその場所にいなかったでしょう(glmnet後で使用するためにオブジェクトを保存するのは誰ですか?)が、私はそうでした。

あなたに注意してください:これは非常にインテリジェントな人々によって開発された非常に強力なパッケージなので、誰にでも起こる可能性があります:-)


1
誰がオブジェクトを保存するのかを知るために:私はそうします。:)
イテレータ

8

これはパッケージごとに異なりますが、一般的な答えはyesです。出力はさまざまで、基本的な使用法(入力/出力引数)も異なります。私は重要な分析を行う際には、必ず文書へのような、私は何のバージョンで使用された理由は、これがあるversion()sessionInfo()。状況が変わっても、古いバージョンはCRANに保持されるため、必要に応じて古いバージョンを入手できます。


1
+1すばらしいアドバイス。私は以前にRチュートリアルクラスに参加していましたが、インストラクタのコードはキャンパスラボのコンピュータよりも古いバージョンのRを使用して書かれており、ポイントリリースの変更点とコースコードの変更方法を理解するのに30分かかりました変更されます。いくつかのソフトウェアは、おそらくあまりにも後方互換性に従順されている間、これはRの批判であろうと、私を襲ったことがない
ジョシュHemann

1
@JohnColbyは正しい-パッケージのバージョン番号や、関数に渡される引数(私は常に名前付き引数を使用するようにしています)、乱数など、見落とされがちなものを含め、設定を再現できることが非常に重要ですシード、さまざまな外部依存関係など。1つのパッケージが結果に影響したかどうかについては、答えは「はい」であり、予想よりも広い範囲です。基本的なI / Oパッケージでさえ、データを失うと結果に影響を与える可能性があります。:)デフォルトのファイル読み込み動作が変更された場合、データが失われるか、データが何らかの方法で変更される可能性があります。
イテレータ

3

簡単なポイント:

  • Rパッケージのエコシステムは非常に大きく、下位互換性を維持するつもりかどうかは、個々の作成者次第です。
  • 私は個人的に、下位互換性の問題につながるような方法でベースRパッケージを変更することに問題はありませんでした。一般的に、これがベースRパッケージを使用する理由の1つです。

2

私の経験では、ほとんどの変更により、通常のコンピューティング/プログラミングタイプの問題が発生します。関数は非推奨になり、引数は異なります。たとえば、一部の関数には追加の引数が必要なため、コードが機能しなくなることがすでに起こりました。これは厄介なことですが、問題は明白であり、通常は解決するのにそれほど難しくありません。

一部のパッケージはこの点でより適切に維持できますが、フリーソフトウェアの通常の「ルール」が適用されます。ボランティア(多くの場合、フルタイムのプロのソフトウェア開発者ではなく、他の職務を持つ統計家)によって作成されていることを確認する必要があります。信頼性は重要です。0.xのようなバージョン番号を持つものは避け、ユーザーと開発者のアクティブなコミュニティで成熟したパッケージのみを使用してください。

統計結果に潜む変化をもたらすような更新に遭遇したことはありません(たとえば、一部の関数でデフォルトのメソッドを切り替え、自由度とp値を変更し、表面的に同様の結果を生成します)。しかし、少なくともバグ修正によって発生するはずです(ただし、Microsoftが実際に新製品にコードを追加して、これらのバグに依存するプログラムとの互換性が損なわれないように古いバグをエミュレートすることをどこかで読んだことがあります)。たぶん、メンテナーの中には、これらがパッケージでどのように処理されるかについての洞察を提供できる人もいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.