我想知道我怎麼能在河定義變量以隱式方式
例如以含蓄的方式定義變量,讓我們假設我有ž< -0.5和X < -2,我想定義y使得以下成立:z = beta(x,y)。
顯然,如果我輸入z<-beta(x,y)
,我有以下錯誤Error in beta(x, y) : object 'y' not found
。
我試圖在谷歌找到解決方案,但奇怪,我沒有找到任何東西。
預先感謝您!
我想知道我怎麼能在河定義變量以隱式方式
例如以含蓄的方式定義變量,讓我們假設我有ž< -0.5和X < -2,我想定義y使得以下成立:z = beta(x,y)。
顯然,如果我輸入z<-beta(x,y)
,我有以下錯誤Error in beta(x, y) : object 'y' not found
。
我試圖在谷歌找到解決方案,但奇怪,我沒有找到任何東西。
預先感謝您!
爲了您例如,你可以使用uniroot
找到y的值:
(y <- uniroot(function(y) beta(x,y)-z, interval=c(0,100)))
$root
[1] 1
$f.root
[1] -1.08689e-07
$iter
[1] 13
$estim.prec
[1] 6.103516e-05
beta(x,y$root)==z
[1] FALSE
all.equal(beta(x,y$root),z, tol=1e-5)
[1] TRUE
beta(x,1)==z
[1] TRUE
然而,這依賴於一些假設,例如有僅是一個值,以滿足方程和你能夠給這是一個明智的區間。一般來說,你的函數可能不允許解決方案,如果你需要計算大量的y值,計算可能會很慢。您還需要考慮數值解決方案可能不準確,因此需要謹慎對比。
好的,這工作正常! 非常感謝 – Jack4280
創建函數?你想做什麼? – A5C1D2H2I1M1N2O1R2T1
你可能想看看:http://en.wikipedia.org/wiki/Beta_distribution#Parameter_estimation,也可能在'?mle' – nico
嗯,我有x和z的值,我需要y的值這樣的條件是尊重。 問題是我不能把y單獨放在左邊,所以我不能在「常規方式」中定義y,即y < - 我的實際方程比這方法更復雜,但想法是一樣的。 Beta函數只是一個例子。我不想估計它。我想解決方程,以獲得y的價值 – Jack4280