رگرسیون خطی در پایتون
رگرسیون خطی، یکی از پایهایترین الگوریتمهای هوشمصنوعی و یادگیری ماشین است , برای هر کاربردی که با دیتا سرورکار دارد، مفید خواهد بود. در یادگیری ماشین شما با الگوریتمهای مختلفی آشنا میشوید. که هر کدام برای آنالیز کردن مجموعه دادهها مفید هستند. شما میتوانید به کمک این الگوریتمها بر اساس یکسری از ورودی ها، خروجیای متناسب را پیشبینی کنید. در مقاله پیشرو در وبسایت کامنت، شما با تئوری یکی از این الگوریتمها و همچنین پیادهسازی آن در پایتون آشنا خواهید شد.
رگرسیون خطی چیست؟
رگرسیون خطی(Linear Regression) برای استخراج یک رابطه، بین چند ویژگیمشخص(متغیرهای مستقل) و یک ویژگی هدف(متغیر وابسته) از مجموعهی دادههای ما است. زمانی که در متغیرهای وابسته فقط یک متغیر داشته باشیم، به این نوع رگرسیون، رگرسیون خطی Uni-variate و در حالت دیگر به آن، رگرسیون خطی چندگانه(Multiple) میگویند.
فرضیات یک رگرسیون خطی
در الگوریتم رگرسیون، شما یک خطی را که به دادههای شما نزدیک باشد، پیدا خواهید کرد و به کمک آن در مکانهایی که داده ندارید، بتوانید خروجی مناسب و تقریبی را بر اساس ورودیها پیدا کنید. این خط طبیعتا یک رابطه ریاضیاتی خواهد داشت:
این رابطه، یک رابطه کلی است که براساس تعداد پارامترها ورودی میتواند اندازه آن تغییر کند.
- متغیر Y مقداری است که ما به کمک این الگوریتم و بر اساس یکسری مقادیر از ویژگیهای ورودی، پیشبینی کردهایم(متغیر هدف).
- x1.x2,… ورودیهای ما هستند که خروجی بر اساس اینها ساخته میشود(متغیرهای وابسته).
- به θ₁,…,θₙ پارامترهای مدل میگویند. اینها ضرایبی هستند که مدل، آنها را در ورودیها ضرب میکند.
- مقدار θ₀ هم به اسم بایاس(bias) شناخته میشود و بعد از ضرب ورودیها در پارامترها، با مقدار نهایی جمع میگردد.
اگر به رابطه بالا دقت کنید، در صورتی که یک ویژگی ورودی داشته باشیم، فقط دو بخش اول را خواهیم داشت. که این خود نمایانگر رابطه یک خط مستقیم در صفحهی مختصات دوبعدی خواهد بود. که در شکل های ادامه درس آن را بیشتر خواهید دید.
در ادامه کار فرض کنید ما یکسری داده داریم که به صورت زیر قرار گرفتهاند. یعنی محور x ورودی و y خروجی ما باشد. دقت شود که در شکل زیر ما فقط یک ویژگی برای ورودی در نظر گرفتهایم.
اکنون قرار است خطی را پیدا کنیم تا در محلهایی که مقدار نداریم، خروجی را پیشبینی کنیم. پس به سراغ مرحله train کردن میرویم.
یافتن پارامترها
در این بخش، ما مدل خود را به کمک دادههای موجود، train میکنیم. منظور از train کردن این است که پارامترهای رابطه اول را بتوانیم پیدا کنیم. یعنی این پارامترها را طوری مشخص کنیم، که بتوانیم دادهها را با یک خط صاف هم پیشبینی کنیم.
حال سوالی مطرح میتوان کرد که چه خطی بهترین و نزدیکترین خط به مجموعه داده ما است. تصویر زیر را ملاحظه کنید. در این تصویر شما تعدادی داده میبینید؛ که یک خط بینشان قرار گرفته است. فرض کنید این خط همان خطیست که یک مدل برای ما مشخص کرده. طبیعتا هر داده تا این خط صاف فاصلهای خواهد داشت. مجموع این فاصلهها و تقسیم بر تعداد کل دادهها، مشخص کننده خوب بودن یا بد بودن این خط نسبت به دادههای ماست. پس یعنی هر چه این متغیر، مقدار کمتری داشته باشد، نشان دهنده نزدیکتر بودن خط به مجموعهداده ها است.
- در این زمینه، منظور از فاصله همان فاصله عمودی هر داده تا خط مشخص شده است.
- به این فاصله residual نیز میگویند.
به مجموعه این فاصلهها، خطای مدل گفته میشود. پس برای ارزیابی این مدل(این خط) میتوان از فرمول زیر که خود رابطه ریاضی توضیحات گفته شده است، استفاده کرد. به این تابع، تابع هزینه(cost) هم گفته میشود.
که در رابطه بالا h به صورت زیر تعریف شده است:
در واقع h همان خط در تصویر بالاست( در تصویر بالا فقط یک پارامتر ورودی داریم پس در رابطه بالا فقط تا x1 خواهیم داشت) و y ها نیز خروجی خط ما به ازای هر ورودی است. m هم تعداد نقاطی است که ما برای پیدا کردن خط، در اختیار داریم(دقت شود که θ₀ عضو همیشگی خواهد بود).
نکته: ما در توضیحات گفتیم که فاصله را میابیم. این فاصله میتواند فقط اختلاف بین دو خروجی باشد یا هم که مانند رابطه مشخص شده، مقدار مربع این تفاوت باشد.
اکنون ما باید پارامترهای مدلرا طوری بدست آوریم که مقدار تابع هزینه ما کمترین مقدار بشود. برای اینکار ما از روش Geadient Descent استفاده میکنیم.
Gradient Descent
این الگوریتم، یک روش عمومی بهینهسازی در مسائل یادگیری ماشین است. این روش به صورت یک کار تکراری، پارامترهای مدل را تغییر میدهد تا تابع هزینه ما، به ازای تکرارهای مختلف همینطور کم و کمتر و خط پیدا شده به داده ها نزدیک بشود. مراحل این الگوریتم به صورت زیر مشخص میشود:
اول کار، ما مقادیری تصادفی برای پارامترهای مدل انتخاب میکنیم. (random initialization)
اکنون باید بررسی کنیم که به ازای تغییر پارامترها، تابع هزینه چقدر تغییر میکند. این موضوع همان مشتق جزئی است که در ریاضیات وجود دارد. پس در این مرحله، ما مشتق تابع هزینه را نسبت به هر یک از پارامترها محاسبه میکنیم. دو فرمول زیر برای دو پارامتر اول است:
اگر در مورد مشتق اطلاعاتی ندارید و مایل به یادگیری هستید، میتوانید به این لینک مراجعه کنید.
به طور مشابه، برای هر پارامتر دیگری هم میتوان این فرمول را استفاده کرد.
بعد از اینکه ما مشتقات جزئی را محاسبه کردیم، پارامترهای موجود را از مقادیر قبلی به مقادیر جدید با فرمولهای زیر آپدیت میکنیم و تغییر میدهیم:
در رابطه بالا شما رابطه مشتق(که در فرمولهای قبلی مشخص شد) را هم میبینید. مقدار آلفا (α)، یک مقدار انتخابی است که به نام پارامتر یادگیری از آن یاد میگردد.
دو مرحله قبلی، تا زمانی که، تابع هزینه به مقدار مینیمم، همگرا بشود ادامه پیدا میکند. اگر این مقدار آلفا کم باشد، زمان رسیدن به مقدار نزدیک مینیمم، زیاد میشود، و اگر هم خیلی بزرگ باشد، ممکن است overshoot اتفاق افتد و به مینیمم نرسیم. برای فهم بیشتر به تصویر زیر از دوره آقای Andrew NG توجه کنید:
برای شروع کار با این الگوریتم، ابتدا مقادیر اولیه پارامترها را 0 میدهیم. که با این کار مقدار Y برابر 0 نیز میشود. حال این الگوریتم با تکرارهای خودش سعی میکند، مقادیر پارامترها را تغییر دهد تا زمانی که به یک مقدار هزینه کم برسیم و در این لحظه میگوییم این مدل یا خط بر دیتاهای ما fit شده است.
اگر مقدار آلفا، کم باشد، سرعت یادگیری خیلی کم میشود که تصویر زیر این موضوع را نشان میدهد:
و اگر مقدار آلفا، نه خیلی کم و نه خیلی زیاد باشد، بدین صورت است:
اگر این مقدار خیلی زیاد باشد، ممکن است overshoot استفاده افتد و بالا و پایین بهترین خط(خط قرمز) حرکت کند. که این اتفاق ممکن است باعث شود تا به بهترین خط نرسیم.
پیادهسازی رگرسیون خطی در پایتون
در این بخش از مقاله، الگوریتم رگرسیون خطی را روی یکسری دادههای تصادفی اجرا میکنیم و نتایج آن را میبینیم:
برای اینکار، از کتابخانههای numpy و Scikit-learn استفاده میکنیم( Scikit-learn به اسم sklearn نیز استفاده میشود). همچنین از کتابخانه matplotlib برای رسم نمودارها استفاده خواهیم کرد.
خب برای نصب این کتابخانهها، میتوانید از کدهای زیر در ترمینال سیستمعامل، استفاده کنید. در صورتی که نصب دارید، نیاز دوباره به این کار نخواهید داشت.
اولین قدم آن است که دادهها را آماده کنید. در پروژههای واقعی شما با یکسری دادهآماده شده، مواجه میشود. اما در اینجا ما یکسری داده تصادفی که حدودا، به صورت یک خط مورب باشند، میسازیم.
برای اینکار ما از کتابخانه numpy استفاده خواهیم کرد:
کد مربوط به ساخت این دیتاها را هم میبینید:(x ها مربوط به ورودیما یعنی ویژگی ماست و y نیز به عنوان نتیجه خروجی است). ما از متد rand در numpy استفاده کردهایم که وظیفه آن ساخت دادههای رندم، بین 0 تا 1 است. ورودی این تابع در این مثال 100 و 1 است که در خروجی آن 1 ستون 100 ردیفه برای ما ساخته میشود. در خط 4، طی یک رابطه خطی، ورودی را به خروجی، تبدیل میکند.
در ادامه برای اینکه یک مدل رگرسیون خطی را به کمک کتابخانه sklearn پیادهسازی کنیم. باید کلاس مربوط به این الگوریتم را فراخوانی کنیم بدین منظور در اول برنامه، این کتابخانه را باید اضافه کرده و کلاس LinearRegression را فراخوانی کنیم. این کلاس در بخش linear_model در این کتابخانه موجود است پس بدین صورت فراخوانی میکنیم:
برای بدست آوردن مدل، ما ابتدا این کلاس را فراخوانی کردیم و سپس عملیات fit که وظیفه train کردن مدل را دارد اجرا میشود و بهترین خط ممکن را برای پیشبینی به ما میدهد. برای اینکار بعد از train شدن مدل، همان ورودی(x) را به مدل میدهیم و خروجیهای مدنظر و پیشبینی شده را دریافت میکنیم. از دستور predict بدین منظور استفاده کردهایم:
طبیعتا برای اینکه بررسی کنیم، مدل ما چقدر به دادههای اصلی ما نزدیک است، نیاز داریم تا محاسباتی را بین مقادیر خروجیها اصلی و پیشبینیها انجام دهیم. موارد را در بخش بعدی و با عنوان ارزیابی مدل بررسی میکنیم.
ارزیابی مدل
ما از روش RMSE (میانگین مربعات خطا) که در فرمول زیرهم رگرسیون خطی چیست؟ مشخص شده است، استفاده میکنیم:
منظور از این فرمول ریاضیاتی، میانگین تواندوی اختلاف بین مقدار پیشبینی شده و مقدار واقعی خروجی برای ورودیها مختلف است.
برای پیادهسازی این فرمول شما میتوانید خودتان برنامهی این محاسبات را بنویسید، البته که در راهی سادهتر میتوانید از تابع این رابطه در کتابخانه sklearn استفاده کنید. برای این کار شما باید از کلاس metrics، متد mean_squared_error را به برنامه اضافه کنید:
این متد دو ورودی دارد: اولی مقادیر اصلی و دومی مقادیر پیشبینی شدهی توسط مدل است.
نمایش دادهها
در انتهای این پیادهسازی ابتدا به کمک دستور scatter در کتابخانه matplotlib دادههای اصلی را نمایش میدهیم :
ورودیهای scatter به ترتیب: محورافقی(در اینجا ویژگی ورودی) – محور عودی( در اینجا ویژگی خروجی) و ورودی s هم مربوط به اندازه هر نقطه نمودار است.
برای نمایش خط پیش بینی شده هم از دستور plot استفاده میکنیم که کارش وصل کردن نقاطی است که به آن داده میشود. پس به صورت زیر از آن استفاده میکنیم:
طریقه استفاده از دستور plot همانند قبلی است اما ورودی color را برایش تنظیم کردهایم:
برای دانلود و مشاهده نوتبوک مربوط به این مقاله، به صفحه Github ما مراجعه کنید.
پایان
خوشحالیم که تا انتهای این مقاله همراه بودید. امیدواریم که این مقاله آموزشی رسانه کامنت برای شما مفید بودهباشد.
تعریف رگرسیون خطی (Linear Regression) قسمت ۴
در آمار، رگرسیون خطی یک روریکرد مدل خطی بین متغیر «پاسخ» (Response) با یک یا چند متغیر «توصیفی» (Explanatory) است. اغلب برای کشف مدل رابطهی خطی بین متغیرها از رگرسیون (Regression) استفاده میشود. در این حالت فرض بر این است که یک یا چند متغیر توصیفی که مقدار آنها مستقل از بقیه متغیرها یا تحت کنترل محقق است، میتواند در پیشبینی متغیر پاسخ که مقدارش وابسته به متغیرهای توصیفی و تحت کنترل محقق نیست، موثر باشد. هدف از انجام تحلیل رگرسیون شناسایی مدل خطی این رابطه است.
در ادامه از متغیر وابسته به جای متغیر پاسخ و متغیر مستقل به جای متغیر توصیفی استفاده میکنیم.
از آنجایی که ممکن است علاوه بر متغیرهای مستقل، عوامل زیاد و ناشناخته دیگری نیز در تعیین مقدار متغیر وابسته نقش داشته باشند، مدل رگرسیونی را با مناسبترین تعداد متغیر مستقل در نظر گرفته و میزان خطا را به عنوان نماینده عوامل تصادفی دیگری که قابل شناسایی نبودند در نظر میگیریم که انتظار است کمتر در تغییرات متغیر وابسته نقش داشته باشند.
تاریخچه رگرسیون
واژه رگرسیون برای اولین بار در مقاله معروف فرانسیس گالتون دیده شد که در مورد قد فرزندان و والدینشان بود. این واژه به معنی بازگشت است. او در مقاله خود در سال ۱۸۷۷ اشاره میکند که قد فرزندان قد بلند به میانگین قد جامعه میل میکند. او این رابطه را «بازگشت» (Regress) نامید.
هر چند واژه رگرسیون در شاخه علوم زیستی معرفی شد ولی آنچه امروزه به نام رگرسیون میشناسیم، روشی است که توسط «گاوس» (Gauss) در سال ۱۸۰۹ معرفی شد تا به کمک آن پارامترهای مجهول رابطه بین مدار سیارههای منظومه شمسی را برآورد کند.
بعدها روش گاوس توسط پیرسون (Pearson) توسعه یافت و با مفاهیم آماری آمیخته شد. همچنین پیرسون توزیع توام متغیر وابسته و مستقل را توزیع گاوسی در نظر گرفت. بعدها «فیشر» (R. A. Fisher) توزیع متغیر وابسته به شرط متغیر مستقل را توزیع گاوسی محسوب کرد.
مدل رگرسیون خطی ساده
اگر برای شناسایی و پیشبینی متغیر وابسته فقط از یک متغیر مستقل استفاده شود، مدل را «رگرسیون خطی ساده» (Simple Linear Regression) میگویند. فرم مدل رگرسیون خطی ساده به صورت زیر است:
Y = β ۰ + β ۱ X + ϵ Y=β۰+β۱X+ϵ
همانطور که دیده میشود رگرسیون خطی چیست؟ این رابطه، معادله یک خط است که جمله خطا یا همان ϵ ϵ به آن اضافه شده. پارامترهای این مدل خطی عرض از مبدا ( β ۰ β۰ ) و شیب خط ( β ۱ β۱ ) است. شیب خط در حالت رگرسیون خطی ساده، نشان میدهد که میزان حساسیت متغیر وابسته به متغیر مستقل چقدر است. به این معنی که با افزایش یک واحد به مقدار متغیر مستقل چه میزان متغیر وابسته تغییر خواهد کرد. عرض از مبدا نیز بیانگر مقداری از متغیر وابسته است که به ازاء مقدار متغیر مستقل برابر با صفر محاسبه میشود. به شکل دیگر میتوان مقدار ثابت یا عرض از مبدا را مقدار متوسط متغیر وابسته به ازاء حذف متغیر مستقل در نظر گرفت.
برای مثال فرض کنید کارخانهای میخواهد میزان هزینههایش را براساس ساعت کار برآورد کند. شیب خط حاصل از برآورد نشان میدهد به ازای یک ساعت افزایش ساعت کاری چه میزان بر هزینههایش افزوده خواهد شد. از طرفی عرض از مبدا خط رگرسیون نیز هزینه ثابت کارخانه حتی زمانی که ساعت کاری نیست نشان میدهد. این هزینه را میتوان هزینههای ثابت مانند دستمزد نگهبانان و هزینه روشنایی فضای کارخانه فرض کرد.
گاهی مدل رگرسیونی را بدون عرض از مبدا در نظر میگیرند و β ۰ = ۰ β۰=۰ محسوب میکنند. این کار به این معنی است که با صفر شدن مقدار متغیر مستقل، مقدار متغیر وابسته نیز باید صفر در نظر گرفته شود. زمانی که محقق مطمئن باشد که که خط رگرسیون باید از مبدا مختصات عبور کند، این گونه مدل در نظر گرفته میشود. فرم مدل رگرسیونی در این حالت به صورت زیر است:
Y = β ۱ X + ϵ Y=β۱X+ϵ
از آنجایی که پیشبینی رابطه بین متغیر وابسته و مستقل به شکل دقیق نیست، جمله خطا را یک «متغیر تصادفی» (Random Variable) با میانگین صفر در نظر میگیرند تا این رابطه دارای اریبی نباشد.
باید توجه داشت که منظور از رابطه خطی در مدل رگرسیون، وجود رابطه خطی بین ضرایب است نه بین متغیرهای مستقل. برای مثال این مدل y = β ۰ + β ۱ x 2 + ϵ y=β۰+β۱×۲+ϵ را نیز میتوان مدل خطی در نظر گرفت در حالیکه مدل y = β ۰ x β ۱ + ϵ y=β۰xβ۱+ϵ دیگر خطی نیست و به مدل نمایی شهرت دارد.
همچنین در فرضیات این مدل، خطا یک جمله تصادفی است و تغییرات آن مستقل از متغیر X است. به این ترتیب مقدار خطا وابسته به مقدار متغیر مستقل نیست.
در رگرسیون خطی سعی میشود، به کمک معادله خطی که توسط روش رگرسیون معرفی میشود، برآورد مقدار متغیر وابسته به ازای مقدارهای مختلف متغیر مستقل توسط خط رگرسیون بدست آید. به منظور برآورد پارامترهای مناسب برای مدل، کوشش میشود براساس دادههای موجود، مدلی انتخاب میشود که کمترین خطا را داشته باشد.
روشهای مختلفی برای تعریف خطا و حداقل کردن آن وجود دارد. معیاری که در مدل رگرسیون خطی ساده به کار میرود، کمینه کردن مجموع مربعات خطا است. از آنجایی که میانگین مقدارهای خطا صفر در نظر گرفته شده است، میدانیم زمانی مجموع مربعات خطا، حداقل ممکن را خواهد داشت که توزیع دادهها نرمال باشند. در نتیجه، نرمال بودن دادههای متغییر وابسته یا باقیماندهها یکی از فرضیات مهم برای مدل رگرسیونی خطی ساده است.
شکل زیر به منظور توضیح نرمال بودن مقدار خطا ترسیم شده است. در هر مقدار از متغیر مستقل ممکن است بیش از یک مقدار برای متغیر وابسته مشاهده شود. مقدار پیشبینی شده برای هر یک از این مقدارها ثابت است که توسط معادله خط رگرسیون برآورد میشود.
برای مثال تعدادی مقدار برای متغیر وابسته براساس مقدار x=65 وجود دارد که شکل توزیع فراوانی آنها به صورت نرمال با میانگین β ۰ + β ۱ × ۶۵ β۰+β۱×۶۵ است. همچنین برای نقطه ۹۰ نیز مقدار پیشبینی یا برآورد برای متغیر وابسته به صورت β ۰ + β ۱ × ۹۰ β۰+β۱×۹۰ خواهد بود. در هر دو حالت واریانس خطا یا واریانس مقدارهای پیشبینیشده (پهنای منحنی زنگی شکل) ثابت است.
در تصویر زیر چهار نقطه از مشاهدات (x,y) به همراه خط رگرسیون دیده میشوند که در آن خط رگرسیون با رنگ آبی، نقطههای مربوط به مشاهدات با رنگ قرمز و فاصله هر نقطه از خط رگرسیون (خطای برآورد) با رنگ سبز نشان داده شده است.
نمودار نقطهای متغیر مستقل و وابسته، میزان خطا و خط رگرسیون
برای برآورد کردن پارامترهای مدل رگرسیونی باید معادله خطی یافت شود که از بین همه خطوط دیگر دارای کمترین مجموع توان دوم خطا باشد. یعنی ∑ ϵ ۲ ∑ϵ۲ برای آن از بقیه خطوط کمتر باشد.
خطوط مناسب برای بیان رابطه بین متغیر مستقل و وابسته
به نظر شما در تصویر بالا، کدام خط دارای مجموع مربعات خطای کمتری است؟ امکان تشخیص بهترین خط بدون استفاده از ابزارهای محاسباتی امکانپذیر نیست.
رگرسیون خطی چیست؟
در بسیاری از زمینه های بررسی علمی، تغیرات اندازه های آزمایشی یک متغیر، به طور وسیعی به سبب متغیرهای وابسته ی دیگری است که مقادیر آنها در جریان آزمایش تغیر می کنند. بنابراین با وارد کردن این متغیرها در تجزیه و تحلیل آماری می توانیم از طبیعت رابطه ی این متغیرها مطلع شویم و نتایج صحیح تری به دست آوریم.
از نقطه نظر دیگر هم بررسی رابطه ی بین متغیرها مهم است بدین معنا که مقدار یک متغیر را می توان از روی مشاهدات سایر متغیرها پیش بینی و یا حتی کنترل کرد و به وسیله ی دستکاری عاملهای نافذ بهینه ساخت.
تجزیه و تحلیل رگرسیون قسمتی اصلی از روشهای آماری است که در ارتباط با فرمولبندی مدل های ریاضی است، مدل هایی که تعیین کننده ی شکل روابط بین متغیر هاست.
تجزیه و تحلیل رگرسیون با استفاده از این رابطه های مدل بندی شده، با پیش بینی و سایر استنباط های آماری سرو کار دارد.
مطالعه روابط میان متغیرها در زمینه های زیادی از فعالیتهای علمی متداول است.
مدیر تبلیغات یک شرکت تجاری علاقمند به شناخت رابطه ی بین پول خرج شده برای تبلیغات و افزایش فروش است.
مسئله مورد توجه در رادیوتراپی، موضوع میزان صدمه به سلولها در اثر مدت و شدت قرار گرفتن در معرض اشعه است.
اگر بودجه تحقیقات دو برابر شود چقدر می توان انتظار داشت که فروش افزایش پیدا کند؟ با افزایش مصرف چربی غذا، سطح کلسترول چقدر افزایش پیدا می کند؟ بر اساس سود خالص، قیمت فروش محصولات یک شرکت چقدر باید باشد؟ برای پاسخ دادن به این سوالات و سوالات مشابه ابتدا باید وجود رابطه ی بین دو متغیر را تعیین و سپس نوع رابطه را توصیف کرد.
در بررسی رابطه بین دو متغیر قدم اصلی ابتدا رسم کردن نموداری از مقادیر است. با رسم یک نمودار پراکنش می توانیم بگوییم که آیا بین مقادیر دو متغیر الگویی مشاهده می شود یا نقاط مربوط به آن به صورت تصادفی پخش شده اند.
اگر الگویی مشاهده کردیم می توانیم رابطه ی کلی مشاهده شده را به کمک مدلهای ریاضی نمایش دهیم. برای مثال اگر نقاط روی یک نمودار؛ اطراف یک خط راست جمع شده باشند رابطه ی بین آنها را می توانیم با پیدا کردن معادله آن خط نمایش دهیم، به همین ترتیب اگر به نظر برسد منحنی خاصی می تواند نقاط داده ها را خوب نشان دهد می توانیم معادله آن منحنی را پیدا کنیم.
رگرسیون خطی چندگانه
رگرسیون خطی در متلب
رگرسیون خطی چند متغیره
رگرسیون خطی با ماشین حساب
رگرسیون خطی ساده
رگرسیون خطی در spss
رگرسیون خطی ویکی
رگرسیون خطی به انگلیسی
رگرسیون خطی در اکسل
رگرسیون خطی با ماشین حساب
رگرسیون خطی با ماشین حساب کاسیو
آموزش رگرسیون خطی با ماشین حساب
محاسبه رگرسیون خطی با ماشین حساب
روش محاسبه رگرسیون خطی با ماشین حساب
رگرسیون خطی چندگانه
رگرسیون خطی چندگانه در spss
رگرسیون خطی چندگانه چیست
رگرسيون خطي چندگانه
رگرسیون خطی چندگانه spss
رگرسیون خطی چندگانه در متلب
رگرسیون خطی چندگانه گام به گام
فرمول رگرسیون خطی چندگانه
مدل رگرسیون خطی چندگانه
آموزش رگرسیون خطی چندگانه
رگرسیون خطی با ماشین حساب کاسیو
نحوه محاسبه رگرسیون خطی با ماشین حساب casio fx-991es
رگرسیون خطی چندگانه در spss
آموزش رگرسیون خطی چندگانه در spss
رگرسیون خطی چندگانه spss
آموزش تصویری رگرسیون خطی چندگانه در spss
آموزش رگرسیون خطی با ماشین حساب
رگرسیون خطی چندگانه چیست
محاسبه رگرسیون خطی با ماشین حساب
روش محاسبه رگرسیون خطی با ماشین حساب
نحوه محاسبه رگرسیون خطی با ماشین حساب casio fx-991es
نحوه محاسبه رگرسیون خطی با ماشین حساب
رگرسيون خطي چندگانه
رگرسیون خطی چندگانه در spss
رگرسیون خطی چندگانه چیست
رگرسيون خطي چندگانه
رگرسیون خطی چندگانه spss
رگرسیون خطی چندگانه در متلب
رگرسیون خطی چندگانه گام به گام
فرمول رگرسیون خطی چندگانه
مدل رگرسیون خطی چندگانه
آموزش رگرسیون خطی چندگانه
روش محاسبه رگرسیون خطی چیست؟ رگرسیون خطی با ماشین حساب
نحوه محاسبه رگرسیون خطی با ماشین حساب casio fx-991es
رگرسیون خطی چندگانه spss
رگرسیون خطی چندگانه در spss
آموزش رگرسیون خطی چندگانه در spss
آموزش تصویری رگرسیون خطی چندگانه در spss
رگرسیون خطی ساده
رگرسیون خطی ساده در spss
رگرسیون خطی ساده و همبستگی
رگرسيون خطي ساده
رگرسیون خطی ساده+pdf
رگرسیون خطی ساده ppt
رگرسیون خطی ساده و رگرسیون خطی چیست؟ چندگانه
مدل رگرسیون خطی ساده
تحلیل رگرسیون خطی ساده
تعریف رگرسیون خطی ساده
رگرسیون خطی چندگانه در متلب
رگرسیون خطی ساده در spss
آزمون رگرسیون خطی ساده در spss
آموزش رگرسیون خطی ساده در spss
رگرسیون خطی چندگانه گام به گام
رگرسیون خطی ساده و همبستگی
فرمول رگرسیون خطی چندگانه
معادله رگرسیون خطی چندگانه
رگرسيون خطي ساده
رگرسیون خطی ساده در spss
رگرسیون خطی ساده و همبستگی
رگرسیون خطی ساده+pdf
رگرسیون خطی ساده ppt
رگرسیون خطی ساده و چندگانه
مدل رگرسیون خطی ساده
تحلیل رگرسیون خطی ساده
تعریف رگرسیون خطی ساده
مثال رگرسیون خطی ساده
مدل رگرسیون خطی چندگانه
رگرسیون خطی ساده+pdf
آموزش رگرسیون خطی چندگانه
آموزش رگرسیون خطی چندگانه در spss
تحلیل رگرسیون خطی چندگانه
آموزش تصویری رگرسیون خطی چندگانه در spss
رگرسیون خطی ساده ppt
رگرسیون خطی در متلب
رگرسیون غیر خطی در متلب
کد رگرسیون خطی در متلب
رگرسیون خطی چندگانه در متلب
دستور رگرسیون خطی در متلب
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون خطی در matlab
آموزش رگرسیون خطی در متلب
رگرسیون خطی در مطلب
رگرسیون خطی متلب
رگرسیون خطی ساده و چندگانه
رگرسیون غیر خطی در متلب
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون غیر خطی با متلب
رگرسیون غیر خطی متلب
مدل رگرسیون خطی ساده
مدل رگرسیونی خطی ساده
کد رگرسیون خطی در متلب
تحلیل رگرسیون خطی ساده
رگرسیون خطی چندگانه در متلب
تعریف رگرسیون خطی ساده
دستور رگرسیون خطی در متلب
رگرسیون خطی در spss
رگرسیون غیر خطی در spss
آموزش رگرسیون خطی در spss
رگرسیون خطی چندگانه در spss
تحلیل رگرسیون خطی در spss
رگرسیون خطی ساده در spss
محاسبه رگرسیون خطی در spss
آزمون رگرسیون خطی در spss
مثال رگرسیون خطی در spss
تفسیر رگرسیون خطی در spss
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون غیر خطی در spss
آموزش رگرسیون غیر خطی در spss
محاسبه رگرسیون غیر خطی در spss
رگرسیون غیر خطی چند متغیره در spss
فایل آموزش رگرسیون غیر خطی در spss
آموزش رگرسیون غیر خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره spss
رگرسیون خطی در matlab
رگرسیون خطی در متلب
رگرسیون غیر خطی در متلب
کد رگرسیون خطی در متلب
رگرسیون خطی چندگانه در متلب
دستور رگرسیون خطی در متلب
آموزش رگرسیون خطی در متلب
آموزش رگرسیون خطی در spss
آموزش رگرسيون خطي در spss
تحلیل رگرسیون خطی در spss
آموزش رگرسیون غیر خطی در spss
آموزش رگرسیون خطی چندگانه در spss
آموزش رگرسیون خطی چند متغیره در spss
فایل آموزش رگرسیون غیر خطی در spss
آموزش رگرسیون غیر خطی چند متغیره در spss
آموزش تصویری رگرسیون خطی در spss
فايل اموزش رگرسيون خطي در spss
آموزش رگرسیون خطی در متلب
رگرسیون خطی چندگانه در spss
آموزش رگرسیون خطی چندگانه در spss
رگرسیون خطی چندگانه spss
آموزش تصویری رگرسیون خطی چندگانه در spss
رگرسیون خطی در مطلب
رگرسیون خطی در متلب
رگرسیون خطی در matlab
تحلیل رگرسیون خطی در spss
تحلیل رگرسیون غیر خطی در spss
تحلیل نتایج رگرسیون خطی در spss
تحلیل رگرسیون خطی spss
تحلیل رگرسیون خطی در نرم افزار spss
رگرسیون خطی متلب
رگرسیون خطی در متلب
رگرسیون خطی چندگانه رگرسیون خطی چیست؟ در متلب
رگرسیون غیر خطی در متلب
کد رگرسیون خطی در متلب
دستور رگرسیون خطی در متلب
رگرسیون غیر خطی با متلب
رگرسیون خطی با متلب
رگرسیون غیر خطی متلب
آموزش رگرسیون خطی در متلب
رگرسیون خطی ساده در spss
آزمون رگرسیون خطی ساده در spss
آموزش رگرسیون خطی ساده در spss
رگرسیون خطی چند متغیره
رگرسیون خطی چند متغیره در spss
رگرسیون خطی چند متغیره چیست
رگرسیون غیر خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره
مدل رگرسیون خطی چند متغیره
آموزش رگرسیون خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره در اکسل
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون خطی و چند متغیره
محاسبه رگرسیون خطی در spss
نحوه محاسبه رگرسیون خطی در spss
محاسبه رگرسیون غیر خطی در spss
محاسبه رگرسیون خطی با spss
رگرسیون خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره در spss
آموزش رگرسیون خطی چند متغیره در spss
آموزش رگرسیون غیر خطی چند متغیره در spss
آزمون رگرسیون خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره spss
آزمون رگرسیون خطی در spss
آزمون رگرسیون خطی ساده در spss
آزمون رگرسیون خطی چند متغیره در spss
آزمون خطی بودن رگرسیون در spss
رگرسیون خطی چند متغیره چیست
مثال رگرسیون خطی در spss
رگرسیون غیر خطی چند متغیره در spss
آموزش رگرسیون غیر خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره spss
تفسیر رگرسیون خطی در spss
تفسیر نتایج رگرسیون خطی در spss
نحوه تفسیر رگرسیون خطی در spss
تفسیر خروجی رگرسیون خطی در spss
رگرسیون غیر خطی چند متغیره
رگرسیون غیر خطی چند متغیره
رگرسیون غیر خطی چند متغیره در اکسل
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون غیر خطی چند متغیره spss
آموزش رگرسیون غیر خطی چند متغیره در spss
آموزش رگرسیون غیر خطی چند متغیره
رگرسیون خطی ویکی
رگرسیون خطی ویکی پدیا
مدل رگرسیون خطی چند متغیره
رگرسیون خطی ویکی پدیا
آموزش رگرسیون خطی چند متغیره در spss
آموزش رگرسیون غیر خطی چند متغیره در spss
رگرسیون خطی به انگلیسی
رگرسیون غیر خطی چند متغیره در اکسل
رگرسیون خطی در اکسل
رگرسیون خطی در اکسل 2007
رگرسیون خطی در اکسل 2010
رگرسیون غیر خطی در اکسل
آموزش رگرسیون خطی در اکسل
فرمول رگرسیون خطی در اکسل
نحوه محاسبه رگرسیون خطی در اکسل
رگرسیون خطی با اکسل
رگرسیون غیر خطی چند متغیره در اکسل
محاسبه رگرسیون خطی در اکسل
رگرسیون غیر خطی چند متغیره در متلب
رگرسیون خطی در اکسل 2007
رگرسیون خطی و چند متغیره
رگرسیون خطی چند متغیره
رگرسیون خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره
مدل رگرسیون خطی چند متغیره
آموزش رگرسیون خطی چند متغیره در spss
رگرسیون غیر خطی چند متغیره در اکسل
رگرسیون غیر خطی چند متغیره در متلب
مثال رگرسیون خطی چند متغیره
رگرسیون خطی چیست؟
رگرسیون یعنی بازگشت. یعنی پیش بینی و بیان تغییرات یک متغیر بر اساس اطلاعات متغیر دیگر.
مثال: رابطه بین قد و وزن انسانها را در نظر بگیرید.
همه می دانیم که این رابطه یک رابطه مستقیم ریاضی و صد درصدی نیست که لزوما هر که قد بلندتری داشته باشد وزن بیشتری داشته باشد،
اما می توان گفت که با احتمال قابل قبولی افراد با قد بلندتر، وزن بیشتری نیز دارند.
در اینجا پیش بینی وزن از روی قد و بیان ارتباط بین این متغیر با روش آماری رگرسیون خطی صورت می پذیرد
که این رابطه را به صورت کمی به ما نشان می دهد.
رگرسیون را با معادله رگرسیون بیان می کنند.
در مثال فوق معادله رگرسیون خطی می تواند به صورت زیر باشد:
متغیر وزن = متغیر قد * b + a
ترسیم این خط پس از محاسبه ضرایب a و b ما را به خط رگرسیون می رساند.
همبستگی و رگرسیون
اینکه ما می توانیم از رگرسیون متغیر y بر روی متغیر x صحبت کنیم به دلیل همبستگی بین دو متغیر می باشد.
بنابراین مفهوم همبستگی نیز در اینجا اهمیت دارد.
همبستگی یعنی تغییر در y چقدر بر روی تغییر بر x تاثیر می گذارد.
به عبارت دیگر تغییر در یک متغیر چقدر با تغییر در متغیر دیگر هماهنگ است.
مثلا تغییر در قد چقدر با تغییر در وزن هماهنگی دارد.
در این مثال بدیهی است که همبستگی مثبت است.
زیرا معمولا افراد قد بلندتر دارای وزن بیشتری می باشند.
همبستگی را با ضریبی به نام ضریب همبستگی پیرسون اندازه گیری می کنند که عددی بین صفر و یک است.
هر چه مقدار همبستگی به عدد یک نزدیک تر باشد، همبستگی بین دو متغیر بیشتر است و هر چه به صفر نزدیک تر باشد، همبستگی بالاتر خواهد بود.
همبستگی برابر یک یعنی رابطه خطی و صد درصدی. همبستگی می تواند مثبت و یا منفی باشد.
با رسم نمودار پراکنش که در اکسل نیز قابل ترسیم است، میزان همبستگی دو متغیر دیده می شود.
نمودار پراکنش بین قد و وزن که دارای همبستگی مثبت می باشند، به صورت زیر است:
ضریب تعیین
ضریب تعیین معلوم می کند که چند درصد از تغییرات متغیر y ناشی از تغییرات متغیر x است.
اگر ضریب همبستگی را به توان دو برسانید، ضریب تعیین بدست خواهد آمد که باز هم عددی بین صفر و یک است.
به عنوان مثال چنانچه ضریب تعیین عدد ۰.۶۵ بدست آید، یعنی با می توانیم ۶۵ درصد از تغییرات در متغیر «وزن» را با تغییرات متغیر «قد» بیان کنیم.
برازش خط رگرسیون y بر x
حال که تا حدودی با مفاهیم آشنا شدیم، در اینجا عملا به محاسبه معادله رگرسیون و رگرسیون خطی y بر اساس x می پردازیم.
لازم است تعریف کنیم چنانچه بخواهیم متغیر y را بر اساس متغیر x پیش بینی و بیان کنیم،
به متغیر x متغیر مستقل و به متغیر y متغیر وابسته می گوییم.
برای محاسبه معادله رگرسیون خطی در اینجا لازم است به سراغ نرم افزاری آماری مانند اس پی اس اس یا SPSS برویم.
انواع رگرسیون
محقق گرامی؛ رگرسیونی که در اینجا به شرح آن پرداختیم، رگرسیون خطی ساده با دو متغیر بود.
رگرسیون حالات و انواع دیگری نیز دارد که به آن اشاره می کنیم.
می توان به جای یک متغیر وابسته (وزن) و یک متغیر مستقل (قد)، یک متغیر وابسته داشت و چندین متغیر مستقل.
یا اینکه به جای رابطه خطی بین متغیرها، به دنبال کشف و بیان رابطه غیر خطی باشیم.
برخی مواقع متغیر وابسته فقط مقادیر صفر یا یک را می گیرد
و یا اینکه متغیرها مقادیر گسسته یا رتبه ای داشته باشند.
سفارش انجام تحلیل رگرسیون
دانشجو و محقق گرامی؛ چنانچه مایلید در زمینه تحلیل رگرسیون یا هر گونه تجزیه و تحلیل آماری از ما مشاوره دریافت نمایید، کافیست از بخش سفارش این سایت یا تماس از طریق ایمیل و تلفن با ما ارتباط برقرار نمایید.
رگرسیون خطی
آموزش تحلیل تکنیکال، کانال رگرسیون خطی (Linear Regression)
لغت رگرسیون در فرهنگ لغت آموزش تحلیل تکنیکال به معنای بازگشت بوده و در غالب موارد موقعی بکار گرفته میشود که هدف از آن، رساندن مطلبی در مورد رگرسیون خطی چیست؟ بازگشت به مقداری متوسط یا میانگین باشد. به بیان دیگر برخی از پدیدهها وجود دارند که با گذشت زمان، از لحاظ کمّی میل به بازگشت به سمت یک مقدار متوسط یا میانگین پیدا میکنند.
طبق آموزش تحلیل تکنیکال، کانال رگرسیون بر مبنای روند رگرسیون خطی ترسیم میگردد. در واقع هدف از ساخت و ترسیم کانال رگرسیون به عنوان ابزاری برای تجزیه و تحلیل آماری، این است که طبق اطلاعات موجود، بتوانیم مقادیر آینده را پیش بینی کنیم. خط روندی که با این هدف ترسیم میگردد در واقع به کمک شیوهی حداقل مربعات و بین دو نقطهای که بر روی نمودار قیمت هستند ایجاد شده است.
در نتیجه طبق آموزش تحلیل تکنیکال میتوان بیان داشت، خطی که بدین صورت ترسیم شده در واقع خطی ثابت بوده که خط میانی دقیق قیمتی است که در حال تغییر میباشد یا خود، میانگین قیمت است. همچنین میتوانیم این خط را به عنوان خط تعادل قیمت نیز در نظر بگیریم که به کمک آن قادر هستیم هر نوع انحراف به بالا و پایین یا همان رفتار خریداران یا فروشندگان را مشاهده کنیم.
کانال رگرسیون بر اساس سابقهی قیمت، ایجاد شده و متشکل از سه خط پایین، وسط و بالا میباشد. از جمله شاخصهایی که به منظور مشخص نمودن امنیت روند در حال توسعه استفاده میگردد، کانال رگرسیون خطی است که توسط آن محدودهی قیمتی که بیش از همه محتمل باشد، تعیین میشود.
خط رگرسیون خطی: خط میانگین متناسب با همهی نقاط دادهای، به بهترین شکل ممکن رسم میشود
خط بالایی کانال: خطی است که موازی با خط رگرسیون خطی ترسیم شده و انحراف استانداری را نشان میدهد که بالاتر از خط رگرسیون خطی قرار گرفته باشد
کانال خط پایین: این کانال دقیقا برعکس خط بالایی کانال میباشد به گونهای که موازی با خط رگرسیون خطی ترسیم میشود اما انحراف استانداری را نشان میدهد که پایینتر از خط رگرسیون خطی قرار گرفته باشد.
بنا بر آموزش تحلیل تکنیکال، کانال رگرسیون خطی از سه خط موازی با هم تشکیل شده که با فاصله و در بالا و پایین خط روند رگرسیون خطی قرار گرفته است. میزان فاصلهای که بین خط رگرسیون خطی چیست؟ بالایی و خط پایینی با خط رگرسیون وجود دارد به معنای میزان انحراف از مقدار متوسط یا همان رگرسیون میباشد. نحوهی فرمولاسیون خط بالایی، وسطی و پایینی کانال بدین صورت است که خط بالایی کانال حاصل به هم پیوستنِ خطیِ نقاطی است که در بالای قیمت قرار گرفتهاند، خط وسط، حاصل اتصال نقطههایی است که مرتبط با قیمتهای متوسط است و خط پایین کانال نیز حاصل اتصال نقاط مربوط به قیمت پایین میباشد.
در آموزش تحلیل تکنیکال بیان میکنیم که تمامی تغییراتی که در قیمتها رخ میدهد در داخل کانال رگرسیون اتفاق افتاده و خط پایینی با عنوان خط حمایتی و خط بالایی با عنوان خط مقاومتی شناخته میشود. معمولا اتفاقی که برای قیمتها رخ میدهد خروج کوتاه مدت آنها از کانال و سپس میل به برگشت به درون کانال میباشد. البته امکان دارد که قیمت به مدت زمان کوتاهی، در خارج از کانال و از زمان گسترش حرکت کند و اگر زمان زیادی در خارج از کانال باقی بماند، امکان معکوس شدن روند وجود دارد. زمانی امنیت تداوم روند خطرناک میشود که قیمتها از داخل کانال رگرسیون خارج شوند که به این خطوط در آموزش تحلیل تکنیکال، باند اعتماد به نفس نیز میگویند.
استراتژیهایی که در این بخش از آموزش تحلیل تکنیکال وجود دارند مربوط به شناسایی الگوهایی میباشد که خود مبتنی بر کانال رگرسیون خطی است. مزیت کانال رگرسیون خطی در این است که روشی عالی برای شناسایی حرکت، شرایط مرتبط با حد اشباع خرید یا فروش در سهام و همچنین روند، ارائه میکنند. در واقع این استراتژی، جهت تشخیص نوسان مرتبط با معاملات، نقطهی شروع محسوب میگردد. همچنین بهره گیری از این استراتژی، به منظور مشخص کردن سهام قبل از بازگشت بسیار مفید بخش خواهد بود.
طبق مطالب عنوان شده در آموزش تحلیل تکنیکال، مضاف بر شناسایی روند و جهت آن، انحراف استاندارد نیز قادر خواهد بود، در زمان تبدیل قیمت به حد اشباع خرید یا فروش نسبت به روند دراز مدت، ایدههای جالبی را ارائه کند.
براساس آموزش تحلیل تکنیکال، کانال رگرسیون خطی دارای فوایدی نظیر:
-تجسم روند
-جستجو در نقطهی نوسان
-یافتن سطوح مقاومت و حمایت
-سنجش نوسانات و تعصب بازار
دیدگاه شما