忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

基本の初歩の入門
L(p) = p3(1-p)(5-3)
のL(p)を最大化するpを求める
# よくある例: 5回コインを投げて3回表、2回裏が出る確率 (L(p)) を最大化する、コインの表の出る確率 (p) は?

# Excelのソルバー
A2に初期値として0.5を入れる
B2に式を書く
=(A2^3)*((1-A2)^2)
ソルバーを起動し、
目的セル: $B$2
目標値: 最大化
変化させるセル: $A$2
制約条件: $A$2<=1, $A$2>=0
として実行をクリック

A2 (p) は0.5、B2 (L(p)) は0.03456が記入される


# 同じことをRでやるにはoptim関数を使う
fc <- function(x){
(x^3)*((1-x)^2) # 関数定義。上の=(A2^3)*((1-A2)^2) と同じ
}
optim(par=0.5, fn=fc, control=list(fnscale=-1))
## parは初期値、fnは関数、controlは制御構文。fnscale=-1は最大化しろということ
## 返り値でconvergenceが0だと収束したということ

# 追記。Excelのソルバーは準ニュートン法か共役勾配 (傾斜) 法を用いている。オプションで指定できる。
# Rではmethodで指定する。大概制約条件があるので、"L-BFGS-B" であろう (デフォルトは"Nelder-Mead") 。Rjpwikiの記事を参考。感謝
optim(par=0.5, fn=fc, method="L-BFGS-B", upper=1, lower=0, control=list(fnscale=-1))


# optimize関数もある
optimize(f=fc, interval=c(0,1), maximum=T)
## fは関数, intervalは範囲、maximumは最大化


PR
Comment
Trackback
Trackback URL

Comment form
Title
Color & Icon Vodafone絵文字 i-mode絵文字 Ezweb絵文字  
Comment
Name
Mail
URL
Password
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表