আপডেট : 7 এপ্রিল 2011 এই উত্তরটি বেশ দীর্ঘ হচ্ছে এবং এতে সমস্যার একাধিক দিক রয়েছে। তবে, আমি এ পর্যন্ত পৃথক উত্তরে এটি ভেঙে প্রতিরোধ করেছি।
আমি এই নীচে পিয়ারসনের এর পারফরম্যান্সের একদম নীচে আলোচনা যুক্ত করেছি ।χ2
ব্রুস এম হিল লিখেছেন, সম্ভবত, জিপফের মতো প্রসঙ্গে অনুমানের উপর "সেমিনাল" কাগজটি। তিনি ১৯ 1970০ এর দশকের মাঝামাঝি বিষয়টিতে বেশ কয়েকটি গবেষণাপত্র লিখেছিলেন। যাইহোক, "হিল অনুমানকারী" (এটি এখন বলা হয়) মূলত নমুনার সর্বাধিক আদেশের পরিসংখ্যানের উপর নির্ভর করে এবং তাই, বর্তমান কাটানোর ধরণের উপর নির্ভর করে এটি আপনাকে কোনও সমস্যায় ফেলতে পারে।
মূল কাগজটি হ'ল:
বিএম হিল, একটি বিতরণের লেজ সম্পর্কে অনুমানের জন্য একটি সাধারণ সাধারণ পদ্ধতি , আন। তাত্ক্ষণিকবাজার। , 1975।
যদি আপনার ডেটা সত্যই প্রাথমিকভাবে জিপফ হয় এবং তারপরে এটি কেটে ফেলা হয় তবে ডিগ্রি বিতরণ এবং জিপফ প্লটের মধ্যে একটি দুর্দান্ত চিঠিপত্র আপনার সুবিধার জন্য ব্যবহার করা যেতে পারে।
বিশেষত, ডিগ্রি বিতরণটি কেবল প্রতিটি পূর্ণসংখ্যার প্রতিক্রিয়া দেখা যায় এমন সংখ্যার অনুপ্রেরণামূলক বিতরণ,
di=#{j:Xj=i}n.
আমরা যদি বিরুদ্ধে এই প্লটে বিভক্ত একটি লগ-লগ চক্রান্ত উপর, আমরা একটি ঢাল স্কেলিং সহগ সংশ্লিষ্ট সঙ্গে একটি রৈখিক ট্রেন্ড পাবেন।আমি
অন্যদিকে, আমরা যদি জিপফ প্লট প্লট করি , যেখানে আমরা নমুনাকে বৃহত্তম থেকে ক্ষুদ্রতম পর্যন্ত সাজান এবং তারপরে মানগুলি তাদের র্যাঙ্কের বিপরীতে প্লট করি তবে আমরা আলাদা opeালু সহ একটি ভিন্ন লিনিয়ার প্রবণতা পাই । তবে opালগুলি সম্পর্কিত।
তাহলে Zipf বিতরণের জন্য স্কেলিং-ল সহগ হয়, তাহলে প্রথম কাহিনিসূত্রেও ঢাল হল - α এবং দ্বিতীয় কাহিনিসূত্রেও ঢাল হল - 1 / ( α - 1 ) । নীচে জন্য একটি উদাহরণ চক্রান্ত α = 2 এবং ঢ = 10 6 । বাম-হাতের ফলকটি ডিগ্রি বিতরণ এবং লাল রেখার opeাল - 2 । ডান দিকের দিকটি হ'ল জিপফ প্লট, সুপারিম্পোজড লাল রেখার সাথে - 1 / ( 2 - 1 ) = -α- α- 1 / ( α - 1 )। = 2n = 106- 2 ।- 1 / ( 2 - 1 ) = - 1
সুতরাং, যদি আপনার তথ্য এত ছেঁটে ফেলা হয়েছে আপনি কোন মান কিছু থ্রেশহোল্ড চেয়ে বড় দেখতে , কিন্তু ডেটা অন্যথায় Zipf-বিতরণ করা হয় এবং τ যুক্তিসঙ্গতভাবে বড়, তারপর আপনি অনুমান করতে পারেন α থেকে ডিগ্রী বন্টন । খুব সহজ পদ্ধতির মধ্যে রয়েছে লগ-লগ প্লটের একটি লাইনের সাথে ফিট করে এবং সংশ্লিষ্ট সহগ ব্যবহার করা।ττα
যদি আপনার ডেটা কেটে ফেলা হয় যাতে আপনি ছোট মান দেখতে না পান (যেমন, বৃহত্তর ওয়েব ডেটা সেটগুলির জন্য যেভাবে ফিল্টারিং করা হয়) তবে আপনি লগ-লগ স্কেলে ঝালটি অনুমান করতে জিপফ প্লট ব্যবহার করতে পারেন এবং তারপরে " ব্যাক আউট "স্কেলিং ব্যয়কারী। বলুন Zipf চক্রান্ত থেকে ঢাল আপনার অনুমান β । তারপর, স্কেলিং-ল সহগ এক সহজ অনুমান
α = 1 - 1β^
α^= 1 - 1β^।
এই বিষয়টি সম্পর্কে মিশিগানে মার্ক নিউম্যান সহ-রচয়িতা @ সিএসগিলিসপি একটি সাম্প্রতিক একটি কাগজ দিয়েছেন। তিনি এই সম্পর্কে অনেক অনুরূপ নিবন্ধ প্রকাশিত বলে মনে হচ্ছে। নীচে আরও কয়েকটি দম্পতি উল্লেখ করা যেতে পারে যা আগ্রহী হতে পারে। নিউম্যান কখনও কখনও পরিসংখ্যানগত দিক থেকে সর্বাধিক বুদ্ধিমান কাজ করেন না, তাই সাবধান হন।
এমইজে নিউম্যান, পাওয়ার আইন, পেরেটো বিতরণ এবং জিপফের আইন , সমসাময়িক পদার্থবিজ্ঞান 46, 2005, পৃষ্ঠা 323-351 -3
মিঃ মিজেনম্যাচার, পাওয়ার আইন এবং লগনরমাল ডিস্ট্রিবিউশনস , ইন্টারনেট গণিতের জন্য জেনেরেটরি মডেলের সংক্ষিপ্ত ইতিহাস । , খণ্ড। 1, না। 2, 2003, পৃষ্ঠা 226-251।
কে নাইট, দৃ rob়তা এবং পক্ষপাত হ্রাস অ্যাপ্লিকেশন সহ হিল অনুমানকারী একটি সাধারণ পরিবর্তন , ২০১০।
সংযোজন :
আর105
> x <- (1:500)^(-0.9)
> p <- x / sum(x)
> y <- sample(length(p), size=100000, repl=TRUE, prob=p)
> tab <- table(y)
> plot( 1:500, tab/sum(tab), log="xy", pch=20,
main="'Truncated' Zipf simulation (truncated at i=500)",
xlab="Response", ylab="Probability" )
> lines(p, col="red", lwd=2)
ফলস্বরূপ প্লট হয়
আমি 30 ডলার
তবুও, ব্যবহারিক দৃষ্টিকোণ থেকে, এই জাতীয় প্লট তুলনামূলকভাবে বাধ্যতামূলক হওয়া উচিত।
। = 2n = 300000এক্সআমি একটি এক্স= 500
χ2
এক্স2= ∑i = 1500( ওআমি- ইআমি)2ইআমি
হেআমিআমিইআমি= এন পিআমি= n i- α/ Σ500j = 1ঞ- α
মরিজিওর স্প্রেডশীটে দেখানো হিসাবে আমরা 40 মাপের আকারের বিংশগুলিতে প্রথম গণনাগুলি তৈরি করে তৈরি করা একটি দ্বিতীয় পরিসংখ্যানও গণনা করব (শেষ বিনটিতে কেবল বিশটি পৃথক ফলাফলের মান রয়েছে)।
এনপি
পি
আর
# Chi-square testing of the truncated Zipf.
a <- 2
n <- 300000
xmax <- 500
nreps <- 5000
zipf.chisq.test <- function(n, a=0.9, xmax=500, bin.size = 40)
{
# Make the probability vector
x <- (1:xmax)^(-a)
p <- x / sum(x)
# Do the sampling
y <- sample(length(p), size=n, repl=TRUE, prob=p)
# Use tabulate, NOT table!
tab <- tabulate(y,xmax)
# unbinned chi-square stat and p-value
discrepancy <- (tab-n*p)^2/(n*p)
chi.stat <- sum(discrepancy)
p.val <- pchisq(chi.stat, df=xmax-1, lower.tail = FALSE)
# binned chi-square stat and p-value
bins <- seq(bin.size,xmax,by=bin.size)
if( bins[length(bins)] != xmax )
bins <- c(bins, xmax)
tab.bin <- cumsum(tab)[bins]
tab.bin <- c(tab.bin[1], diff(tab.bin))
prob.bin <- cumsum(p)[bins]
prob.bin <- c(prob.bin[1], diff(prob.bin))
disc.bin <- (tab.bin - n*prob.bin)^2/(n * prob.bin)
chi.stat.bin <- sum(disc.bin)
p.val.bin <- pchisq(chi.stat.bin, df=length(tab.bin)-1, lower.tail = FALSE)
# Return the binned and unbineed p-values
c(p.val, p.val.bin, chi.stat, chi.stat.bin)
}
set.seed( .Random.seed[2] )
all <- replicate(nreps, zipf.chisq.test(n, a, xmax))
par(mfrow=c(2,1))
hist( all[1,], breaks=20, col="darkgrey", border="white",
main="Histogram of unbinned chi-square p-values", xlab="p-value")
hist( all[2,], breaks=20, col="darkgrey", border="white",
main="Histogram of binned chi-square p-values", xlab="p-value" )
type.one.error <- rowMeans( all[1:2,] < 0.05 )