یک متغیر ساختگی یک متغیر باینری است که مقدار 0 یا 1 را می گیرد. یکی از این متغیرها را به یک مدل رگرسیون اضافه می کند تا عواملی را که از ماهیت باینری برخوردار هستند ، نشان دهد ، یعنی آنها یا مشاهده می شوند یا مشاهده نمی شوند.
در این تعریف گسترده چندین مورد استفاده جالب وجود دارد. در اینجا برخی از آنها آورده شده است:
- برای نشان دادن یک ویژگی بله/خیر: برای نشان دادن اینکه آیا یک نقطه داده دارای خاصیت خاصی است یا خیر. به عنوان مثال ، از یک متغیر ساختگی می توان برای نشان دادن اینکه آیا موتور اتومبیل از نوع "استاندارد" یا "توربو" است ، استفاده شود. یا اگر یک شرکت کننده در یک کارآزمایی دارویی متعلق به گروه دارونما یا گروه درمانی باشد.
- برای نشان دادن یک مقدار طبقه بندی: استفاده مرتبط از آدمک ها این است که نشان دهد کدام یک از مجموعه ای از مقادیر طبقه بندی شده یک نقطه داده متعلق به آن است. به عنوان مثال ، سبک بدن یک وسیله نقلیه می تواند یکی از تبدیل ها ، هاچ بک ، کوپه ، سدان یا واگن باشد. در این حالت ، ما پنج متغیر ساختگی را به مجموعه داده ها اضافه می کنیم ، یکی برای هر یک از 5 سبک بدنه و ما یک بردار داغ را "یک رمزگذاری داغ" می کنیم. بنابراین ، بردار [0 ، 1 ، 0 ، 0 ، 0] تمام هاچ بک های موجود در مجموعه داده ها را نشان می دهد.
- برای نشان دادن یک ارزش طبقه بندی شده سفارش داده شده: گسترش استفاده از آدمک ها برای نشان دادن داده های طبقه بندی شده در جایی است که دسته بندی ها سفارش داده می شوند. فرض کنید مجموعه داده های اتومبیل ما حاوی اتومبیل هایی با موتورهای دارای 2،3،4،5،6،8 یا 12 سیلندر است. در اینجا ، ما باید اطلاعات موجود در سفارش را نیز ضبط کنیم. به زودی خواهیم دید که چگونه این کار را انجام دهیم.
- برای نمایندگی یک دوره فصلی: یک متغیر ساختگی می تواند اضافه شود تا هر یک از بسیاری از دوره های فصلی موجود در داده ها را نشان دهد. به عنوان مثال ، جریان ترافیک از طریق تقاطع ها اغلب فصلی را در یک سطح ساعتی نشان می دهد (آنها در ساعات صبح و عصرانه بالاترین هستند) و همچنین یک دوره هفتگی (کمترین روز یکشنبه ها). افزودن متغیرهای ساختگی به داده ها برای هر یک از دو دوره فصلی به شما امکان می دهد بخش اعظم تغییر در جریان ترافیک را که به تغییرات روزانه و هفتگی مربوط می شود ، توضیح دهید.
- برای نشان دادن اثرات ثابت: در حالی که مدل های رگرسیون ساختمان برای مجموعه داده های پانل ، از آدمک ها می توان برای نشان دادن اثرات "خاص واحد" و "زمان خاص" ، به ویژه در یک مدل رگرسیون اثرات ثابت استفاده کرد.
- برای نشان دادن اثرات درمانی: در یک مدل اثرات درمانی ، از یک متغیر ساختگی می توان برای نشان دادن تأثیر هر دو زمان استفاده کرد (یعنی اثر قبل و بعد از درمان) ، تأثیر عضویت در گروه (خواه شرکت کننده درمان را دریافت کرده باشد یادارونما) و تأثیر تعامل بین زمان و عضویت در گروه.
- در طرح های ناپیوستگی رگرسیون: این به بهترین وجه با یک مثال توضیح داده شده است. یک مجموعه داده از تعداد نرخ اشتغال ماهانه را تصور کنید که حاوی افزایش ناگهانی و شدید نرخ بیکاری ناشی از رکود کوتاه و شدید است. برای این داده ها ، یک مدل رگرسیون مورد استفاده برای مدل سازی نرخ بیکاری می تواند یک متغیر ساختگی را برای برآورد تأثیر مورد انتظار رکود بر نرخ بیکاری مستقر کند.
در این فصل ، ما نحوه استفاده از متغیرهای ساختگی را در سه موقعیت اول ، یعنی:
- برای نمایندگی یک خاصیت بله/خیر
- برای نشان دادن یک ارزش طبقه بندی شده
- برای نشان دادن یک ارزش طبقه بندی شده
چهار مورد استفاده آخر ، یعنی استفاده از آدمک ها برای استفاده از داده ها ، برای نشان دادن اثرات ثابت و اثرات درمانی ، و برای مدل سازی ناپیوستگی های رگرسیون ، همه سزاوار فصل های جداگانه خود هستند.
در ضمن، استفاده از Dummies برای نمایش جلوه های ثابت در اینجا پوشش داده شده است:
ما در ساخت یک مدل اثرات درمان و در مدلسازی اثر ناپیوستگیها در فصل دیگری به استفاده از ساختگیها خواهیم پرداخت.
بیایید به اولین مورد استفاده بپردازیم.
نحوه استفاده از یک متغیر ساختگی برای نشان دادن ویژگی Yes/No
ما این روش را با استفاده از مجموعه داده های زیر از وسایل نقلیه حاوی مشخصات بیش از 200 خودرو برگرفته از نسخه سال 1985 Ward's Automotive Yearbook نشان خواهیم داد. هر ردیف شامل مجموعه ای از 26 مشخصات در مورد یک خودرو است:
مجموعه داده خودروها (منبع: UC Irvine)
ما زیرمجموعه ای از این داده ها را شامل هفت متغیر زیر در نظر خواهیم گرفت: ساخت بدنه آسپیراسیون_سبک محدود_وزن تعداد_سیلندر_اندازه موتور_قیمت
یک زیرمجموعه 7 متغیری از مجموعه داده Automobiles.(منبع: UC Irvine)
نسخه 7 متغیری بالا را می توانید از اینجا دانلود کنید.
در مجموعه داده های فوق، متغیر آسپیراسیون از نوع Standard یا Turbo می باشد. هدف رگرسیون ما تخمین اثر آسپیراسیون بر قیمت خودرو است. برای این منظور، یک متغیر ساختگی برای رمزگذاری آسپیراسیون به شرح زیر معرفی می کنیم:
aspiration_std =1 وقتی آسپیراسیون استاندارد است و 0 در غیر این صورت.
ما از کتابخانه Pandas مبتنی بر پایتون برای بارگذاری مجموعه داده ها به عنوان یک Dataframe در حافظه استفاده خواهیم کرد. سپس از کتابخانه statsmodels برای ساخت یک مدل رگرسیون خطی ساده استفاده می کنیم که در آن متغیر پاسخ قیمت است و متغیر رگرسیون aspiration_std (به علاوه رهگیری رگرسیون) است.
بیایید با وارد کردن تمام بسته های مورد نیاز شروع کنیم.
بیایید زیرمجموعه 7 متغیری مجموعه داده خودروها را در یک DataFrame وارد کنیم:
برای نشان دادن متغیر آسپیراسیون، ستونهای متغیر ساختگی را اضافه میکنیم.
مجموعه داده های افزوده شده ساختگی را چاپ کنید.
خروجی زیر را مشاهده می کنیم. من دو ستون متغیر ساختگی اضافه شده توسط پاندا را برجسته کرده ام:
مجموعه دادههای افزوده شده ساختگی (تصویر توسط نویسنده)
بیایید عبارت رگرسیون را بسازیم. رهگیری رگرسیون بعداً توسط مدل به طور خودکار اضافه می شود.
توجه داشته باشید که ما فقط یک متغیر ساختگی aspiration_std اضافه کرده ایم و نه هر دو، aspiration_std و aspiration_turbo. ما این کار را برای جلوگیری از همخطی کامل انجام دادیم زیرا هر موتور خودرو در مجموعه داده یا از نوع توربو یا از نوع استاندارد است. نوع سومی وجود ندارد. در این مورد، رهگیری رگرسیون اثر aspiration_turbo را می گیرد. به طور خاص، مقدار تخمینی رهگیری رگرسیون در مدل آموزش دیده، میانگین قیمت تخمینی تمام خودروهای نوع توربو است.
متناوبا، میتوانستیم هم aspiration_std و هم aspiration_turbo را اضافه کنیم و رهگیری رگرسیون را کنار بگذاریم. در این مورد بعدی، از آنجایی که مدل دارای رهگیری رگرسیون نخواهد بود، ما نمیتوانیم از مقدار R-squared برای قضاوت در مورد مناسب بودن آن استفاده کنیم.
بیایید مدل رگرسیون حداقل مربعات معمولی را بر روی این مجموعه داده افزوده ساختگی بسازیم:
حتی اگر کل مجموعه دادههای 7 متغیری را به این مدل منتقل کردهایم، در داخل، statsmodelها از پارامتر بیان رگرسیون (reg_exp) استفاده میکنند تا فقط ستونهای مورد نظر را برش دهند.
بیایید مدل را آموزش دهیم:
بیایید خلاصه آموزش را چاپ کنیم.
خروجی زیر را مشاهده می کنیم. من قسمت هایی را که از نزدیک بررسی خواهیم کرد را برجسته کرده ام:
خلاصه آموزش مدل OLSR (تصویر توسط نویسنده)
نحوه تفسیر خلاصه آموزش مدل
اولین چیزی که متوجه می شویم این است که R-S-Squared تنظیم شده 0. 027 است. متغیر آسپیراسیون توانسته است فقط کمی زیر 3 ٪ از واریانس قیمت خودرو را توضیح دهد. به نظر می رسد بسیار کوچک است اما نیازی به خواندن بیش از حد در مقدار کم مربع R تنظیم شده نیست. یادآوری کنید که هدف ما تخمین تأثیر آرزوی بر قیمت بود. ما هرگز انتظار نداشتیم که به خودی خود بیشتر از واریانس قیمت را توضیح دهیم. علاوه بر این ، توجه داشته باشید که مقدار P-Statistic S در 0. 0107 قابل توجه است که نشان می دهد حتی این مدل خطی بسیار ساده توانسته است داده ها را بهتر از مدل میانگین متناسب کند (که در اصل خط افقی مسطح است که از میانگین ارزش قیمت عبور می کند).
در مرحله بعد ، ما متوجه می شویم که رهگیری رگرسیون مدل و ضریب Aspiration_STD از نظر آماری معنی دار است ، یعنی غیر صفر ، با مقدار P کمتر از 0. 001 و در 0. 011. این خبر عالی استبیایید ببینیم چگونه مقادیر این ضرایب را تفسیر کنیم.
نحوه تفسیر ضریب متغیر ساختگی در مدل رگرسیون
به یاد داشته باشید که ما متغیر ساختگی Aspration_Turbo را از مدل دور کرده بودیم تا از همبستگی کامل جلوگیری کنیم. با ترک Aspiation_Turbo ، ما کار را برای ذخیره میانگین قیمت توربو در رهگیری مدل رگرسیون داده ایم. رهگیری رگرسیون 16250 است که نشان می دهد میانگین قیمت توربو 16250 دلار است.
ما باید ضرایب همه متغیرهای ساختگی را در مدل با مراجعه به مقدار رهگیری تفسیر کنیم.
در مورد ما ، فقط یک آدمک ، Aspiration_std وجود دارد. این مقدار 3712. 62 است و علامت منفی دارد. این نشان می دهد که اتومبیل هایی که دارای آسپیراسیون نوع "استاندارد" هستند به طور متوسط 3712. 62 دلار ارزان تر از آنهایی هستند که دارای آسپیراسیون نوع "توربو" هستند. میانگین قیمت تخمین زده شده از توربو 16250 دلار است. از این رو ، میانگین قیمت تخمین زده شده غیر توربوس 16250 دلار است-3712. 62 دلار = 12،537. 38 دلار.
با استفاده از نماد آماری ، می توانیم این دو وسیله را به شرح زیر نشان دهیم:
E (قیمت | آسپیراسیون = "استاندارد") = 12،537. 38 دلار
این برآورد فاصله اطمینان 95 ٪ زیر را در حدود میانگین دارد:
[16250 دلار - 6555. 64 دلار = 9،694. 36 دلار ، 16250 دلار - 869. 607 دلار = 15،380. 393 دلار].
ما مقادی ر-6555. 64 دلار و-869. 607 دلار را از بخش CI خروجی آموزش مدل نشان داده شده در زیر گرفتیم:
برای توربو ، انتظار و CIS به شرح زیر است:
E (قیمت | آسپیراسیون = "توربو") = 16250 دلار با CI 95 ٪ [13700 دلار ، 18800 دلار].
معادله رگرسیون مدل نصب شده به شرح زیر است:
قیمت = - 3. 712. 62*ASPINATION_STD + 16250 + E
جایی که "E" حاوی خطای باقیمانده رگرسیون است.
در مرحله بعد ، بیایید به استفاده از متغیرهای ساختگی برای نشان دادن داده های طبقه بندی بپردازیم.
نحوه استفاده از متغیرهای ساختگی برای نشان دادن متغیر رگرسیون طبقه بندی
فرض کنید می خواهیم تأثیر Body_style را بر قیمت تخمین بزنیم. Body_Style یک متغیر طبقه بندی شده است که مجموعه ای از مقادیر زیر را دارد: [قابل تبدیل ، هاردتوپ ، هاچ بک ، سدان ، واگن]. استراتژی کلی ما برای نشان دادن Body_Style شبیه به Aspration است. بنابراین بیایید مستقیماً وارد اجرای آن شویم. ما به کار با Pandas DataFrame که شامل مجموعه داده های اتومبیل 7 متغیر است ، ادامه خواهیم داد.
بیایید DataFrame را با ستون های متغیر ساختگی تقویت کنیم تا Body_Style را نشان دهد:
مجموعه داده های آژانس آژانس را چاپ کنید:
ما خروجی زیر را می بینیم:
مجموعه دادههای افزوده شده ساختگی (تصویر توسط نویسنده)
به ستون های متغیر ساختگی تازه اضافه کنید ، یکی برای هر بدنه.
در مرحله بعد، معادله رگرسیون را در نحو پتسی می سازیم: مانند قبل، یک متغیر ساختگی (body_style_convertible) را کنار می گذاریم تا همخطی کامل را از بین ببریم. رهگیری مدل رگرسیون ضریب body_style_convertible را نگه می دارد.
بیایید مدل رگرسیون OLS را بسازیم:
بیایید مدل را آموزش دهیم:
و بیایید خلاصه آموزش را چاپ کنیم:
ما خروجی زیر را می بینیم:
خلاصه آموزش مدل OLSR (تصویر توسط نویسنده)
مانند قبل، ما روی مربع R تنظیم شده تمرکز نمی کنیم. در عوض، بیایید به آمار F نگاه کنیم و توجه داشته باشیم که در مقدار p قابل توجه است< .001. It indicates that irrespective of the value of R-squared, the variables we have included in the model have been able to do a better job of explaining the variance in price than a simple mean model. With this important piece of due-diligence done and out of the way, let’s dig into the coefficients of all the variables.
نحوه تفسیر ضرایب متغیرهای ساختگی
بیایید نگاه خود را به سمت ضرایب مدل برازش معطوف کنیم. رهگیری تخمین زده شده 21890 است. رهگیری میانگین تخمینی قیمت اقلام تبدیلی است، زیرا این معادله ساختگی بود که ما از معادله رگرسیون حذف کردیم. این برآورد در یک p قابل توجه است< .001. The 95% CI for this estimate is [$16000, $27800].
ضرایب چهار آدمک مخصوص سبک برای سقف سخت، هاچ بک، سدان و واگن نشان دهنده میزان انحراف میانگین سبک مربوطه از میانگین تخمینی قیمت کانورتیبل ها است.
مدل نصب شده میانگین انحراف را برای سقف های سخت 318 دلار تخمین زده است، اما این تخمین از نظر آماری معنی دار نیست. در واقع، در p = 0. 936، بسیار ناچیز است. پس چگونه باید این ضریب را تفسیر کنیم؟راه واضح برای تفسیر آن این است که فرض کنیم در واقعیت، صفر است. این بدان معناست که میانگین قیمت تخمینی سقف های سخت با میانگین قیمت تخمینی کانورتیبل ها یعنی 21890 دلار یکسان است. اما این کاملاً تصویر کامل را ترسیم نمی کند. تخمین 318 دلار با خطای استاندارد عظیم 3980. 519 دلار همراه است. 95% CI مربوطه تقریباً 4 برابر بزرگتر است و از 7532. 146- دلار تا 8168. 146 دلار امتداد دارد. آیا می توانید از میانگینی که با چنین تنوع زیادی از مقادیر در اطراف آن همراه است، استفاده عملی داشته باشید؟پاسخ منفی است. میانگین توزیعهایی که دارای واریانس بسیار گسترده هستند، تنها مقدار بسیار ضعیفی از توزیع را نشان میدهند. بنابراین، بهجای اینکه بگوییم سقفهای سخت دارای میانگین قیمتی مشابه با کانورتیبلها هستند (که هنوز از نظر فنی صحیح است)، بهتر است بیان کنیم که در این مجموعه داده، ویژگی سقف سخت توانایی توضیح هیچ یک از واریانسهای قیمت را ندارد. از خودروها
به طور مشابه، سدان ها با میانگین قیمت تخمینی 7430. 7447 دلار کمتر از کانورتیبل ها هستند و واگن ها با میانگین قیمت تخمینی 9518. 54 دلار کمتر از قیمت کانورتیبل ها هستند.
به طور خلاصه، مدل ما نشان داده است که به طور متوسط، کانورتیبلها گرانترین وسیله نقلیه هستند و پس از آن سدانها، واگنها و هاچبکها به ترتیب قرار دارند، و هیچ چیز مفیدی در مورد سبک سقف سخت در توانایی آن در توضیح واریانس قیمت نمیتوان گفت.
معادله مدل برازش شده به صورت زیر است:
معادله مدل رگرسیون برازش شده (تصویر نویسنده)
چگونه از متغیرهای ساختگی برای نمایش مقادیر طبقه بندی شده استفاده کنیم
مورد استفاده نهایی که در نظر خواهیم گرفت، موردی است که در آن متغیر مقوله ای نظم خاصی را بر اجزای تشکیل دهنده خود تحمیل می کند. یک بار دیگر، ما از داده های خودروها برای تصویر استفاده خواهیم کرد. به طور خاص، ما توجه خود را به متغیر num_of_cylinders معطوف خواهیم کرد.
یک زیرمجموعه 7 متغیری از مجموعه داده Automobiles.(منبع: UC Irvine)
در نگاه اول، num_of_cylinders ممکن است به نظر یک متغیر با مقدار صحیح باشد. یک مدل رگرسیون احتمالی که قیمت را روی تعداد_سیلندرها رگرسیون می کند به شرح زیر است:
یک مدل رگرسیون ساده که قیمت را بر اساس تعداد_سیلندرها کاهش می دهد (تصویر توسط نویسنده)
این مدل یک نقص مهلک دارد که زمانی آشکار می شود که ارزش مورد انتظار قیمت را متمایز کنیم. تعداد_سیلندر:
تغییر در مقدار مورد انتظار قیمت خودرو در واحد تغییر در تعداد سیلندر (تصویر توسط نویسنده)
می بینیم که این مدل برای هر واحد تغییر در تعداد سیلندرها، تغییر مورد انتظار ثابت قیمت را تخمین می زند. این مدل تفاوت قیمت متوسط خودروهای 2 سیلندر و خودروهای 3 سیلندر را دقیقاً مشابه قیمت خودروهای 3 و 4 سیلندر و غیره تخمین می زند. در دنیای واقعی ما انتظار نداریم که شاهد چنین تغییرات یکنواختی در قیمت خودرو باشیم.
یک مدل واقعی تر می تواند مدلی باشد که در آن num_of_cylinders به عنوان یک متغیر طبقه بندی شده با هر مقدار num_of_cylinders با یک متغیر ساختگی نشان داده شود.
مجموعه داده ما دارای وسایل نقلیه با 2،3،4،5،6،8 و 12 سیلندر است. بنابراین مدل را به صورت زیر می سازیم:
یک مدل خطی که در آن num_of_cylinders به عنوان یک متغیر ساختگی طبقه بندی شده نمایش داده می شود (تصویر توسط نویسنده)
ما ساختگی را برای num_of_cylinders_2 حذف کردیم. رهگیری β_0 ضریب تعداد_سیلندر_2 را دریافت می کند. ضرایب همه متغیرهای ساختگی شامل انحراف برآورد شده در میانگین قیمت برای دسته مربوطه از وسایل نقلیه از میانگین قیمت تخمینی خودروهای 2 سیلندر خواهد بود. 95% CI را می توان همانطور که در بالا نشان داده شده محاسبه کرد.
بیایید این مدل را روی مجموعه دادههای خودرو بسازیم و برازش کنیم و خلاصه آموزش را چاپ کنیم.
ما خروجی زیر را می بینیم:
خلاصه آموزش مدل خطی (تصویر توسط نویسنده)
نحوه تفسیر خلاصه آموزش و ضرایب متغیرهای ساختگی
اولین چیزی که در خلاصه جلب توجه می کند، R-squared تنظیم شده بزرگ 0. 618 است. به نظر می رسد تعداد سیلندرها به تنهایی توانایی توضیح 61. 8 درصد از تغییرات قیمت خودرو را دارند.
مثل همیشه، ما با بررسی مقدار p آماره F (که در 2. 87E — 39 آشکارا کمتر از 0. 001 است) دقت لازم را انجام می دهیم که نشان می دهد همه متغیرهای رگرسیون در مدل به طور مشترک بسیار معنی دار هستند.
مانند قبل، تمرکز ما بر روی ضرایب تخمینی، مقادیر p آنها و 95٪ CI باقی می ماند.
بیایید با رهگیری رگرسیون شروع کنیم. برآورد آن 13020 دلار است که میانگین قیمت تخمینی خودروهای 2 سیلندر است. میانگین قیمت از نظر آماری در p 0. 001 با CI 95% [8176. 803، 17900 دلار] معنیدار است.
خودروهای 3 سیلندر با میانگین قیمت تخمینی 13020 دلار - 7869. 0 دلار = 5151 دلار عرضه می شوند، اما این برآورد از نظر آماری تنها در p 0. 153 معنادار است. در تست های اطمینان 95%، 90% و 85% مردود می شود اما سطح اطمینان 80% را پاک می کند.
خودروهای 4 سیلندر دقیقاً پس از خودروهای 3 سیلندر با قیمت متوسط 13020 دلار - 2716. 8025 = 10303. 1975 دلار عرضه می شوند. مجدداً، در p 0. 273، اهمیت این برآورد تنها در سطح اطمینان (1 - 0. 273) 100٪ = 72. 7٪ معتبر است.
میانگین تخمینی خودروهای 5، 6، 8 و 12 سیلندر همگی بسیار قابل توجه است. به نظر میرسد خودروهای 8 سیلندر به طور متوسط گرانترین خودروهای این رده باشند و میانگین قیمت تخمینی آنها 25880 دلار بیشتر از برادران 2 سیلندر آنها باشد.
شکل زیر میانگین قیمتها را در برابر تعداد سیلندرها به همراه کرانهای 95 درصد پایینی و بالایی حول میانگین نشان میدهد.
میانگین قیمت خودرو بر حسب تعداد سیلندرها (تصویر توسط نویسنده)
ما می بینیم که با تغییر هر واحد در تعداد سیلندرها ، قیمت با مبلغ ثابت تغییر نمی کند. این بینش را که قبلاً داشتیم ، تأیید می کند که نباید Num_of_cylinders را به عنوان یک متغیر ساده با ارزش عدد صحیح نشان دهیم.
در اینجا معادله مدل نصب شده است:
معادله مدل رگرسیون متناسب (تصویر توسط نویسنده)
در اینجا کد منبع کامل مورد استفاده در این فصل است:
این پرونده حاوی متن یونیکد دو طرفه است که ممکن است متفاوت از آنچه در زیر مشاهده می شود ، تفسیر یا گردآوری شود. برای مرور ، پرونده را در یک ویرایشگر باز کنید که شخصیت های پنهان یونیکد را نشان می دهد. در مورد شخصیت های دو طرفه یونیکد