Muat paket yang dibutuhkan.
library(ggplot2)
library(MASS)
Hasilkan 10.000 angka yang pas untuk distribusi gamma.
x <- round(rgamma(100000,shape = 2,rate = 0.2),1)
x <- x[which(x>0)]
Gambarkan fungsi kerapatan probabilitas, seandainya kita tidak tahu distribusi x mana yang cocok.
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()
Dari grafik, kita dapat belajar bahwa distribusi x cukup seperti distribusi gamma, jadi kami gunakan fitdistr()
dalam paket MASS
untuk mendapatkan parameter bentuk dan laju distribusi gamma.
fitdistr(x,"gamma")
## output
## shape rate
## 2.0108224880 0.2011198260
## (0.0083543575) (0.0009483429)
Gambar titik aktual (titik hitam) dan grafik pas (garis merah) di plot yang sama, dan inilah pertanyaannya, silakan lihat plotnya terlebih dahulu.
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()
Saya punya dua pertanyaan:
Parameter nyata
shape=2
,rate=0.2
dan parameter saya menggunakan fungsifitdistr()
untuk mendapatkan yangshape=2.01
,rate=0.20
. Keduanya hampir sama, tetapi mengapa grafik pas tidak cocok dengan titik sebenarnya dengan baik, pasti ada sesuatu yang salah dalam grafik pas, atau cara saya menggambar grafik pas dan poin aktual benar-benar salah, apa yang harus saya lakukan ?Setelah saya mendapatkan parameter dari model yang saya buat, dengan cara apa saya mengevaluasi model, sesuatu seperti RSS (residual square sum) untuk model linier, atau nilai p
shapiro.test()
,ks.test()
dan tes lainnya?
Saya miskin dalam pengetahuan statistik, bisakah Anda membantu saya?
ps: Saya sering mencari di Google, stackoverflow dan CV, tetapi tidak menemukan apa pun yang terkait dengan masalah ini
h <- hist(x, 1000, plot = FALSE); t1 <- data.frame(x = h$mids, y = h$density)
.