Gerekli paketi yükleyin.
library(ggplot2)
library(MASS)
Gama dağılımına uygun 10.000 sayı oluşturun.
x <- round(rgamma(100000,shape = 2,rate = 0.2),1)
x <- x[which(x>0)]
Olasılık yoğunluğu fonksiyonunu çizin, x'in hangi dağılımı taktığını bilmiyoruz.
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()
Grafikten, x'in dağılımının gama dağılımına oldukça benzediğini öğrenebiliriz, bu nedenle fitdistr()
pakette MASS
gama dağılımının şekil ve oran parametrelerini almak için kullanırız .
fitdistr(x,"gamma")
## output
## shape rate
## 2.0108224880 0.2011198260
## (0.0083543575) (0.0009483429)
Aynı noktaya gerçek noktayı (siyah nokta) ve takılı grafiği (kırmızı çizgi) çizin ve işte soru, lütfen önce grafiğe bakın.
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()
İki sorum var:
Gerçek parametrelerdir
shape=2
,rate=0.2
ve ben işlevini kullanın parametrelerfitdistr()
almak için vardırshape=2.01
,rate=0.20
. Bu ikisi neredeyse aynı, ancak yerleştirilmiş grafik neden gerçek noktaya uymuyor, yerleştirilmiş grafikte yanlış bir şey olmalı veya yerleştirilmiş grafiği ve gerçek noktaları çizme şeklim tamamen yanlış, ne yapmalıyım ?Ben lineer modelin veya p-değeri için bir model, RSS (rezidüel kare toplamı) gibi bir şey değerlendirmek hangi yolla ben kurmak modelinin parametresini aldıktan sonra
shapiro.test()
,ks.test()
ve diğer teste?
İstatistiksel bilgi konusunda fakirim, lütfen bana yardım eder misin?
ps: Google'da, stackoverflow ve CV'de birçok kez arama yaptım, ancak bu sorunla ilgili hiçbir şey bulamadım
h <- hist(x, 1000, plot = FALSE); t1 <- data.frame(x = h$mids, y = h$density)
.