У меня есть вектор из 1096 чисел, среднесуточная концентрация NOx, измеренная за 3 года на измерительной станции. Вы можете наблюдать тип распределения на изображении:
Я использовал эти команды для построения гистограммы:
NOxV<-scan("NOx_Vt15-17.txt")
hist.NOxVt<-hist(NOxV, plot = FALSE, breaks = 24)
plot(hist.NOxVt, xlab = "[NOx]", ylab = "Frequenze assolute", main = "Istogramma freq. ass. NOx 15-17 Viterbo")
points(hist.NOxVt$mids, hist.NOxVt$counts, col= "red")
Мой профессор предложил мне подогнать гистограмму к распределению Пуассона — обращая внимание на переход: дискретное -> непрерывное (я не знаю, что это значит) — или к «логарифмически нормальному» распределению.
Я попытался выполнить подгонку Пуассона с некоторыми командными строками, которые она дала нам на уроке, но R выдал мне ошибку после выполнения последней строки кода из следующего:
my_poisson = function(params, x){
exp(-params)*params^x/factorial(x)
}
y<-hist.NOxVt$counts/1096;
x<-hist.NOxVt$mids;
z <- nls( y ~ exp(-a)*a^x/factorial(x), start=list(a=1) )
Ошибка в numericDeriv(form[[3L]], имена(ind), env): пропущенное значение или бесконечность, полученная при оценке модели. Кроме того: было 50 или более предупреждений (используйте warnings(), чтобы увидеть первые 50)"
После этой проблемы, которую я не смог решить (даже поискав похожие проблемы в интернете), я решил подогнать дистрибутив под логнормальный, но я понятия не имею, как это сделать, потому что профессор нам этого не объяснил, и я до сих пор у меня нет достаточного опыта R, чтобы понять это самостоятельно.
Я был бы признателен за любые предложения или примеры того, как сделать логнормальную подгонку и/или подгонку Пуассона.