作者andrew43 (討厭有好心推文後刪文者)
看板R_Language
標題Re: [問題] 簡單的新手小問題
時間Sun Sep 28 02:00:10 2014
根據你的推文,你的迴歸式是
y = x ^ b + error
那直接這樣做就好了:
mod <- nls(y ~ x ^ b1, data = dat, start = list(b1 = 2))
summary(mod)
其中 dat 是一個 data frame;
x 和 y 是 dat 裡的二個變數;
b1 是待估計的參數,不用事先定義,直接寫進 nls() 裡就可以。
※ 引述《pornstar (迪克)》之銘言:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 各位大大好~~
: 我想在資料中加入一個擬合曲線看看它們之間的關係
: 我的資料只是簡單的兩列數據 資料型態是data frame
: 我用nls這個函式來做擬合
: [程式範例]:
: 我讀入的資料名稱是Fit 型態是data frame
: 錯誤的是: Curve<-nls(Fit[2]~I(Fit[1]^power),data=Fit[])
: 跑出以下的錯誤訊息 :
: Error in model.frame.default(formula = ~Fit + power, data = Fit) :
: invalid type (list) for variable 'Fit'
: In addition: Warning messages:
: 1: In min(x) : no non-missing arguments to min; returning Inf
: 2: In max(x) : no non-missing arguments to max; returning -Inf
: 是因為F[1],F[2]沒辦法取出來做運算嗎??
: 我預期之後再用summary(Curve)就可以看到擬合曲線的公式
: 新手發問~ 先感謝各位大大的回答~!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.37.172
※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1411840813.A.DDA.html
推 pornstar: 感謝~~ 但是試過後仍然跑出一樣的錯誤訊息資料型態無論 09/28 12:37
→ pornstar: 是data frame或list都一樣錯 我是用read.csv的方式讀進 09/28 12:38
→ pornstar: excel的資料 不知道跟這是否有關? 或是nls的涵式需要再 09/28 12:39
→ pornstar: 另外找甚麼package?? 09/28 12:39
→ pornstar: 或是我把數據放進x,y的方式有誤?(上篇回文 但是x,y的確 09/28 12:42
→ pornstar: 也有顯示出資料..) 09/28 12:43
→ andrew43: 那可能是統計上的問題而不是R的問題了。 09/28 20:01
→ andrew43: 你可以先試著把 nls() 裡的參數看清楚,了解不同的演算 09/28 20:02
→ andrew43: 方式來解決問題。 09/28 20:02
→ pornstar: 好的 我在試試 09/29 22:00