উত্তর:
ecdf
ফাংশন একটি ডাটা নমুনা আয় একটি প্রয়োগ ফাংশন গবেষণামূলক ক্রমবর্ধমান বণ্টনের ফাংশনের উপস্থাপন করে। উদাহরণ স্বরূপ:
> X = rnorm(100) # X is a sample of 100 normally distributed random variables
> P = ecdf(X) # P is a function giving the empirical CDF of X
> P(0.0) # This returns the empirical CDF at zero (should be close to 0.5)
[1] 0.52
> plot(P) # Draws a plot of the empirical CDF (see below)
যদি আপনি নির্দিষ্ট মানগুলিতে (কোনও ফাংশন অবজেক্ট হিসাবে না থেকে) মূল্যায়নকৃত সিপিএফ প্রতিনিধিত্বকারী কোনও অবজেক্ট রাখতে চান তবে আপনি এটি করতে পারেন
> z = seq(-3, 3, by=0.01) # The values at which we want to evaluate the empirical CDF
> p = P(z) # p now stores the empirical CDF evaluated at the values in z
নোট যাতে p
সর্বাধিক একই পরিমাণে তথ্য P
রয়েছে (এবং সম্ভবত এটিতে কম রয়েছে) যার মধ্যে একই পরিমাণে তথ্য থাকে X
।
x
কেবল লিখুন P(x)
। নোট করুন যে x
কোনও ভেক্টর হতে পারে (আমার উত্তরের শেষ দুটি বাক্য দেখুন see)
আপনার যা প্রয়োজন বলে মনে হচ্ছে তা হ'ল অ্যাকিউলেটেড ডিস্ট্রিবিউশন (কোনও নমুনায় x এর চেয়ে <= একটি মান পাওয়ার সম্ভাবনা), ইসিডিএফ আপনাকে একটি ফাংশন ফিরিয়ে দেয় তবে এটি প্লট করার জন্য তৈরি হয়েছিল বলে মনে হয় এবং তাই, সেই ফাংশনের যুক্তি , যদি এটি সিঁড়ি হত, তবে চলার সূচি হবে।
আপনি এটি ব্যবহার করতে পারেন:
acumulated.distrib= function(sample,x){
minors= 0
for(n in sample){
if(n<=x){
minors= minors+1
}
}
return (minors/length(sample))
}
mysample = rnorm(100)
acumulated.distrib(mysample,1.21) #1.21 or any other value you want.
দুঃখের বিষয় এই ফাংশনটির ব্যবহার খুব দ্রুত নয়। আমি জানি না যে আর এর কোনও ফাংশন রয়েছে যা এটি আপনাকে একটি ফাংশন ফিরিয়ে দেয়, এটি আরও কার্যকর।
R
সত্যই, ইসিডিএফ গণনা করে: এর যুক্তিটি এলোমেলো ভেরিয়েবলের একটি সম্ভাব্য মান এবং এটি ব্যবধানে মানগুলি প্রদান করে। এটি সহজেই পরীক্ষা করা হয়। উদাহরণস্বরূপ, ecdf(c(-1,0,3,9))(8)
ফেরৎ 0.75
। ECDF একটি সাধারণ বিপরীত সমাংশক ফাংশন, দ্বারা বাস্তবায়িত হয় quantile
মধ্যে R
।
আমি সবসময় ecdf()
কিছুটা বিভ্রান্ত হয়ে পড়েছিলাম । প্লাস আমি মনে করি এটি কেবল ইউনিভারিয়েট ক্ষেত্রে কাজ করে। পরিবর্তে এটির জন্য আমার নিজের ফাংশনটি রোলিংয়ে শেষ হয়েছে।
প্রথমে ডেটা.টিটেবল ইনস্টল করুন । তারপরে আমার প্যাকেজটি ইনস্টল করুন, এমটি টলস (অথবা কেবলমাত্র empirical_cdf অনুলিপি করুন ) () আপনার আর পরিবেশে পদ্ধতিটি )
তাহলে এটি যতটা সহজ
# load packages
library(data.table)
library(mltools)
# Make some data
dt <- data.table(x=c(0.3, 1.3, 1.4, 3.6), y=c(1.2, 1.2, 3.8, 3.9))
dt
x y
1: 0.3 1.2
2: 1.3 1.2
3: 1.4 3.8
4: 3.6 3.9
empirical_cdf(dt$x, ubounds=seq(1, 4, by=1.0))
UpperBound N.cum CDF
1: 1 1 0.25
2: 2 3 0.75
3: 3 3 0.75
4: 4 4 1.00
empirical_cdf(dt, ubounds=list(x=seq(1, 4, by=1.0)))
x N.cum CDF
1: 1 1 0.25
2: 2 3 0.75
3: 3 3 0.75
4: 4 4 1.00
empirical_cdf(dt, ubounds=list(x=seq(1, 4, by=1.0), y=seq(1, 4, by=1.0)))
x y N.cum CDF
1: 1 1 0 0.00
2: 1 2 1 0.25
3: 1 3 1 0.25
4: 1 4 1 0.25
5: 2 1 0 0.00
6: 2 2 2 0.50
7: 2 3 2 0.50
8: 2 4 3 0.75
9: 3 1 0 0.00
10: 3 2 2 0.50
11: 3 3 2 0.50
12: 3 4 3 0.75
13: 4 1 0 0.00
14: 4 2 2 0.50
15: 4 3 2 0.50
16: 4 4 4 1.00
বন্ধু, আপনি এই ব্লগে কোডটি পড়তে পারেন।
sample.data = read.table ('data.txt', header = TRUE, sep = "\t")
cdf <- ggplot (data=sample.data, aes(x=Delay, group =Type, color = Type)) + stat_ecdf()
cdf
আরও বিশদ নিম্নলিখিত লিঙ্কে পাওয়া যাবে: