কাগজপত্রের জন্য আপনার অনুরোধ সম্পর্কিত, এখানে রয়েছে:
এটি আপনি যা খুঁজছেন তা পুরোপুরি নয়, তবে এটি মিলের গ্রিস্ট হিসাবে পরিবেশন করতে পারে।
আরও একটি কৌশল রয়েছে যা কেউ উল্লেখ করেছেন বলে মনে হয় না। এটা তোলে উৎপন্ন করা সম্ভব (ছদ্ম) আকার একটি সেট থেকে বের র্যান্ডম তথ্য সম্পূর্ণ সেট পূরণ করে যেমন যে এতক্ষণ সীমাবদ্ধতার যেমন অবশিষ্ট তথ্য উপযুক্ত মান এ ঠিক করা হয়েছে। প্রয়োজনীয় মানগুলি সমীকরণ, বীজগণিত এবং কিছু কনুই গ্রীসের ব্যবস্থা সহ দ্রবণীয় হতে হবে । N−kNkkk
উদাহরণস্বরূপ, একটি সেট তৈরি করতে একটি সাধারণ বন্টনের যে একটি প্রদত্ত নমুনা অর্থ থাকবে, থেকে ডেটা , এবং ভ্যারিয়েন্স, : আপনি দুই পয়েন্ট মান ঠিক করতে হবে এবং । যেহেতু নমুনাটির অর্থ হ'ল: অবশ্যই হবে:
নমুনার বৈকল্পিকতা হল:
এভাবে (উপরের স্থলে জন্য স্থির করার পরে , ফয়েলিং / বিতরণ, এবং পুনরায় সাজানো ... ) আমরা পেতে:
Nx¯s2yz
x¯=∑N−2i=1xi+y+zN
yy=Nx¯−(∑i=1N−2xi+z)
s2=∑N−2i=1(xi−x¯)2+(y−x¯)2+(z−x¯)2N−1
y2(Nx¯−∑i=1N−2xi)z−2z2=Nx¯2(N−1)+∑i=1N−2x2i+[∑i=1N−2xi]2−2Nx¯∑i=1N−2xi−(N−1)s2
যদি আমরা , , এবং আরএইচএসের উপকার হিসাবে, আমরা
চতুর্ভুজ সূত্র ব্যবহার করে জন্য সমাধান করতে পারি । উদাহরণস্বরূপ, ইন , নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:
a=−2b=2(Nx¯−∑N−2i=1xi)czR
find.yz = function(x, xbar, s2){
N = length(x) + 2
sumx = sum(x)
sx2 = as.numeric(x%*%x) # this is the sum of x^2
a = -2
b = 2*(N*xbar - sumx)
c = -N*xbar^2*(N-1) - sx2 - sumx^2 + 2*N*xbar*sumx + (N-1)*s2
rt = sqrt(b^2 - 4*a*c)
z = (-b + rt)/(2*a)
y = N*xbar - (sumx + z)
newx = c(x, y, z)
return(newx)
}
set.seed(62)
x = rnorm(2)
newx = find.yz(x, xbar=0, s2=1)
newx # [1] 0.8012701 0.2844567 0.3757358 -1.4614627
mean(newx) # [1] 0
var(newx) # [1] 1
এই পদ্ধতির সম্পর্কে কিছু জিনিস বুঝতে হবে। প্রথমত, এটি কাজ করার গ্যারান্টিযুক্ত নয়। উদাহরণস্বরূপ, এটি সম্ভব যে আপনার প্রাথমিক ডেটা এমন যে কোনও মান এবং বিদ্যমান নেই যা ফলাফলের সমান বৈকল্পিকতা তৈরি করবে । বিবেচনা: N−2yzs2
set.seed(22)
x = rnorm(2)
newx = find.yz(x, xbar=0, s2=1)
Warning message:
In sqrt(b^2 - 4 * a * c) : NaNs produced
newx # [1] -0.5121391 2.4851837 NaN NaN
var(c(x, mean(x), mean(x))) # [1] 1.497324
দ্বিতীয়ত, যেখানে মানককরণ আপনার সমস্ত প্রকরণের প্রান্তিক বিতরণকে আরও অভিন্ন করে তোলে, এই পদ্ধতির শুধুমাত্র শেষ দুটি মানকেই প্রভাবিত করে, তবে তাদের প্রান্তিক বিতরণগুলি ত্রুটিযুক্ত করে তোলে:
set.seed(82)
xScaled = matrix(NA, ncol=4, nrow=10000)
for(i in 1:10000){
x = rnorm(4)
xScaled[i,] = scale(x)
}
set.seed(82)
xDf = matrix(NA, ncol=4, nrow=10000)
i = 1
while(i<10001){
x = rnorm(2)
xDf[i,] = try(find.yz(x, xbar=0, s2=2), silent=TRUE) # keeps the code from crashing
if(!is.nan(xDf[i,4])){ i = i+1 } # increments if worked
}
তৃতীয়ত, ফলস্বরূপ নমুনা খুব স্বাভাবিক না দেখায় ; মনে হতে পারে এটির 'আউটলিয়ার্স' রয়েছে (অর্থাত্ পয়েন্টগুলি যা অন্যদের থেকে আলাদা ডেটা উত্পন্নকরণ প্রক্রিয়া থেকে আসে), যেহেতু এটি মূলত কেস। বৃহত্তর নমুনা আকারগুলির ক্ষেত্রে এটির সমস্যা কম হওয়ার সম্ভাবনা রয়েছে, কারণ উত্পন্ন ডেটা থেকে প্রাপ্ত নমুনা পরিসংখ্যানগুলি প্রয়োজনীয় মানগুলিতে রূপান্তরিত হয় এবং সুতরাং কম সমন্বয় প্রয়োজন। ছোট নমুনাগুলির সাহায্যে আপনি সর্বদা এই পদ্ধতির সাথে একটি গ্রহণ / প্রত্যাখ্যান অ্যালগরিদমের সাথে একত্রিত করতে পারেন যা উত্পন্ন নমুনার আকারের পরিসংখ্যান (যেমন, স্কিউনেস এবং কুর্তোসিস) যদি গ্রহণযোগ্য সীমার বাইরে থাকে (সিএফ, @ কার্ডিনালের মন্তব্য ) বা প্রসারিত হয় একটি নির্দিষ্ট গড়, বৈকল্পিকতা, skewness, এবং সঙ্গে একটি নমুনা উত্পাদন এই পদ্ধতিরকুর্তোসিস (যদিও বীজগণিতটি আপনার উপর ছেড়ে দেব)) বিকল্পভাবে, আপনি অল্প সংখ্যক নমুনা তৈরি করতে পারেন এবং কোলমোগোরভ-স্মারনভের পরিসংখ্যান সহ একটি ব্যবহার করতে পারেন।
library(moments)
set.seed(7900)
x = rnorm(18)
newx.ss7900 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss7900) # [1] 1.832733
kurtosis(newx.ss7900) - 3 # [1] 4.334414
ks.test(newx.ss7900, "pnorm")$statistic # 0.1934226
set.seed(200)
x = rnorm(18)
newx.ss200 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss200) # [1] 0.137446
kurtosis(newx.ss200) - 3 # [1] 0.1148834
ks.test(newx.ss200, "pnorm")$statistic # 0.1326304
set.seed(4700)
x = rnorm(18)
newx.ss4700 = find.yz(x, xbar=0, s2=1)
skewness(newx.ss4700) # [1] 0.3258491
kurtosis(newx.ss4700) - 3 # [1] -0.02997377
ks.test(newx.ss4700, "pnorm")$statistic # 0.07707929S