Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 15.11.2019, 12:45   #1
tdeni
Новичок
Джуниор
 
Регистрация: 15.11.2019
Сообщений: 2
Печаль Помогите понять почему fitditr дает ошибку, программа R

LL.lnorm<-function(par,x){
X.mean=par[1]
X.sd=par[2]
(-sum(dlnorm(x,X.mean,X.sd,log=TRUE)) )
}

x<-p$Cu
# начальные значения параметров
x.mean<-mean(x)
x.var<-var(x)
lnorm.scale<-x.var/x.mean
lnorm.sd<-1/lnorm.scale
lnorm.mean<-x.mean/lnorm.scale
par.init=c(lnorm.mean,lnorm.sd)
print(par.init)

# нижняя граница
par.lo=c(1e-6,1e-6)
# верхняя граница
par.hi=c(100,100)
# масштаб параметров
par.scale=c(1,2)
# поиск значений
res=optim(par.init,LL.lnorm,method= "L-BFGS-B",lower=par.lo,upper=par.hi,
control=list(maxit=500,trace=1,pars cale=par.scale),x=x)
print(res$par)

#рисуем гистограмму
hist(p$Cu,col="pink", main="Histogram for Cu",xlab="x",prob=TRUE)

# используем fitdistr()
norm.fit<-fitdistr(x,"lnorm",start=list(mean= lnorm.mean,sd=lnorm.sd))
print(norm.fit$estimate)

В консоле дает ошибку Ошибка в fitdistr(x, "lnorm", start = list(mean = lnorm.mean, sd = lnorm.sd)) :
unsupported distribution

я не понимаю почему
tdeni вне форума Ответить с цитированием
Старый 15.11.2019, 12:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,097
По умолчанию

https://www.rdocumentation.org/packa...opics/fitdistr
Цитата:
Distributions "beta", "cauchy", "chi-squared", "exponential", "gamma", "geometric", "log-normal", "lognormal", "logistic", "negative binomial", "normal", "Poisson", "t" and "weibull" are recognised, case being ignored.
Вы видите здесь "lnorm"?
Пишу программы на С++. ТЗ, цену и сроки на p51x.fr {@} яндекс.ру
p51x вне форума Ответить с цитированием
Старый 15.11.2019, 13:58   #3
tdeni
Новичок
Джуниор
 
Регистрация: 15.11.2019
Сообщений: 2
По умолчанию

Спасибо, исправила. Но теперь там же выдает ошибку

Ошибка в fitdistr(x, "lognormal", start = list(mean = lnorm.mean, sd = lnorm.sd)) :
supplying pars for the log-Normal distribution is not supported

я так думаю у меня ошибка идет тут
x<-p$Cu
# начальные значения параметров
x.mean<-mean(x)
x.var<-var(x)
lnorm.scale<-x.var/x.mean
lnorm.sd<-1/lnorm.scale
lnorm.mean<-x.mean/lnorm.scale
par.init=c(lnorm.mean,lnorm.sd)
print(par.init)

не вижу где что пропустила
tdeni вне форума Ответить с цитированием
Старый 15.11.2019, 14:50   #4
Arpadar
Новичок
Джуниор
 
Регистрация: 15.11.2019
Сообщений: 6
По умолчанию

Если ошибку выдает в том же операторе, то исправление проведено не полностью.
Обычно так)) Ну иногда и две ошибке можно допустить, хотя это уже не так часто случается.
@Arpadar
Arpadar вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять почему не работает программа на С. NO ONE Общие вопросы C/C++ 2 13.12.2017 18:23
Cходящийся ряд (программа по идее должна работать но почему не работает понять не могу) в С++ Vultar Помощь студентам 3 17.12.2009 14:04
При выполнении программа отображает ошибку, в чем проблема понять не могу Hyjak Помощь студентам 7 20.10.2008 23:48