Tôi đang cố gắng điều chỉnh một mô hình luật công suất đơn giản cho một tập dữ liệu như sau:
mydf
:
rev weeks
17906.4 1
5303.72 2
2700.58 3
1696.77 4
947.53 5
362.03 6
Mục tiêu là để vượt qua đường dây điện thông qua và sử dụng nó để dự đoán rev
vlaues trong những tuần tới. Một loạt các nghiên cứu đã dẫn tôi đến nls
chức năng, mà tôi thực hiện như sau.
newMod <- nls(rev ~ a*weeks^b, data=modeldf, start = list(a=1,b=1))
predict(newMod, newdata = data.frame(weeks=c(1,2,3,4,5,6,7,8,9,10)))
Trong khi điều này hoạt động cho một lm
mô hình, tôi gặp một singular gradient
lỗi, mà tôi hiểu là phải làm với các giá trị bắt đầu của tôi a
và b
. Tôi đã thử các giá trị khác nhau, thậm chí đi xa hơn để vẽ biểu đồ này trong Excel, vượt qua một mình, nhận phương trình, sau đó sử dụng các giá trị từ phương trình, nhưng tôi vẫn gặp lỗi. Tôi đã xem một loạt các câu trả lời như thế này và thử câu trả lời thứ hai (không thể hiểu câu trả lời thứ nhất), nhưng không có kết quả.
Tôi thực sự có thể sử dụng một số trợ giúp ở đây về cách tìm các giá trị bắt đầu đúng. Hoặc cách khác, tôi có thể sử dụng chức năng nào khác thay vì nls.
Trong trường hợp bạn muốn tạo lại mydf
một cách dễ dàng:
mydf <- data.frame(rev=c(17906.4, 5303.72, 2700.58 ,1696.77 ,947.53 ,362.03), weeks=c(1,2,3,4,5,6))