Rを使用して、2つの正規分布の混合からサンプリングされた一連の観測値の対数尤度を計算します。

アイスコーヒー

2つの正規分布の混合からサンプリングされた一連の観測値の対数尤度を計算する関数を作成しました。この関数は私に正しい答えを与えていません。

特定のサンプルが2つの分布のどちらからのものかわからないため、関数は可能性を合計する必要があります。

この関数は、最初の引数として5つのモデルパラメーター(μ1、σ1、μ2、σ2、p)のベクトルを取ります。ここで、μiとσiはi番目の分布の平均と標準偏差であり、pはサンプルの確率です。最初のディストリビューションからです。2番目の引数の場合、関数は観測値のベクトルを取ります。

私は次の関数を書きました:

mixloglik <- function(p, v) {
    sum(log(dnorm(v, p[1], p[2])*p[5] + dnorm(v,p[3],p[4]))*p[5])
}

テストデータを作成できます。そのための解決策は〜-854.6359である必要があります。

set.seed(42)
v<- c(rnorm(100), rnorm(200, 8, 2))
p <- c(0, 1, 6, 2, 0.5)

テストデータでこの関数をテストすると、正しい解決策が得られません

> mixloglik(p, v)
[1] -356.7194

私は解決策が〜-854.6359であるべきだと知っています。機能のどこが間違っているのですか?

ルイ・バラダス

対数尤度の正しい式は次のとおりです。

mixloglik <- function(p, v) {
  sum(log(p[5]*dnorm(v, p[1], p[2]) + (1 - p[5])*dnorm(v, p[3], p[4])))
}

今それを試してみてください:

set.seed(42)
v<- c(rnorm(100), rnorm(200, 8, 2))
p <- c(0, 1, 6, 2, 0.5)
mixloglik(p, v)
#[1] -854.6359

このような場合、エラーを解決する最善の方法は、式を紙に書き直して再コーディングすることから再開することです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    CSSのみを使用して三角形のアニメーションを作成する方法

  3. 3

    ZScalerと証明書の問題により、Dockerを使用できません

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    別のホストからTomcat Managerアプリにアクセスする

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Python / SciPyのピーク検出アルゴリズム

  9. 9

    MLでのデータ前処理の背後にある直感

  10. 10

    useRefに反応してコンポーネントをスクロールして表示する

  11. 11

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  12. 12

    パンダは異なる名前の列に追加します

  13. 13

    PictureBoxで画像のブレンドを無効にする

  14. 14

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  15. 15

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  16. 16

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  17. 17

    Material-UIでTextFieldエラーの色を条件付きでオーバーライドする方法

  18. 18

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  19. 19

    MatplotlibまたはSeabornを使用して、グループ化されたデータから複数のプロットを生成するにはどうすればよいですか?

  20. 20

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  21. 21

    Flutterにファイルピッカープラグインを追加するにはどうすればよいですか?

ホットタグ

アーカイブ