{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2024-04-02 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lineaarinen regressio - yksi selittävä muuttuja\n", "\n", "Lineaarisessa regressiossa sovitetaan suora viiva kuvaamaan selittävän muuttujan ja ennustettavan muuttujan välistä yhteyttä. Yleensä käytetään suoran sovitukseen pienimmän neliösumman menetelmää, joka minimoi ennustevirheiden neliöiden summan." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set_style('whitegrid')\n", "\n", "# Tuon lineaarisen regressiomallin\n", "from sklearn.linear_model import LinearRegression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Datan tarkastelua\n", "\n", "Tavoitteena ennustaa myynti mainoskulujen perusteella." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
KuukausiMainoskulut 1000 €Myynti 1000 €
011.2101
120.892
231.0110
341.3120
450.790
560.882
671.093
780.675
890.991
9101.1105
\n", "
" ], "text/plain": [ " Kuukausi Mainoskulut 1000 € Myynti 1000 €\n", "0 1 1.2 101\n", "1 2 0.8 92\n", "2 3 1.0 110\n", "3 4 1.3 120\n", "4 5 0.7 90\n", "5 6 0.8 82\n", "6 7 1.0 93\n", "7 8 0.6 75\n", "8 9 0.9 91\n", "9 10 1.1 105" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_excel('http://taanila.fi/linreg1.xlsx')\n", "df" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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2GTP8dlboY8PKPwxcnz2VwxjLFYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERERjwBBFRERENAYMUURERFmk6QYcDke+u0FZwBBFRESUJbKmozMs57sblCWMxkRERFkgqzq6wjI03cx3VyhLGKKIiIgyLK4kApSqGxDy3RnKGoYoIiKiDIoqGrrDCjTdyHdXKMsYooiIiDIkLKvoCSnQTS7hFQOGKCIiogwIxVT0RBQYDFBFgyGKiIhonPqjCvqjCgzmp6LCEEVERDQOvREFwRgDVDFiiCIiIhoD0zQTASqugit4xYkhioiIaJRM00R3WEE4roL5qXgxRBEREY2CYZjoCsuIyhoDVJFjiCIiIhoh3TDRGYojrugMUMQQRURENBKabqAzJCOu6vnuClkEQxQREdFxKJqBrpAMWWOAoiEMUURERO9D1nR0hWQoGo9xoXRivjtARERkVbKqozM49gBlmCZ2doXxXpeC5oMDMFhMqqDkPUT19vZi2bJleO2111Jtzz77LC677DKcfPLJuOCCC/DDH/4QhjH0Dbx27VosW7YMJ510Ej784Q9j06ZN+eg6EREVsJiioSMkQx3jQcKb9vXhK39oxref245fvBPCTY9uwr/94nW80tqd4Z5SvuQ1RG3cuBFXX3019u3bl2p799138eUvfxmf//zn8eabb+Khhx7CH//4RzzyyCMAgNdeew2rV6/G/fffjzfeeAMf/OAHceONNyIWi+VpFEREVGgiioaukAJtHAHqOxu2Y1dXGB6HhHK3AJ9LQsuhEO5Y28wgVSDyFqLWrl2L2267Dbfeemta+8GDB/GRj3wE559/PkRRxOzZs7Fs2TK88cYbAIAnnngCK1aswOLFi+F0OnH99dejoqIC69evz8cwiIiowIRlFd1BGZox9iW8x17fj6iiozrggsspQhAAj1NCXakbYVnHgy/t5NJeAcjbxvKzzz4bq1atgsPhSAtSl1xyCS655JLU3+PxOF588UWsWrUKANDa2oorrrgi7b7q6+uxdevWUT2+rmfmCovk/WTq/qyG47O3Qh8fUPhj5Phy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Riippuvuuden tarkastelua seaborn-kirjaston jointoplot-kaavion avulla\n", "sns.jointplot(data=df, x='Mainoskulut 1000 €', y='Myynti 1000 €', kind='reg')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mallin sovitus" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Selittävä muuttuja\n", "# Jos selittäviä muuttujia on vain yksi, niin tarvitaan dataframeksi muuntaminen (to_frame)\n", "X = df['Mainoskulut 1000 €'].to_frame()\n", "\n", "# Ennustettava muuttuja\n", "y = df['Myynti 1000 €'] " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "malli = LinearRegression().fit(X,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mallin tarkastelua" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([52.56756757])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malli.coef_ # regressiosuoran kulmakerroin" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mallin mukaan yhden yksikön (1000 €) kasvu mainoskuluissa lisää myyntiä noin 52,6 yksiköllä (1000 €)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "46.486486486486505" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malli.intercept_ # regressiosuoran vakiotermi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jos mainoskuluja ei ole lainkaan, niin mallin mukainen myynti on noin 46,5 yksikköä (1000 €). Tähän tietoon täytyy suhtautua varoen, koska havainnoissa ei ole mukana nollan lähellä olevia mainoskuluja. Näin ollen ei voida tietää päteekö suoraviivainen riippuvuus mainoskulujen 0 lähellä." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7663982928521625" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malli.score(X,y) # selityskerroin" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Myynnin vaihtelusta noin 76,6 % voidaan selittää mainoskulujen vaihtelulla." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mallin käyttö ennustamiseen" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Mainoskulut 1000 €Myyntiennuste 1000 €
00.783.283784
10.888.540541
20.993.797297
\n", "
" ], "text/plain": [ " Mainoskulut 1000 € Myyntiennuste 1000 €\n", "0 0.7 83.283784\n", "1 0.8 88.540541\n", "2 0.9 93.797297" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Myyntiennusteet, jos mainoskulut tuhansina euroina ovat 0.7, 0.8 tai 0.9\n", "df_new = pd.DataFrame([0.7, 0.8, 0.9], columns = ['Mainoskulut 1000 €']) \n", "df_new['Myyntiennuste 1000 €'] = malli.predict(df_new) \n", "df_new" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Lisätietoa

\n", "\n", "Data-analytiikka Pythonilla: https://tilastoapu.wordpress.com/python/" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" } }, "nbformat": 4, "nbformat_minor": 4 }