انتساب داده های گمشده (Imputation of missing data) در R
تقریباً هر مجموعه ای از داده حاوی تعدادی داده های (Missing data) گمشده یا مفقود هستند که میتواند باعث مشکلات عمدهای مانند تخمینهای نادرست یا کاهش کارایی به دلیل مجموعه دادههای کوچکتر شود. برای کاهش این مشکلات، میتوان از تکنیک جانهی یا انتساب (Imputation) برای جایگزینی دادههای گمشده با مقادیر جدید استفاده کرد.
انتساب داده های گمشده (Imputation of missing data) یک تکنیک آماری است که مقادیر جایگزینی را به اقلام داده گمشده اختصاص می دهد.
با این حال، قبل از انجام هر کاری، ابتدا باید به چند سوال پاسخ دهیم.
چرا انتساب داده های گمشده نیاز است؟
در R، حذف ليستي (Listwise Deletion) شامل حذف تمام ردیفهایی با داده های مفقود در یک یا چند مشاهده است و یک روش پیشفرض برای مدیریت دادههای گمشده است.
چرا خودمان را با مفاهیم دشوارتر نگران کنیم، در حالی که درک و اجرای آن ساده است؟
پس طبق معمول است:
با توجه به اینکه ما می توانیم کالیبر تجزیه و تحلیل داده های خود را افزایش دهیم!
مکانیسم پاسخ (response mechanism) داده های ما تعیین می کند که داده های گمشده چگونه بر تجزیه و تحلیل داده های ما تأثیر می گذارد
انتساب داده در مقابل حذف لیستی
با توجه به اینکه انتساب داده های گمشده بر حجم نمونه تأثیر نمی گذارد، واریانس مطالعات بر اساس داده های منتسب به طور معمول کمتر است.
بسته به مکانیسم پاسخ، حذف لیستی از نظر سوگیری بهتر از داده های گمشده است. در نتیجه، از imputation باید برای جایگزینی داده های گمشده استفاده شود.
انتساب داده های گمشده چگونه انجام می شود؟
تقریباً همه نرم افزارهای آماری امروزه از تکنیک های انتساب داده های گمشده استفاده می کنند.
ما در اینجا برای انتساب داده های مفقود از نرم افزار RStudio استفاده می کنیم. شما می توانید برای این کار از نرم افزار های دیگری مانند SPSS، Stata یا SAS استفاده کنید.
ما از مجموعه ای از داده های کیفیت هوا (air quality data) به عنوان مثال استفاده خواهیم کرد. داده ها قبلاً در R گنجانده شده اند و می توانند به شرح زیر بارگذاری شوند:
بیایید داده ها را بارگذاری کنیم
data(airquality)
شش متغیر (Ozone, Solar.R, Wind, Temp, Month, Day) و 153 مشاهده در داده ها وجود دارد. Ozone و Solar.R, دارای داده های گمشده هستند.
خلاصه داده ها
head(airquality)
Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6
اگر از حذف لیستی به عنوان مبنای مطالعه خود استفاده کنیم، حجم نمونه ما به 111 مشاهده کاهش می یابد. که 27.5 درصد گمشده هستند.
تعداد موارد کامل را با دستور زیر بررسی کنید
sum(complete.cases(airquality))
[1] 111
بدون شک چنین کاهش شدیدی در حجم نمونه منجر به تخمینهای نادرست و همچنین کاهش دقت خواهد شد.
خوشبختانه، ما میتوانیم به لطف انتساب دادههای گمشده عملکرد بهتری داشته باشیم!
استفاده از R برای انتساب داده های گمشده
“mice” مخفف multivariate imputations by chained equations یعنی انتساب چند متغیره توسط معادلات زنجیره ای یک ابزار انتساب قوی برای R است.
برای کاربران متخصص، بسته “mice” انواع تکنیک ها و ویژگی های انتساب داده های گمشده را ارائه می دهد. با این حال، ویژگی های پیش فرض فوق العاده ای نیز دارد و بنابراین استفاده از آن برای تازه واردان بسیار ساده است.
ابتدا باید بسته “mice” را نصب و بارگذاری کنیم
#install.packages("mice") library("mice")
در مرحله بعد، از کد زیر برای محاسبه داده های گمشده استفاده کنید. اکنون می توانیم داده های گمشده را Impute کنیم:
imp <- mice(airquality, m = 1)
iter imp variable 1 1 Ozone Solar.R 2 1 Ozone Solar.R 3 1 Ozone Solar.R 4 1 Ozone Solar.R 5 1 Ozone Solar.R
ما به سادگی میتوانیم دادههای دریافتی خود را در یک مجموعه دادههای تازه و تمامشده پس از انتساب داده های مفقودذخیره کنیم و یک قاب داده جدید با داده های منتسب ایجاد کنید.
airquality_imputed <- complete(imp)
اکنون دیگر داده ای مفقود نیست و انتساب کامل شده است.
head(airquality_imputed) summary(airquality_imputed)
Ozone Solar.R Wind Temp Min. : 1.00 Min. : 7.0 Min. : 1.700 Min. :56.00 1st Qu.: 18.00 1st Qu.:120.0 1st Qu.: 7.400 1st Qu.:72.00 Median : 32.00 Median :207.0 Median : 9.700 Median :79.00 Mean : 41.76 Mean :188.8 Mean : 9.958 Mean :77.88 3rd Qu.: 61.00 3rd Qu.:259.0 3rd Qu.:11.500 3rd Qu.:85.00 Max. :168.00 Max. :334.0 Max. :20.700 Max. :97.00 Month Day Min. :5.000 Min. : 1.0 1st Qu.:6.000 1st Qu.: 8.0 Median :7.000 Median :16.0 Mean :6.993 Mean :15.8 3rd Qu.:8.000 3rd Qu.:23.0 Max. :9.000 Max. :31.0
واقعاً آنقدرها هم سخت نبود، نه؟
مطالب زیر را هم از دست ندهید:
نحوه تعیین خودکار تعداد خوشه ها توسط قانون آرنج
هوش مصنوعی (AI) چیست؟ 3 چیز که باید بدانید
تجزیه و تحلیل آماری: تعریف، مثال
روایی نتیجه گیری آماری (SCV) چیست؟
تحلیل سئوال روش تحقیق آزمون دکتری
چگونه نتایج حاشیه خطا را تفسیر کنیم؟
تفاوت بین یادگیری ماشین، علم داده، هوش مصنوعی، یادگیری عمیق و آمار
آمار در مقایسه با یادگیری ماشینی در سیستم های بیولوژیک
یک پاسخ