آنالیز رگرسیون خطی با استفاده از Stata
مقدمه
رگرسیون خطی (Linear regression) که به آن رگرسیون خطی ساده یا رگرسیون خطی دو متغیره (bivariate) نیز معروف است، زمانی استفاده می شود که بخواهیم مقدار یک متغیر وابسته را بر اساس مقدار یک متغیر مستقل پیش بینی کنیم. به عنوان مثال، میتوانید از رگرسیون خطی استفاده کنید تا بفهمید آیا نمره امتحان را میتوان بر اساس مدت زمانی که صرف مرور درسی میشود، پیشبینی کرد یا نه. یعنی متغیر وابسته شما «نمره امتحان» است که از 0 تا 20 نمره اندازهگیری میشود و متغیر مستقل شما «زمان مرور درسی» خواهد بود ، بر حسب ساعت اندازه گیری می شود. همچنین، میتوانید از رگرسیون خطی برای درک اینکه آیا میزان مصرف سیگار را میتوان بر اساس مدت زمان مصرف سیگار پیشبینی کرد یا نه استفاده کنید. یعنی متغیر وابسته شما «میزان مصرف سیگار» است که بر حسب تعداد سیگارهای مصرفی روزانه اندازهگیری میشود، و متغیر مستقل شما « مدت زمان مصرف سیگار» خواهد بود بر حسب روز اندازه گیری می شود. اگر به جای یک متغیر، دو یا چند متغیر مستقل دارید، باید از رگرسیون چندگانه استفاده کنید. از طرف دیگر، اگر فقط می خواهید تعیین کنید که آیا یک رابطه خطی وجود دارد یا خیر، می توانید از همبستگی پیرسون استفاده کنید.
نکته: متغیر وابسته به عنوان متغیر نتیجه، هدف یا معیار نیز شناخته می شود، در حالی که متغیر مستقل به عنوان متغیر پیش بینی کننده، توضیحی یا رگرسیونی نیز شناخته می شود.
در این آموزش، نحوه انجام رگرسیون خطی با استفاده از Stata و همچنین تفسیر و گزارش نتایج این آزمون را به شما نشان می دهیم. با این حال، قبل از اینکه شما را با این روش آشنا کنیم، باید فرضیات مختلفی را که داده های شما باید رعایت کنند تا رگرسیون خطی به شما نتیجه معتبری بدهد، بدانید. در ادامه به این فرضیات می پردازیم.
فرضیات
هفت “فرض” وجود دارد که زیربنای رگرسیون خطی است. اگر هر یک از این هفت فرض برآورده نشد، نمی توانید داده های خود را با استفاده از رگرسیون خطی تجزیه و تحلیل کنید. زیرا نتیجه معتبری دریافت نمی کنید.
فرض شماره 1:
متغیر وابسته شما باید در سطح پیوسته اندازه گیری شود. نمونههایی از این متغیرهای پیوسته عبارتند از: ارتفاع، دما ، حقوق و دستمزد ، زمان و غیره.
فرض شماره 2:
متغیر مستقل شما باید در سطح پیوسته (continuous) یا طبقه ای (categorical) اندازه گیری شود. با این حال، اگر یک متغیر مستقل طبقه ای دارید، استفاده از آزمون t مستقل (برای 2 گروه) یا ANOVA یک طرفه (برای 3 گروه یا بیشتر) رایج تر است. نمونه هایی از متغیرهای طبقه ای شامل جنسیت (به عنوان مثال، 2 گروه: مرد و زن)، قومیت (به عنوان مثال، 4 گروه: فارس، ترک، کرد و لر)، سطح فعالیت بدنی (مثلا، 3 گروه: کم تحرک، متوسط، پر تحرک) و غیره.
فرض شماره 3:
باید یک رابطه خطی بین متغیرهای وابسته و مستقل وجود داشته باشد. روشهای مختلفی برای بررسی وجود رابطه خطی بین دو متغیر شما وجود دارد. با این حال پیشنهاد میکنیم با استفاده از Stata یکنمودار نقطه ای یا پراکندگی (Scatterplot) ایجاد کنید، و متغیر وابسته را برحسب متغیر مستقل رسم کنید. سپس به صورت بصری می توانید خطی بودن را بررسی کنید. نمودار پراکندگی شما ممکن است چیزی شبیه به یکی از موارد زیر باشد:
اگر رابطه نمایش داده شده در نمودار پراکندگی شما خطی نیست، باید یک تحلیل رگرسیون غیر خطی انجام دهید یا داده های خود را “تبدیل” (transform) کنید، که می توانید با استفاده از Stata انجام دهید.
فرض شماره 4:
نباید نقاط پرت (outliers) قابل توجهی وجود داشته باشد. نقاط پرت صرفاً نقاط داده منفردی در دادههای شما هستند که از الگوی معمول پیروی نمیکنند. نمودارهای پراکنده گی زیر تأثیر بالقوه پرت را برجسته می کند:
مشکل پرت ها این است که می توانند بر معادله رگرسیونی که برای پیش بینی مقدار متغیر وابسته بر اساس متغیر مستقل استفاده می شود، اثر منفی بگذارند. این کار خروجی تولید Stata را تغییر میدهد و دقت پیشبینی نتایج شما را کاهش میدهد. خوشبختانه، میتوانید از Stata برای انجام تشخیصهای نقاط پرت استفاده کنید.
فرض شماره 5:
مشاهدات شما باید استقلال داشته باشند این فرض را به راحتی می توانید با استفاده از آماره دوربین-واتسون (Durbin-Watson statistic)، که یک تست ساده با استفاده از Stata است، بررسی کنید.
فرض شماره 6:
داده های شما باید همسانی و یا همسویی (homoscedasticity) را نشان دهند، یعنی واریانس ها در امتداد خط بهترین تناسب را داشته باشند. دو نمودار پراکندگی زیر نمونههای سادهای از دادههایی را ارائه میدهند که یکی از آنها با این فرض مطابقت دارند و دیگری این فرض را برآورده نمیکند:
هنگامی که داده های خود را تجزیه و تحلیل می کنید، اگر نمودار پراکندگی شما شبیه به یکی از دو مورد بالا باشد، خوش شانس خواهید بود. نمودارهای بالا به نشان دادن تفاوتهای دادهها کمک میکنند که با فرض همسویی بودن مطابقت دارد یا آن را نقض میکند. با این حال دادههای دنیای واقعی اغلب بسیار آشفتهتر هستند. میتوانید بررسی کنید که آیا دادههای شما با رسم باقیماندههای استاندارد شده رگرسیون (regression standardized residuals) برحسب مقدار پیشبینیشده استاندارد شده رگرسیون (regression standardized predicted value) همسویی را نشان میدهند یا خیر.
فرض شماره 7:
در نهایت، باید بررسی کنید که باقیمانده (خطاهای) خط رگرسیون تقریباً به طور نرمال توزیع شده است. دو روش متداول برای بررسی این فرض شامل استفاده از هیستوگرام (با منحنی نرمال روی هم قرار داده شده) یا نمودار P-P نرمال است.
فرضیات #1 و #2 به نوع انتخاب شما از متغیرها مربوط می شود، بنابراین نمی توان آنها را برای استفاده از Stata آزمایش کرد. با این حال، باید تصمیم بگیرید که آیا مطالعه شما با این فرضیات مطابقت دارد یا خیر. خوشبختانه، می توانید با استفاده از Stata فرضیات #3، #4، #5، #6 و #7 را بررسی کنید. پیشنهاد می کنیم فرضیات #3، #4، #5، #6 و #7 به این ترتیب گفته شده آزمایش کنید، زیرا نشان دهنده ترتیبی است که در آن، اگر نقض فرضی قابل اصلاح نباشد، دیگر قادر نمیتوانید از رگرسیون خطی برای تحلیل دادههای خود استفاده کنید. فقط به یاد داشته باشید که اگر این فرضیات را به درستی بررسی نکنید، ممکن است نتایجی که هنگام اجرای رگرسیون خطی به دست می آورید، معتبر نباشند.
در عمل، بررسی فرضیات #3، #4، #5، #6 و #7 احتمالاً بیشتر وقت شما را هنگام انجام رگرسیون خطی میگیرد. با این حال، این کار دشواری نیست و Stata تمام ابزارهایی را که برای انجام این کار نیاز دارید را در اختیار شما قرار می دهد.
در بخش بعدی، روش Stata مورد نیاز برای انجام رگرسیون خطی را با فرض اینکه هیچ فرض گفته شده در بالا نقض نشده است، نشان میدهیم. ابتدا، مثالی که برای توضیح روش رگرسیون خطی در Stata استفاده میکنیم، را ارائه میدهیم.
مثال
مطالعات نشان می دهد که ورزش می تواند به پیشگیری از بیماری قلبی کمک کند. در محدوده معقول، هرچه بیشتر ورزش کنید، خطر ابتلا به بیماری قلبی کمتر است. یکی از راه هایی که ورزش خطر ابتلا به بیماری قلبی را کاهش می دهد، کاهش چربی خون به نام کلسترول است. هر چه بیشتر ورزش کنید، غلظت کلسترول شما کاهش می یابد. علاوه بر این، اخیراً نشان داده شده است که مدت زمانی که صرف تماشای تلویزیون میکنید – که نشاندهنده سبک زندگی کم تحرکی است – ممکن است پیشبینیکننده خوبی برای بیماری قلبی باشد (یعنی هر چه بیشتر تلویزیون تماشا کنید، خطر ابتلا به بیماری های قلبی بیشتر میشود.
بنابراین، یک محقق تصمیم گرفت تعیین کند که آیا غلظت کلسترول با زمان صرف شده برای تماشای تلویزیون در مردان 45 تا 65 ساله سالم (یک دسته از افراد در معرض خطر) مرتبط است یا خیر. برای مثال، وقتی مردم زمان بیشتری را صرف تماشای تلویزیون میکنند، آیا غلظت کلسترول آنها نیز افزایش مییابد (یک رابطه مثبت) یا برعکس؟ همچنین محقق می خواست تعیین کند آیا افرادی که هشت ساعت از روز را صرف تماشای تلویزیون میکنند، در مقایسه با افرادی که فقط دو ساعت تلویزیون تماشا میکنند، سطح کلسترول بالای خطرناکی دارند یا خیر.
برای انجام این تجزیه و تحلیل، محقق 100 شرکت کننده مرد سالم بین 45 تا 65 سال را انتخاب کرد. مقدار زمان صرف شده برای تماشای تلویزیون (متغیر مستقل)، time_tv و غلظت کلسترول (متغیر وابسته) cholesterol برای همه 100 شرکتکننده ثبت شد. با بیان متغیرها، محقق می خواست رگرسیون cholesterol را برحسب time_tvرسم کند.
توجه: مثال و داده های استفاده شده برای این آموزش ساختگی هستند.
تنظیمات در Stata
در Stata، دو متغیر ایجاد کردیم ، (1) time_tv که میانگین زمان صرف شده روزانه برای تماشای تلویزیون بر حسب دقیقه است (متغیر مستقل) و (2) cholesterol، که غلظت کلسترول برحسب میلی مول در لیتر (متغیر وابسته) است.
توجه: فرقی نمی کند که ابتدا متغیر وابسته را ایجاد کنید یا متغیر مستقل را ایجاد کنید.
پس از ایجاد این دو متغیر time_tv وcholesterol، مقادیر هر کدام را در دو ستون صفحه Data Editor (Edit) وارد کردیم. همانطور که در زیر نشان داده شده است، در ستون سمت چپ time_tv مدت زمان تماشای تلویزیون توسط شرکت کنندگان (متغیر مستقل (و در ستون سمت راست cholesterol غلظت کلسترول شرکت کنندگان (متغیر وابسته) وارد شده اند:
روش تست در Stata
در این بخش به شما نشان میدهیم که چگونه دادههای خود را با استفاده از رگرسیون خطی در Stata تجزیه و تحلیل کنید، البته به شرطی که که شش فرض گفته شده در بخش قبلی، نقض نشده باشند. شما می توانید رگرسیون خطی را با استفاده از کد (code) یا رابط کاربری گرافیکی (graphical user interface (GUI)) انجام دهید. پس از اینکه تجزیه و تحلیل خود را انجام دادید، به شما نشان می دهیم که چگونه نتایج خود را تفسیر کنید. ابتدا انتخاب کنید که از کدام روش استفاده می کنید (code یا GUI).
الف) با استفاده از code:
کد برای انجام رگرسیون خطی روی داده های شما به شکل زیر است:
regress DependentVariable IndependentVariable
این کد در کادر فرمان زیر وارد می شود:
با استفاده از مثال ما که در آن متغیر وابسته cholesterol و متغیر مستقل time_tv است، کد مورد نیاز این خواهد بود:
regress cholesterol time_tv
نکته 1: هنگام وارد کردن کد در کادر باید دقیق باشید. کد حساس به کاراکتر های بزرگ و کوچک است. به عنوان مثال، اگر «cholesterol» را به جای c کوچک، «C» بزرگ وارد کرده باشید (Cholesterol) ، یک پیام خطایی مانند زیر دریافت خواهید کرد:
نکته 2: اگر همچنان پیام خطای بالا دریافت میکنید، باید نام دو متغیر خود را در Data Editor بررسی کنید (به عنوان مثال، صفحه Data Editor را در بالا ببینید). در کادر در سمت راست صفحه Data Editor، شما متغیرهای خود را در قسمت Name تایپ میکنید، نه قسمت Label که باید در کد وارد کنید (برای متغیر وابسته) . این ممکن است بدیهی به نظر برسد، اما این خطایی است که گاهی اوقات رخ می دهد و منجر به خطای بالا می شود.
بنابراین، کد regress cholesterol time_tv را وارد کنید، سپس دکمه “Enter” را روی صفحه کلید خود فشار دهید تا خروجی تولید شود.
ب) با استفاده از GUI
سه مرحله مورد نیاز برای انجام رگرسیون خطی در Stata در زیر نشان داده شده است:
مرحله (1)
همانطور که در زیر نشان داده شده است، روی
Statistics > Linear Models and related > Linear Regression
در منوی اصلی کلیک کنید:
پنجره Regress – Linear Regression به شما نمایش داده می شود:
مرحله (2)
cholesterol را از داخل کادر Dependent variable و time_tv را از داخل کادر Independent variables انتخاب کنید. در نهایت با صفحه زیر مواجه خواهید شد:
مرحله (3)
بر روی دکمه OK کلیک کنید. با انجام این مراحل، این خروجی تولید می شود.
خروجی رگرسیون خطی در Stata
اگر داده های شما از فرض شماره 3 (یعنی یک رابطه خطی بین دو متغیر شما وجود دارد)، شماره 4 (یعنی هیچ نقطه پرت قابل توجهی وجود نداشت)، فرض شماره 5 (یعنی مشاهدات استقلال داشتند)، فرض شماره 6 (داده های شما همسویی را نشان می دهند) و فرض شماره 7 (یعنی باقیمانده ها (خطاها) تقریباً به طور نرمال توزیع شده اند)، که قبلاً در بخش فرضیات توضیح دادیم، عبور کردند، شما فقط باید خروجی رگرسیون خطی زیر را در Stata تفسیر کنید:
خروجی شامل چهار بخش مهم از اطلاعات است: (الف) مقدار R2 (ردیف”R-squared”) نشان دهنده نسبت واریانس در متغیر وابسته است که می تواند توسط متغیر مستقل ما توضیح داده شود. با این حال، R2 بر اساس نمونه است و یک تخمین با سوگیری مثبت از نسبت واریانس متغیر وابسته است که توسط مدل رگرسیون به حساب میآید (یعنی خیلی بزرگ است). (ب) یک مقدار R2 تنظیم شده (ردیف “Adj R-squared”)، که سوگیری مثبت را تصحیح می کند تا مقداری را که در جامعه انتظار می رود ارائه کند. (ج) مقدار F، درجات آزادی ((1,98)F) و اهمیت آماری مدل رگرسیون (ردیف “Prob>F”) و (د) ضرایب برای متغیر ثابت و مستقل (ستون”Coef.”)، که اطلاعاتی است که برای پیش بینی متغیر وابسته، کلسترول، با استفاده از متغیر مستقل، time_tv نیاز دارید.
در این مثال، R2=0.151 Adj R2=0.143 (تا سه رقم اعشار) است. به این معنی است که متغیر مستقل time_tv، 14.3٪ از تغییرپذیری متغیر وابسته، کلسترول، را در جمعیت توضیح می دهد. R2 تنظیم شده نیز تخمینی از اندازه اثر (effect size) است که طبق طبقه بندی کوهن (1988) در 0.143 (14.3%) نشان دهنده اندازه اثر متوسط است. در این مثال، مدل رگرسیون از نظر آماری معنادار است، F(1,98)=17.47,p=.0001. مقدارp=.0001 نشان می دهد که، به طور کلی، مدل اعمال شده می تواند به طور قابل توجهی متغیر وابسته، کلسترول را پیش بینی کند.
گزارش خروجی تحلیل رگرسیون خطی
هنگامی که خروجی رگرسیون خطی خود را گزارش می کنید، باید شامل موارد زیر باشد: (الف) مقدمه ای برای تحلیلی که انجام داده اید. (ب) اطلاعات مربوط به نمونه شما، از جمله مقادیر گمشده؛ (ج) مقدار F مشاهده شده، درجات آزادی و سطح اهمیت (یعنی مقدارp)؛ (د) درصد تغییرپذیری در متغیر وابسته که توسط متغیر مستقل توضیح داده شده است (یعنی R2 تنظیم شده شما)؛ و (ه) معادله رگرسیون برای مدل شما. با توجه به نتایج فوق می توان نتایج این تحقیق را به شرح زیر گزارش کرد:
یک رگرسیون خطی نشان داد که زمان روزانه صرف شده برای تماشای تلویزیون میتواند به طور معنیداری غلظت کلسترول را پیشبینی کند، (F(1,98)=17.47,p=.0001) و زمان صرف شده برای تماشای تلویزیون 14.3٪ از تغییرات توضیح داده شده در غلظت کلسترول را تشکیل میدهد. معادله رگرسیون عبارت بود از:
2.135- 0.044 × زمان تماشای تلوزیون = غلظت کلسترول پیشبینیشده
علاوه بر گزارش نتایج به شرح بالا، می توان از یک نمودار برای ارائه بصری نتایج استفاده کرد. به عنوان مثال، می توانید این کار را با استفاده از یک نمودار پراکنده با اطمینان و فواصل پیش بینی انجام دهید (البته اضافه کردن آخرین مورد چندان معمول نیست). این می تواند درک نتایج شما را، برای دیگران آسان تر کند. علاوه بر این، می توانید از معادله رگرسیون خطی خود برای پیش بینی مقدار متغیر وابسته بر اساس مقادیر مختلف متغیر مستقل استفاده کنید. Stata این مقادیر را به عنوان بخشی از روش رگرسیون خطی بالا تولید نمی کند، با این حال روشی در Stata وجود دارد که می توانید برای انجام این کار از آن استفاده کنید.
مطالب زیر را هم از دست ندهید:
رگرسیون لجستیک دو جمله ای (Binomial logistic regression) با استفاده از Minitab
رگرسیون لجستیک چند جمله ای در SPSS
رگرسیون پواسون با استفاده از SPSS
رگرسیون لجستیک دو جمله ای با استفاده از SPSS
رگرسیون لجستیک ترتیبی با استفاده از SPSS
رگرسیون چندگانه با استفاده از SPSS
یک پاسخ