এলোমেলো শ্রেণিবদ্ধ ডেটা কীভাবে তৈরি করা যায়?


15

আসুন আমরা বলি যে আমার কাছে একটি স্পষ্টগত পরিবর্তনশীল রয়েছে যা এ, বি, সি এবং ডি মানগুলি গ্রহণ করতে পারে আমি কীভাবে প্রতিটি এর ফ্রিকোয়েন্সিটির জন্য 10000 এলোমেলো ডেটা পয়েন্ট এবং নিয়ন্ত্রণ তৈরি করতে পারি? উদাহরণ স্বরূপ:

এ = 10% বি = 20% সি = 65% ডি = 5%

কোনও ধারণা কীভাবে আমি এটি করতে পারি?

উত্তর:


35

আপনি কি চান যে নমুনায় অনুপাত ঠিক একই অনুপাতে বর্ণিত হবে? বা সেই অনুপাতের সাথে খুব বিশাল জনসংখ্যার থেকে নমুনা দেওয়ার ধারণাটি উপস্থাপন করতে (সুতরাং নমুনার অনুপাতটি নিকটে হবে তবে সঠিক হবে না)?

আপনি যদি সঠিক অনুপাতটি চান তবে আপনি ব্র্যান্ডনের পরামর্শ অনুসরণ করতে পারেন এবং সঠিক অনুপাত sampleসহ কোনও ভেক্টরের ক্রমটি এলোমেলো করতে আর ফাংশনটি ব্যবহার করতে পারেন ।

আপনি যদি জনসংখ্যার থেকে নমুনা নিতে চান তবে অনুপাতটিকে যথাযথভাবে সীমাবদ্ধ না করেন তবে আপনি sampleআর এর সাথে এই জাতীয় probযুক্তি সহ ফাংশনটি ব্যবহার করতে পারেন:

> x <- sample( LETTERS[1:4], 10000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05) )
> prop.table(table(x))
x
     A      B      C      D 
0.0965 0.1972 0.6544 0.0519 

6

আর (http://cran.r-project.org/) ব্যবহার করে। আমি এখানে যা যা করছি সবগুলি আপনার নির্দিষ্ট অনুপাতের সাথে একটি এলোমেলো তালিকা তৈরি করছে।

x <- c(rep("A",0.1*10000),rep("B",0.2*10000),rep("C",0.65*10000),rep("D",0.05*10000))
# cheating    
x <- sample(x, 10000) 


prop.table(summary(as.factor(x)))

/ আমি এই সত্যিই এলোমেলো এটা নিয়ে তর্ক করার জন্য ধৈর্য ধরে অপেক্ষা


5
আপনি আপনার প্রথম লাইনটি সংক্ষিপ্ত / সরল করতে পারেন x <- rep( c("A","B","C","D"), 10000*c(0.1,0.2,0.65,0.05) )এবং আপনাকে কলটিতে 10000 নমুনার জন্য নির্দিষ্ট করার দরকার নেই, এটি ডিফল্ট হবে (যদিও স্বচ্ছতার জন্য এটি নির্দিষ্ট করতে ক্ষতি করে না)।
গ্রেগ তুষার

3
    n <- 10000
    blah <- character(n)
    u <- runif(n)
    blah[u<=0.1] <- "A"
    blah[u>0.1 & u<=0.3] <- "B"
    blah[u>0.3 & u<=0.95] <- "C"
    blah[u>0.95] <- "D"
    table(blah)
    prop.table(summary(as.factor(blah)))

আমার সন্দেহ নেই যে এটি সত্যই এলোমেলো। মানে, runif()এলোমেলোভাবে যে পরিমাণ :)


4
যদি কাঙ্ক্ষিত ফ্রিকোয়েন্সিগুলি সত্যিই সম্ভাবনা থাকে তবে তার পক্ষে probযুক্তিটি ব্যবহার করা আরও সহজ হবে sample():sample(LETTERS[1:4], 10000, replace=TRUE, prob=c(0.1, 0.2, 0.65, 0.05))
ক্যারাকাল

হ্যাঁ, এটা অনেক কিউটার। খনি কেবল একটি নিষ্ঠুর শক্তি।
স্টাসকে

আমি আসলে এটি উন্নত করেছি কারণ এটি দেখায় যে কীভাবে sample(,prob=)কাজ করা হয় (কমপক্ষে পোলিশ ভাষায় এটি রুলেট অ্যালগরিদম বলা হয়)।

2

আপনি যদি কোনও এসএএস ব্যবহারকারী হন তবে সাম্প্রতিক সংস্করণগুলি এটি "টেবিল" বিতরণ বলে তার থেকে টানতে অনুরূপ ক্ষমতা প্রদান করে - যা র্যান্ড () ফাংশনের অংশ হিসাবে আপনি যা খুঁজছেন তা। Http://support.sas.com/docamentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a001466748.htm দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.