Re: [問題] 簡單的新手小問題

作者: andrew43 (討厭有好心推文後刪文者)   2014-09-28 02:00:10
根據你的推文,你的迴歸式是
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)就可以看到擬合曲線的公式
: 新手發問~ 先感謝各位大大的回答~!!
作者: pornstar (迪克)   2014-09-28 12:37:00
感謝~~ 但是試過後仍然跑出一樣的錯誤訊息資料型態無論是data frame或list都一樣錯 我是用read.csv的方式讀進excel的資料 不知道跟這是否有關? 或是nls的涵式需要再另外找甚麼package??或是我把數據放進x,y的方式有誤?(上篇回文 但是x,y的確也有顯示出資料..)
作者: andrew43 (討厭有好心推文後刪文者)   2014-09-28 20:01:00
那可能是統計上的問題而不是R的問題了。你可以先試著把 nls() 裡的參數看清楚,了解不同的演算方式來解決問題。
作者: pornstar (迪克)   2014-09-29 22:00:00
好的 我在試試

Links booklink

Contact Us: admin [ a t ] ucptt.com