Saya tidak tahu banyak tentang statistik jadi bersabarlah. Katakanlah saya memiliki 1000 pekerja. Saya ingin mengetahui siapa pekerja yang paling sulit, tetapi saya hanya bisa mengukur jumlah pekerjaan yang dilakukan dalam kelompok 1-100 selama satu jam kerja. Dengan asumsi setiap pekerja selalu melakukan pekerjaan dengan jumlah yang sama, selama sejumlah besar percobaan dan kombinasi dapatkah saya memberi peringkat pada pekerja saya dengan siapa yang bekerja paling keras?
Catatan: ini hanya metafora, jadi jangan khawatir untuk benar-benar menjalankan tes, anggap saja saya sudah memiliki set data yang besar.
Sunting: Ketika saya mengatakan "Dengan asumsi setiap pekerja selalu melakukan pekerjaan dengan jumlah yang sama" Maksud saya setiap individu melakukan pekerjaan dengan jumlah yang sama setiap hari. Jadi Joey akan mengerjakan sekitar 100 unit pekerjaan setiap hari dan Greg akan mengerjakan sekitar 50 unit. Masalahnya adalah saya hanya bisa mengamati jumlah unit pekerjaan yang dilakukan oleh grup.
Lebih banyak suntingan: Terkait jumlah pekerja sekaligus dan frekuensi mereka bekerja. Mungkin ada sejumlah pekerja yang bekerja pada saat yang sama. Beberapa pekerja mungkin akhirnya akan bekerja jauh lebih banyak daripada yang lain, artinya, kita dapat mengasumsikan beberapa pekerja akan bekerja hampir 90% dari waktu dan yang lain hampir tidak pernah.
Saya tahu itu menyulitkan tetapi saya akan memiliki dataset yang sangat besar sehingga mudah-mudahan itu membuatnya sedikit lebih mudah.
Untuk setiap jam kita tahu pekerja mana yang bekerja dan berapa banyak pekerjaan yang dilakukan. Dari informasi itu saya ingin mencari tahu siapa yang melakukan paling banyak pekerjaan.
Jika data dalam format JSON itu akan terlihat seperti ini:
[
{
"work_done": 12345,
"Workers": [ "andy", "bob", "cameron", "david" ]
},
{
"work_done": 432,
"Workers": [ "steve", "joe", "andy"]
},
{
"work_done": 59042,
"Workers": [ "bob", "aaron", "michelle", "scott", "henry" ]
},
...
]
sumber
Jawaban:
David Harris telah memberikan jawaban yang bagus , tetapi karena pertanyaannya terus diedit, mungkin akan membantu untuk melihat rincian solusinya. Sorotan dari analisis berikut adalah:
Kuadrat terkecil tertimbang mungkin lebih tepat daripada kuadrat terkecil biasa.
Karena perkiraan dapat mencerminkan variasi dalam produktivitas di luar kendali individu, berhati-hatilah dalam menggunakannya untuk mengevaluasi pekerja individu.
Untuk melakukan ini, mari kita buat beberapa data realistis menggunakan rumus yang ditentukan sehingga kita dapat mengevaluasi keakuratan solusi. Ini dilakukan dengan
R
:Dalam langkah-langkah awal ini, kami:
Tetapkan seed untuk generator angka acak sehingga siapa pun dapat mereproduksi hasilnya.
Tentukan berapa banyak pekerja yang ada
n.names
.Menetapkan jumlah pekerja yang diharapkan per kelompok
groupSize
.Tentukan berapa banyak kasus (pengamatan) yang tersedia
n.cases
. (Kemudian beberapa dari ini akan dihilangkan karena mereka sesuai, seperti yang terjadi secara acak, tidak ada pekerja di tenaga kerja sintetis kami.)Atur jumlah pekerjaan agar berbeda secara acak dari yang diperkirakan berdasarkan pada jumlah "keahlian" masing-masing kelompok. Nilai0,10
cv
adalah variasi proporsional yang khas; Misalnya , diberikan di sini sesuai dengan variasi 10% khas (yang dapat berkisar di luar 30% dalam beberapa kasus).Buat tenaga kerja orang-orang dengan berbagai keahlian kerja. Parameter yang diberikan di sini untuk komputasi
proficiency
menciptakan kisaran lebih dari 4: 1 antara pekerja terbaik dan terburuk (yang menurut pengalaman saya mungkin sedikit sempit untuk teknologi dan pekerjaan profesional, tetapi mungkin lebar untuk pekerjaan manufaktur rutin).Dengan tenaga kerja sintetis ini, mari kita simulasikan pekerjaan mereka . Ini sama dengan menciptakan kelompok masing-masing pekerja (1
schedule
) untuk setiap pengamatan (menghilangkan pengamatan di mana tidak ada pekerja sama sekali terlibat), menjumlahkan kemahiran para pekerja di setiap kelompok, dan mengalikan jumlah itu dengan nilai acak (rata-rata tepat ) untuk mencerminkan variasi yang pasti akan terjadi. (Jika tidak ada variasi sama sekali, kami akan merujuk pertanyaan ini ke situs Matematika, di mana responden dapat menunjukkan masalah ini hanya seperangkat persamaan linear simultan yang dapat diselesaikan tepat untuk kemahiran.)Saya merasa nyaman untuk menempatkan semua data kelompok kerja ke dalam satu kerangka data tunggal untuk dianalisis tetapi untuk menjaga nilai kerja tetap terpisah:
Di sinilah kita akan mulai dengan data nyata: kita akan memiliki pengelompokan pekerja dikodekan oleh
data
(atauschedule
) dan hasil kerja yang diamati dalamwork
array.Sayangnya, jika beberapa pekerja selalu dipasangkan,
R
'slm
prosedur hanya gagal dengan kesalahan. Kita harus memeriksa dulu untuk pasangan semacam itu. Salah satu caranya adalah dengan menemukan pekerja berkorelasi sempurna dalam jadwal:Outputnya akan mencantumkan pasangan pekerja yang selalu berpasangan: ini dapat digunakan untuk menggabungkan pekerja ini ke dalam kelompok, karena setidaknya kita dapat memperkirakan produktivitas masing-masing kelompok, jika tidak individu di dalamnya. Kami harap itu hanya dimuntahkan
character(0)
. Mari kita anggap itu benar.Satu poin halus, tersirat dalam penjelasan di atas, adalah bahwa variasi dalam pekerjaan yang dilakukan adalah multiplikatif, bukan aditif. Ini realistis: variasi dalam output kelompok besar pekerja, pada skala absolut, akan lebih besar daripada variasi dalam kelompok-kelompok kecil. Karenanya, kami akan mendapatkan taksiran yang lebih baik dengan menggunakan kuadrat terkecil berbobot daripada kuadrat terkecil biasa. Bobot terbaik untuk digunakan dalam model khusus ini adalah kebalikan dari jumlah pekerjaan. (Dalam hal beberapa jumlah pekerjaan adalah nol, saya memperdaya ini dengan menambahkan sedikit untuk menghindari pembagian dengan nol.)
Ini seharusnya hanya membutuhkan satu atau dua detik.
Sebelum melanjutkan, kita harus melakukan beberapa tes diagnostik kecocokan. Meskipun membahas itu akan membawa kita terlalu jauh ke sini, satu
R
perintah untuk menghasilkan diagnostik yang bermanfaat adalah(Ini akan memakan waktu beberapa detik: itu set data besar!)
Meskipun beberapa baris kode ini melakukan semua pekerjaan, dan mengeluarkan perkiraan kemahiran untuk setiap pekerja, kami tidak ingin memindai melalui semua 1000 jalur output - setidaknya tidak segera. Mari kita gunakan grafik untuk menampilkan hasilnya .
Plot sebar (panel kanan bawah gambar) langsung membandingkan perkiraan keahlian dengan yang sebenarnya. Tentu saja ini tidak akan tersedia dalam kenyataan, karena kita tidak tahu kemahiran yang sebenarnya: di sinilah letak kekuatan simulasi komputer. Mengamati:
Jika tidak ada variasi acak dalam pekerjaan (set
cv=0
dan jalankan kembali kode untuk melihat ini), scatterplot akan menjadi garis diagonal yang sempurna. Semua perkiraan akan sangat akurat. Jadi, pencar yang terlihat di sini mencerminkan variasi itu.Terkadang, nilai yang diestimasikan cukup jauh dari nilai sebenarnya. Misalnya, ada satu titik dekat (110, 160) di mana kemahiran yang diperkirakan sekitar 50% lebih besar dari kemahiran yang sebenarnya. Ini hampir tidak bisa dihindari dalam kumpulan data yang besar. Ingatlah ini jika perkiraan akan digunakan secara individual , seperti untuk mengevaluasi pekerja. Secara keseluruhan perkiraan ini mungkin sangat baik, tetapi sejauh variasi dalam produktivitas kerja disebabkan oleh sebab-sebab di luar kendali individu, maka bagi beberapa pekerja perkiraan tersebut akan keliru: beberapa terlalu tinggi, beberapa terlalu rendah. Dan tidak ada cara untuk mengatakan dengan tepat siapa yang terpengaruh.
Berikut adalah empat plot yang dihasilkan selama proses ini.
Akhirnya, perhatikan bahwa metode regresi ini mudah diadaptasi untuk mengendalikan variabel lain yang mungkin terkait dengan produktivitas kelompok. Ini dapat mencakup ukuran kelompok, durasi setiap upaya kerja, variabel waktu, faktor untuk manajer setiap kelompok, dan sebagainya. Cukup sertakan mereka sebagai variabel tambahan dalam regresi.
sumber
results
): Anda dapat mengurutkannya berdasarkan nilai yang diperkirakan. Anda dapat mengekspornya ke spreadsheet, dll.Anda ingin mengatur data Anda seperti ini, dengan 1 menunjukkan bahwa orang tersebut adalah bagian dari tim yang melakukan pekerjaan baris itu:
Kemudian, Anda bisa melakukan regresi linier (dengan asumsi semuanya aditif, dll, seperti yang Anda sebutkan di komentar). Di
R
, perintahnya adalahlm(work.done ~ . + 0, data = my.data)
"Formula"
work.done ~ . + 0
mengatakan, dalam bahasa Inggris, bahwa jumlah pekerjaan yang dilakukan tergantung pada semua kolom lainnya (itulah ".") Dan bahwa kelompok tanpa pekerja tidak akan melakukan pekerjaan (itulah "+ 0"). Ini akan memberi Anda perkiraan kontribusi dari masing-masing pekerja untuk output kelompok rata-rata.Seperti yang dibahas dalam komentar, jika Anda memiliki sepasang pekerja yang selalu bersama, model tidak akan membedakan kontribusi kedua pekerja dari satu sama lain, dan salah satu dari mereka akan mendapatkan "NA".
sumber