[英]nls function in R how to deal with the selection of parameters
我正在處理adstock模型,並嘗試在adstock_t = ad_t + alpha * adstock_t-1的公式中找到最佳的alpha。 我在R中找到以下相關代碼來解決此問題:
在建模方面,這個家伙使用了nls函數,對此我有幾個問題:首先,函數sales〜b0 + bi * adstock似乎是線性函數,因此我們在這里使用非線性擬合模型。 其次,我想知道模型如何選擇最佳的b0,b1和alpha(在此處評分)。 我們僅指定每個參數的起點,模型如何遍歷所有可能的值並選擇最佳值? 參數范圍是否有上限? 是否基於R平方(最小化SSR)選擇最佳參數? 但是在我們的課程中,講師提到我們使用最大似然估計最佳率,這使我感到困惑,因為nls使用最小二乘規則。 不一致嗎?
謝謝你的幫助!
傑
如果rate
是固定的,那么sales
將是b0
和b1
的線性函數,我們可以使用lm
求解它,但rate
不是固定的。 的確,在這種情況下可以使用algorithm="plinear"
,在這種情況下,僅必須指定非線性參數rate
起始值,而該算法可以省略線性參數的起始值。 請注意, "plinear"
所需的公式與其他算法不同。 這是使用plinear
的示例 -在SO中搜索plinear
會找到其他示例。
nls
不會嘗試所有可能的值。 它使用的方法由algorithm=
參數指定,如果未指定任何內容,則默認使用Gauss-Newton 。 它從某個指定的起始值開始,然后向下移動少量並重復。 究竟如何完成取決於選擇的特定算法。 有關參數和引用的詳細信息,請參見?nls
。
當發布到SO時,請勿使用圖像,而應包括一個完整的可復制示例,其中包括所有其他人可以復制並粘貼到其會話中以運行的輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.