(Saya tidak tahu apa yang harus ditandai dengan ini karena saya bukan ahli statistik dan saya tidak tahu bidang apa ini. Jangan ragu untuk menambahkan tag yang lebih cocok.)
Saya bekerja untuk perusahaan yang memproduksi perangkat lunak analisis data, dan kami membutuhkan set data yang layak untuk menguji dan mendemonstrasikan produk terbaru kami. Kami tidak bisa hanya mengisi database dengan output dari generator angka acak karena output program akan menjadi tidak masuk akal. Salah satu cara paling sederhana untuk mendapatkan data tersebut adalah dari klien; kami memiliki banyak data dari uji coba yang kami jalankan. Sekarang, jelas kami tidak dapat mempublikasikan data aktual klien, jadi kami perlu mengubahnya sedikit, tetapi kami masih membutuhkannya untuk berperilaku seperti data nyata.
Tujuannya di sini adalah untuk mengambil set data mereka, dan menerapkan "fuzz" untuk itu sehingga tidak dapat dikenali sebagai milik mereka. Ingatan saya tentang teori statistik itu sendiri sedikit kabur, jadi saya ingin menjalankan ini oleh kalian:
Intinya, data yang kita miliki (dari klien) itu sendiri merupakan sampel dari semua data yang ada (di negara, atau dunia). Yang ingin saya ketahui adalah jenis operasi apa yang dapat diterapkan untuk membuat sampel tidak lagi mewakili populasi sampel klien, sementara tetap mempertahankannya mewakili populasi dunia secara kasar.
Sebagai referensi, sejauh yang kami ketahui data yang kami miliki umumnya mengikuti distribusi kasar normal (Gaussian).
Dataset asli tidak tersedia secara luas, tetapi secara teoritis dapat dikenali dari beberapa karakteristik khusus kawasan (kami tidak tahu apa karakteristik itu, dan diragukan apakah ada yang sampai pada tingkat yang memadai, tetapi kami tahu bahwa variasi ada dari satu tempat). meletakkan). Ngomong-ngomong, saya lebih tertarik pada teori ini daripada praktiknya - saya ingin tahu apakah suatu operasi membuatnya tidak mungkin (atau paling tidak sulit) untuk mengidentifikasi sumber dataset dengan parameter X, apakah ada yang memiliki atau tidak dapat bekerja. parameter X di tempat pertama.
Pendekatan yang saya buat adalah dengan memisahkan bacaan menjadi berbagai jenis, (tanpa memberikan banyak, katakanlah kelompok mungkin "panjang" atau "waktu yang diperlukan untuk melakukan X".) Untuk masing-masing, hitung standar deviasi. Kemudian, untuk setiap nilai, tambahkan nilai acak antara nilai positif dan negatif dari (n * stddev) di mana n adalah sebagian kecil yang dapat saya gunakan untuk menyetel hasil sampai data cukup "fuzzed". Saya tidak ingin hanya menerapkan rentang statis (katakanlah, acak antara 90% dan 110% dari nilai asli) karena beberapa nilai bervariasi jauh lebih atau kurang dari yang lain - dalam beberapa pengukuran, menjadi 10% dari rata-rata hampir tidak terlihat. , tetapi pada orang lain itu membuat Anda menjadi pencilan yang serius.
Apakah ini cukup untuk menutupi sumber data asli? Jika tidak, dengan ukuran statistik mana data masih dapat diidentifikasi, dan bagaimana saya akan menutupi itu sambil tetap menjaga data yang dihasilkan tetap realistis?
sumber
Jawaban:
Ada beberapa saran:
sumber
Saya akan menyarankan pendekatan dua langkah. Langkah pertama adalah pengambilan sampel dengan penggantian - mirip dengan metode yang digunakan dalam bootstrap. Di
R
, Anda bisa menggunakanAnda sekarang memiliki kumpulan data yang berbeda dengan properti yang sama seperti aslinya. Langkah kedua adalah menambahkan variabel acak yang berpusat di sekitar nol:
Variabel acak apa pun yang simetris di sekitar nol akan berfungsi dan batas-batas distribusi tidak penting.
Pada akhirnya, Anda harus memiliki kumpulan data yang sama sekali berbeda dengan properti yang sama dengan kumpulan data lama.
sumber