Bu ikili verileri bir dağıtım modeline sığdırmanız gerekir , çünkü üst çeyreğe ekstrapolasyon yapmanın tek yolu budur.
Bir örnek
Tanım olarak, bu tip bir model ile verilmektedir cadlag fonksiyonu yükselen 0 ile 1 . Herhangi aralığına atar olasılık ( a , b ] olan F ( b ) - F ( a ) . Oturmasını sağlamak için, bir (vektör) parametresi tarafından dizine olası fonksiyonları bir aileyi varsaymak gerekir İçeride ISTV melerin RWMAIWi'nin , { F θ } Numunenin, belirli (ancak bilinmeyen) bazı F tarafından tanımlanan bir popülasyondan rastgele ve bağımsız olarak seçilen bir insan topluluğunu özetlediği varsayılarak θF01( a , b ]F( b ) - F( a )θ{ Fθ}Fθ, örneğin olasılığı (veya olasılık , ) bireysel olasılıkların ürünüdür. Örnekte,L
L ( θ ) = ( Fθ( 8 ) - Fθ( 6 ) )51( Fθ( 10 ) - Fθ( 8 ) )65⋯ ( Fθ( ∞ ) - Fθ( 16 ) )182
çünkü kişiden birinin ilişkili olasılıkları F θ ( 8 ) - F θ ( 6 ) , 65'inin olasılığı F θ ( 10 ) - F θ ( 8 ) vb.51Fθ( 8 ) - Fθ( 6 )65Fθ( 10 ) - Fθ( 8 )
Modelin verilere uyumu
Maksimum Olabilirlik tahmin arasında üst düzeye çıkaran bir değerdir L (eşdeğer ya da logaritması L ).θLL
Gelir dağılımları genellikle lognormal dağılımlarla modellenir (örneğin, bkz . Http://gdrs.sourceforge.net/docs/PoleStar_TechNote_4.pdf ). Yazma , lognormal dağılımları ailesidirθ = ( μ , σ)
F( μ , σ)( x ) = 12 π--√∫( log( x ) - μ ) / σ- ∞tecrübe( - t2/ 2)dt .
Bu aile (ve diğerleri için) sayısal olarak optimize etmek kolaydır . Örneğin, günlüğü ( L ( θ ) ) hesaplamak için bir işlev yazacağız ve sonra onu optimize edeceğiz , çünkü maksimum günlük ( L ) maksimum L ile çakışıyor ve (genellikle) günlük ( L ) hesaplamak daha kolay ve sayısal olarak çalışmak için daha kararlı:LR
günlük( L ( θ ) )günlük( L )Lgünlük( L )
logL <- function(thresh, pop, mu, sigma) {
l <- function(x1, x2) ifelse(is.na(x2), 1, pnorm(log(x2), mean=mu, sd=sigma))
- pnorm(log(x1), mean=mu, sd=sigma)
logl <- function(n, x1, x2) n * log(l(x1, x2))
sum(mapply(logl, pop, thresh, c(thresh[-1], NA)))
}
thresh <- c(6,8,10,12,14,16)
pop <- c(51,65,68,82,78,182)
fit <- optim(c(0,1), function(theta) -logL(thresh, pop, theta[1], theta[2]))
Bu örnekte çözüm değerinde bulunan, .θ = ( μ , σ) = ( 2.620945 , 0.379682 )fit$par
Model varsayımlarını kontrol etme
En azından bunun varsayılan lognormallikle ne kadar iyi uyduğunu kontrol etmemiz gerekiyor, bu yüzden hesaplamak için bir fonksiyon yazıyoruz :F
predict <- function(a, b, mu, sigma, n) {
n * ( ifelse(is.na(b), 1, pnorm(log(b), mean=mu, sd=sigma))
- pnorm(log(a), mean=mu, sd=sigma) )
Takılan veya "öngörülen" kutu popülasyonlarını elde etmek için verilere uygulanır:
pred <- mapply(function(a,b) predict(a,b,fit$par[1], fit$par[2], sum(pop)),
thresh, c(thresh[-1], NA))
Verilerin histogramlarını ve bu grafiklerin ilk satırında gösterilen görsel olarak karşılaştırma tahminini çizebiliriz:
Bunları karşılaştırmak için, ki kare şeklinde bir istatistik hesaplayabiliriz. Bu, anlamlılığı değerlendirmek için genellikle ki kare dağılımına atıfta bulunur :
chisq <- sum((pred-pop)^2 / pred)
df <- length(pop) - 2
pchisq(chisq, df, lower.tail=FALSE)
0.00876 - 8630.40
Miktarları tahmin etmek için uygunluğu kullanma
63( μ , σ)( 2.620334 , 0.405454 )F75inci
exp(qnorm(.75, mean=fit$par[1], sd=fit$par[2]))
18.066317.76
Bu prosedürler ve bu kod genel olarak uygulanabilir. Eğer ilgiliyse, üçüncü çeyrek çevresinde bir güven aralığını hesaplamak için maksimum olasılık teorisinden daha fazla faydalanılabilir.