ডেভিড হ্যারিস একটি দুর্দান্ত উত্তর দিয়েছেন , তবে যেহেতু প্রশ্নটি সম্পাদিত হতে চলেছে, সম্ভবত এটি তার সমাধানের বিশদটি দেখতে সহায়তা করবে। নিম্নলিখিত বিশ্লেষণের হাইলাইটগুলি হ'ল:
ওজনযুক্ত সর্বনিম্ন স্কোয়ারগুলি সম্ভবত সাধারণ ন্যূনতম স্কোয়ারের চেয়ে বেশি উপযুক্ত।
কারণ অনুমানগুলি যে কোনও ব্যক্তির নিয়ন্ত্রণের বাইরে উত্পাদনশীলতার বৈচিত্রকে প্রতিফলিত করতে পারে, স্বতন্ত্র কর্মীদের মূল্যায়ন করতে সেগুলি ব্যবহার সম্পর্কে সতর্ক থাকুন।
এটি কার্যকর করার জন্য আসুন নির্দিষ্ট সূত্রগুলি ব্যবহার করে কিছু বাস্তববাদী ডেটা তৈরি করা যাক আমরা সমাধানটির যথার্থতাটি মূল্যায়ন করতে পারি। এটি দিয়ে করা হয় R
:
set.seed(17)
n.names <- 1000
groupSize <- 3.5
n.cases <- 5 * n.names # Should exceed n.names
cv <- 0.10 # Must be 0 or greater
groupSize <- 3.5 # Must be greater than 0
proficiency <- round(rgamma(n.names, 20, scale=5)); hist(proficiency)
এই প্রাথমিক পদক্ষেপে, আমরা:
এলোমেলো সংখ্যা জেনারেটরের জন্য একটি বীজ সেট করুন যাতে যে কেউ ফলাফলের পুনরুত্পাদন করতে পারে।
নির্দিষ্ট করুন কতগুলি শ্রমিক সেখানে সঙ্গে আছে n.names
।
দ্বারা প্রতি গ্রুপে প্রত্যাশিত সংখ্যক শ্রমিককে নির্ধারণ করুন groupSize
।
কতগুলি কেস (পর্যবেক্ষণ) সহ উপলব্ধ তা সুনির্দিষ্ট করুন n.cases
। (পরে এগুলির কয়েকটি মুছে ফেলা হবে কারণ এগুলি এলোমেলোভাবে ঘটে থাকে, আমাদের সিন্থেটিক কর্মীবাহিনীর কোনও শ্রমিকের সাথেই নয় correspond)
প্রতিটি গ্রুপের কাজের যোগফলের ভিত্তিতে ভবিষ্যদ্বাণী করা হবে তার থেকে কাজের পরিমাণের পরিমাণ এলোমেলোভাবে সাজানোর ব্যবস্থা করুন "দক্ষতা"। এর মান cv
একটি সাধারণ আনুপাতিক প্রকরণ; যেমন ,0.10 এখানে প্রদত্ত একটি সাধারণ 10% প্রকরণের সাথে মিল রয়েছে (যা কয়েকটি ক্ষেত্রে 30% এরও বেশি হতে পারে)।
বিভিন্ন কাজের দক্ষতা সহ লোকের একটি কর্মশক্তি তৈরি করুন। কম্পিউটিংয়ের জন্য এখানে প্রদত্ত প্যারামিটারগুলি proficiency
সেরা এবং সবচেয়ে খারাপ কর্মীদের মধ্যে 4: 1 এরও বেশি পরিসীমা তৈরি করে (যা আমার অভিজ্ঞতাতে প্রযুক্তি এবং পেশাগত কাজের ক্ষেত্রে কিছুটা সংকীর্ণও হতে পারে, তবে এটি রুটিন উত্পাদন কাজের ক্ষেত্রেও প্রশস্ত)।
এই সিনথেটিক কর্মী হাতে নিয়ে, আসুন তাদের কাজ অনুকরণ করুন । এটি schedule
প্রতিটি পর্যবেক্ষণের জন্য প্রতিটি শ্রমিকের দল তৈরি করে ( ) কোনও পর্যবেক্ষক নির্ধারণ করে যার মধ্যে কোনও শ্রমিক জড়িত ছিল না), প্রতিটি গ্রুপের কর্মীদের দক্ষতার সংক্ষিপ্তসার এবং এ পরিমাণটি একটি এলোমেলো মান দ্বারা গুন করা (যথাযথ গড়)1) অনিবার্যভাবে সংঘটিত হওয়া বৈচিত্রগুলি প্রতিফলিত করতে। (যদি কোনও ভিন্নতা না থাকে তবে আমরা এই প্রশ্নটি গণিত সাইটের দিকে উল্লেখ করতাম, যেখানে উত্তরদাতারা এই সমস্যাটি কেবল একইসাথে রৈখিক সমীকরণের একটি সেট হিসাবে চিহ্নিত করতে পারেন যা দক্ষতার জন্য ঠিক সমাধান করা যেতে পারে।)
schedule <- matrix(rbinom(n.cases * n.names, 1, groupSize/n.names), nrow=n.cases)
schedule <- schedule[apply(schedule, 1, sum) > 0, ]
work <- round(schedule %*% proficiency * exp(rnorm(dim(schedule)[1], -cv^2/2, cv)))
hist(work)
বিশ্লেষণের জন্য সমস্ত ওয়ার্কগ্রুপ ডেটা একক ডেটা ফ্রেমে রেখে দেওয়া কিন্তু কাজের মানগুলি পৃথক রাখতে সুবিধাজনক পেয়েছি:
data <- data.frame(schedule)
এটিই আমরা আসল উপাত্ত দিয়ে শুরু করব: আমাদের কর্মীরা গ্রুপিংটি data
(বা schedule
) দ্বারা এনকোড করে এবং work
অ্যারেতে পর্যবেক্ষণ করা কাজের আউটপুটগুলি দেখতে পাবে ।
দুর্ভাগ্যক্রমে, যদি কিছু শ্রমিক সর্বদা জুটিবদ্ধ হয় তবে R
এর lm
পদ্ধতিটি একটি ত্রুটি সহ কেবল ব্যর্থ হয়। এই জাতীয় জুড়ি জন্য আমাদের প্রথমে পরীক্ষা করা উচিত। একটি উপায় হ'ল শিডিউলে নিখুঁতভাবে সম্পর্কযুক্ত কর্মীদের সন্ধান করা:
correlations <- cor(data)
outer(names(data), names(data), paste)[which(upper.tri(correlations) &
correlations >= 0.999999)]
আউটপুটটি সর্বদা জোড় করা জোড় জোড়ের তালিকা তৈরি করবে: এটি এই শ্রমিকদের দলে সংযুক্ত করতে ব্যবহার করা যেতে পারে, কারণ কমপক্ষে আমরা প্রতিটি দলের উত্পাদনশীলতা অনুমান করতে পারি , যদি এর মধ্যে থাকা ব্যক্তি না হয়। আমরা আশা করি এটি কেবল থেমে গেছে character(0)
। ধরা যাক এটি করে।
পূর্বোক্ত ব্যাখ্যায় অন্তর্ভুক্ত একটি সূক্ষ্ম বিন্দু হ'ল সম্পাদিত কাজের প্রকরণটি গুণক, সংযোজনীয় নয়। এটি বাস্তবসম্মত: বৃহৎ গোষ্ঠীর শ্রমিকের আউটপুট পরিবর্তনের বিষয়টি পরম আকারে ছোট গ্রুপের পরিবর্তনের চেয়ে বেশি হবে। তদনুসারে, আমরা সাধারণ ন্যূনতম স্কোয়ারের চেয়ে কম ওজনযুক্ত স্কোয়ার ব্যবহার করে আরও ভাল অনুমান করব । এই নির্দিষ্ট মডেলটিতে ব্যবহারের জন্য সর্বোত্তম ওজন হ'ল কাজের পরিমাণের প্রতিদান। (ইভেন্টে কিছু কাজের পরিমাণ শূন্য হয়, আমি শূন্য দ্বারা বিভাজন এড়াতে একটি অল্প পরিমাণ যুক্ত করে এটিকে সম্মতি জানাই))
fit <- lm(work ~ . + 0, data=data, weights=1/(max(work)/10^3+work))
fit.sum <- summary(fit)
এটিতে মাত্র এক বা দুই সেকেন্ড সময় নেওয়া উচিত।
চলার আগে আমাদের ফিটের কিছু ডায়াগনস্টিক টেস্ট করা উচিত। যদিও সেগুলি নিয়ে আলোচনা করা আমাদের এখানে খুব দূরে নিয়ে যাবে, R
দরকারী ডায়াগনস্টিকস তৈরির একটি আদেশ
plot(fit)
(এটি কয়েক সেকেন্ড সময় নেবে: এটি একটি বড় ডেটাসেট!)
যদিও কোডের এই কয়েকটি লাইনটি সমস্ত কাজ করে এবং প্রতিটি শ্রমিকের জন্য অনুমানযোগ্য দক্ষতা ছুঁড়ে দেয়, আমরা কমপক্ষে এক্ষুনি নয় - 1000 টি আউটপুটের লাইনটি স্ক্যান করতে চাই না। ফলাফলগুলি প্রদর্শন করতে গ্রাফিক্স ব্যবহার করা যাক ।
fit.coef <- coef(fit.sum)
results <- cbind(fit.coef[, c("Estimate", "Std. Error")],
Actual=proficiency,
Difference=fit.coef[, "Estimate"] - proficiency,
Residual=(fit.coef[, "Estimate"] - proficiency)/fit.coef[, "Std. Error"])
hist(results[, "Residual"])
plot(results[, c("Actual", "Estimate")])
হিস্টগ্রাম (নীচের চিত্রের নীচের বাম প্যানেল) আনুমানিক এবং প্রকৃত দক্ষতার মধ্যে পার্থক্য, যা অনুমানের স্ট্যান্ডার্ড ত্রুটির গুণক হিসাবে প্রকাশিত হয়। একটি ভাল পদ্ধতির জন্য, এই মানগুলি প্রায় সবসময়ই থাকে- 2 এবং 2 এবং চারপাশে প্রতিসাম্যিকভাবে বিতরণ করা হবে 0। যদিও এতে 1000 জন কর্মী জড়িত রয়েছে, তবে আমরা প্রমিতভাবে এই প্রমিত কিছু পার্থক্য প্রসারিত করতে দেখব fully3 আর যদি 4 থেকে দূরে 0। ঠিক এখানেই ঘটনাটি: হিস্টোগ্রামটি যতটা আশা করতে পারে তত সুন্দর। (অবশ্যই একটি জিনিস অবশ্যই এটি দুর্দান্ত: এগুলি সর্বোপরি সিমুলেটেড ডেটা But তবে প্রতিসাম্যতা নিশ্চিত করে যে ওজনগুলি তাদের কাজটি সঠিকভাবে করছে।
স্ক্যাটারপ্লট (চিত্রের নীচের ডান প্যানেল) সরাসরি অনুমানযোগ্য দক্ষতার সাথে তুলনা করে। অবশ্যই এটি বাস্তবে উপলব্ধ হবে না, কারণ আমরা প্রকৃত দক্ষতা জানি না: এর মধ্যে কম্পিউটার সিমুলেশনটির শক্তি রয়েছে। পালন:
যদি কাজের মধ্যে এলোমেলো কোনও পরিবর্তন না ঘটে ( cv=0
এটি দেখার জন্য কোডটি সেট করুন এবং পুনরায় চালু করুন), স্ক্যাটারপ্লটটি একটি নিখুঁত তির্যক রেখা হবে। সমস্ত অনুমান পুরোপুরি নির্ভুল হবে। সুতরাং, এখানে দেখা স্ক্যাটারটি সেই প্রকারের প্রতিফলন ঘটায়।
কখনও কখনও, একটি আনুমানিক মান আসল মান থেকে অনেক দূরে। উদাহরণস্বরূপ, এখানে একটি পয়েন্ট রয়েছে (১১০, ১ 160০) যেখানে আনুমানিক দক্ষতা প্রকৃত দক্ষতার চেয়ে প্রায় ৫০% বেশি। এটি কোনও বড় ব্যাচের ডেটাতে প্রায় অনিবার্য। কর্মীদের মূল্যায়ন করার মতো অনুমানগুলি পৃথক ভিত্তিতে ব্যবহার করা হবে কিনা তা মনে রাখবেন । সামগ্রিকভাবে এই অনুমানগুলি সর্বোত্তম হতে পারে তবে কোনও পরিমাণ নিয়ন্ত্রণের বাইরে কাজের কারণগুলির ফলে কাজের উত্পাদনশীলতার প্রকরণ, তারপরে শ্রমিকদের কয়েকটির জন্য অনুমানটি ভুল হবে: কিছু খুব বেশি, কিছু খুব কম। এবং কে আক্রান্ত হয়েছে তা সুনির্দিষ্টভাবে বলার উপায় নেই।
এই প্রক্রিয়া চলাকালীন চারটি প্লট উত্পন্ন হয়।
পরিশেষে, নোট করুন যে এই রিগ্রেশন পদ্ধতিটি অন্যান্য ভেরিয়েবলগুলির জন্য নিয়ন্ত্রণের সাথে সহজেই রূপান্তরিত হয় যা সম্ভবত উত্পাদনশীলতার সাথে যুক্ত হতে পারে group এর মধ্যে গ্রুপের আকার, প্রতিটি কাজের প্রচেষ্টার সময়কাল, একটি সময়ের পরিবর্তনশীল, প্রতিটি গ্রুপের পরিচালকের জন্য একটি ফ্যাক্টর ইত্যাদি অন্তর্ভুক্ত থাকতে পারে। এগুলি কেবল রিগ্রেশনে অতিরিক্ত ভেরিয়েবল হিসাবে অন্তর্ভুক্ত করুন।