Tôi đang cố gắng tái tạo một thuật toán dự đoán hiện có, được lưu truyền bởi một nhà nghiên cứu đã nghỉ hưu. Bước đầu tiên là điều chỉnh một số dữ liệu được quan sát cho phân phối Weibull, để có được hình dạng và tỷ lệ sẽ được sử dụng để dự đoán các giá trị trong tương lai. Tôi đang sử dụng R để làm điều này. Đây là một ví dụ về mã của tôi:
x<-c(23,19,37,38,40,36,172,48,113,90,54,104,90,54,157,51,77,78,144,34,29,45,16,15,37,218,170,44,121)
f<-fitdistr(x, 'weibull')
Điều này hoạt động tốt trừ khi có bất kỳ số 0 nào trong mảng đầu vào, khiến nó bị hỏng hoàn toàn. Điều tương tự cũng xảy ra ở SAS. Theo tôi hiểu, điều này là do một trong các bước trong tính toán phân phối Weibull là lấy nhật ký tự nhiên, không xác định cho 0. Có cách nào hợp lý để giải quyết vấn đề này không?
Điều tốt nhất tôi tìm thấy cho đến nay là thêm 1 vào tất cả các giá trị đầu vào của mình, khớp với đường cong và sau đó trừ đi một giá trị từ các giá trị dự đoán của tôi ("dịch chuyển" đường cong lên và sau đó giảm xuống 1). Điều này phù hợp với dữ liệu dự đoán trước đó khá tốt, nhưng có vẻ như đó là một cách làm sai.
chỉnh sửa: Các giá trị trong mảng đầu vào được quan sát, dữ liệu trong thế giới thực (số lần xuất hiện của một cái gì đó) trong một phạm vi năm. Vì vậy, trong một số năm, số lần xuất hiện là bằng không. Cho dù đó là cách tốt nhất hay không (tôi đồng ý rằng nó có thể không), tác giả thuật toán ban đầu tuyên bố đã sử dụng phân phối Weibull và tôi phải cố gắng sao chép quy trình của họ.