Этап.1. Загрузите необходимый пакет.Как нарисовать встроенный график и фактический график распределения гаммы в одном сюжете?
library(ggplot2)
library(MASS)
Шаг.2. Сгенерируйте 10 000 номеров, соответствующих гамма-распределению.
x <- round(rgamma(100000,shape = 2,rate = 0.2),1)
x <- x[which(x>0)]
Шаг.3. Нарисуйте pdf (функция плотности вероятности), предположительно, мы не знаем, к какому дистрибутиву относится x
.
t1 <- as.data.frame(table(x))
names(t1) <- c("x","y")
t1 <- transform(t1,x=as.numeric(as.character(x)))
t1$y <- t1$y/sum(t1[,2])
ggplot() + geom_point(data = t1,aes(x = x,y = y)) + theme_classic()
Шаг 4.. Из графика можно узнать, что распределение x
весьма похоже на распределение гаммы, поэтому мы используем fitdistr()
в пакете MASS
для получения параметров распределения гамма-излучения и rate
.
fitdistr(x,"gamma")
## output
## shape rate
## 2.0108224880 0.2011198260
## (0.0083543575) (0.0009483429)
Шаг.5. Нарисуйте фактическую точку (черную точку) и графику (красную линию) в том же сюжете, и вот вопрос, пожалуйста, сначала посмотрите сюжет.
ggplot() + geom_point(data = t1,aes(x = x,y = y)) +
geom_line(aes(x=t1[,1],y=dgamma(t1[,1],2,0.2)),color="red") +
theme_classic()
Вопрос 1: Реальные параметры shape=2
, rate=0.2
, и параметры, которые я использую функцию fitdistr()
, чтобы получить это shape=2.01
, rate=0.20
. Эти два значения почти одинаковы, но почему встроенный график не подходит к фактической точке, должно быть что-то не так на графике, или то, как я рисую установленный график и фактические точки, совершенно неверно, что мне делать ?
Вопрос 2: После того, как я получаю параметр модели я установить, каким образом я оценить модель, что-то вроде RSS(residual square sum)
для линейной модели, или p-value
из shapiro.test()
, ks.test()
и другого теста? Я плохо разбираюсь в статистических знаниях, пожалуйста, помогите мне решить оба вопроса, спасибо! (Ps: У меня есть поиск в Google и stackoverflow много раз, но он не работает, поэтому не голосуйте, этот вопрос бесполезен, Thx!)
У меня нет большой репутации, чтобы показать картинку напрямую, может ли кто-нибудь сделать мне одолжение? Спасибо за помощь! –
Пожалуйста, покажите код, который вы использовали для шага 5 (т. Е. Для отображения как данных, так и кривой). – jbaums
Извините, я забуду это, пожалуйста, снова проверьте описание @jbaums –