作者hewolf (hewolf)
看板R_Language
標題[問題] 不同長度的資料作fitting
時間Sat Aug 12 16:04:54 2017
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
手邊有幾組資料,長這樣
data1 200x2 matrix
V1 Y
[1]
...
[200]
data2 150x2 matrix
V1 Y
[1]
...
[150]
data3 120x2 matrix
V1 Y
[1]
...
[120]
這幾組資料分別對應另一個變數V2
我預計的fitting的方程式最後會長
Y= (a+aa*V2)+(b+bb*V2)*V1
目前想到最土法鍊鋼的方式是每一組
先假設成Y=A+B*V1,再把一組的A和B
求出來,再分別以V2對他們作fitting
得到(a,aa,b,bb).
這樣的做法跟手動沒什麼差別,沒辦法
處理大量資料.
有辦法用比較簡單的code或package
來作這件事情嗎?
謝謝
[環境敘述]:
Linux
[關鍵字]:
fitting
--
※ 編輯: hewolf (101.0.132.64), 08/12/2017 16:05:46
1F:推 locka: 請問新增一個欄位V2然後把3組資料合併為一個data frame不行 08/12 16:24
2F:→ locka: 嗎? 08/12 16:24
我的code是這樣的
y[1]<-data.matrix(data[2])
x[1]<-data.matrix(data[1])
y[2]<-data.matrix(data1[2])
x[2]<-data.matrix(data1[1])
這是fitting code
fit_nls = nls(y ~ exp((a+aa*V2)+(b+bb*V2)*x), start = c(a =1,b = 1,aa=1,bb=1),
trace = T)
結果是這樣...
6: In x[2] <- -data.matrix(data1[1]) :
number of items to replace is not a multiple of replacement length
7: In (b + bb * E) * x :
longer object length is not a multiple of shorter object length
※ 編輯: hewolf (101.0.132.64), 08/12/2017 16:28:40
3F:→ locka: 另外fitting方程式不是應該先檢查變數之間相關性再決定有沒 08/12 16:29
4F:→ locka: 有交互作用之類的?(抱歉因為覺得直接預計fitting方程式長 08/12 16:29
5F:→ locka: 的樣子這點很奇怪才有此一問) 08/12 16:30
6F:推 locka: 喔原來是做nls的fitting,抱歉我剛剛直覺想的是普通的迴歸 08/12 16:34
7F:→ locka: 模型 08/12 16:34