{"id":981,"date":"2023-07-28T02:35:28","date_gmt":"2023-07-28T02:35:28","guid":{"rendered":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/"},"modified":"2023-07-28T02:35:28","modified_gmt":"2023-07-28T02:35:28","slug":"python-regresji-kwadratowej","status":"publish","type":"post","link":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/","title":{"rendered":"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w pythonie"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><strong>Regresja kwadratowa<\/strong> to rodzaj regresji, kt\u00f3rego mo\u017cemy u\u017cy\u0107 do ilo\u015bciowego okre\u015blenia zwi\u0105zku mi\u0119dzy zmienn\u0105 predykcyjn\u0105 a zmienn\u0105 odpowiedzi, gdy prawdziwe relacje s\u0105 kwadratowe, co mo\u017ce wygl\u0105da\u0107 jak \u201eU\u201d lub odwr\u00f3cone \u201eU\u201d na wykresie.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Oznacza to, \u017ce wraz ze wzrostem zmiennej predykcyjnej zmienna odpowiedzi r\u00f3wnie\u017c ma tendencj\u0119 do wzrostu, ale po pewnym momencie zmienna odpowiedzi zaczyna si\u0119 zmniejsza\u0107 w miar\u0119 dalszego wzrostu zmiennej predykcyjnej.<\/span><\/p>\n<p> <span style=\"color: #000000;\">W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w j\u0119zyku Python.<\/span><\/p>\n<h2> <strong><span style=\"color: #000000;\">Przyk\u0142ad: regresja kwadratowa w Pythonie<\/span><\/strong><\/h2>\n<p> <span style=\"color: #000000;\">Za\u0142\u00f3\u017cmy, \u017ce mamy dane dotycz\u0105ce liczby godzin przepracowanych tygodniowo i zg\u0142oszonego poziomu szcz\u0119\u015bcia (w skali od 0 do 100) dla 16 r\u00f3\u017cnych os\u00f3b:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\">import<\/span> numpy <span style=\"color: #107d3f;\">as<\/span> np\n<span style=\"color: #107d3f;\">import<\/span> scipy.stats <span style=\"color: #107d3f;\">as<\/span> stats\n\n<span style=\"color: #008080;\">#define variables<\/span>\nhours = [6, 9, 12, 12, 15, 21, 24, 24, 27, 30, 36, 39, 45, 48, 57, 60]\nhapp = [12, 18, 30, 42, 48, 78, 90, 96, 96, 90, 84, 78, 66, 54, 36, 24]<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Je\u015bli stworzymy prosty wykres punktowy tych danych, zobaczymy, \u017ce zwi\u0105zek mi\u0119dzy dwiema zmiennymi ma kszta\u0142t litery \u201eU\u201d:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\">import <span style=\"color: #000000;\">matplotlib.pyplot<\/span> as <span style=\"color: #000000;\">plt<\/span>\n\n<span style=\"color: #000000;\"><span style=\"color: #008080;\">#create scatterplot\n<\/span>plt.scatter(hours, happ)<\/span><\/span><\/strong> <\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-10240 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/quadregpython1.png\" alt=\"\" width=\"376\" height=\"248\" srcset=\"\" sizes=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Wraz ze wzrostem liczby przepracowanych godzin wzrasta r\u00f3wnie\u017c szcz\u0119\u015bcie, ale gdy przepracowane godziny przekraczaj\u0105 oko\u0142o 35 godzin tygodniowo, szcz\u0119\u015bcie zaczyna spada\u0107.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Ze wzgl\u0119du na kszta\u0142t litery \u201eU\u201d oznacza to, \u017ce regresja kwadratowa jest prawdopodobnie dobrym kandydatem do ilo\u015bciowego okre\u015blenia zwi\u0105zku mi\u0119dzy dwiema zmiennymi.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Aby faktycznie przeprowadzi\u0107 regresj\u0119 kwadratow\u0105, mo\u017cemy dopasowa\u0107 model regresji wielomianowej o stopniu 2 za pomoc\u0105<\/span> <span style=\"color: #000000;\">funkcji<\/span> <a href=\"https:\/\/numpy.org\/doc\/stable\/reference\/generated\/numpy.polyfit.html\" target=\"_blank\" rel=\"noopener noreferrer\">numpy.polyfit()<\/a> : <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #107d3f;\">import<\/span> numpy <span style=\"color: #107d3f;\">as<\/span> np\n\n<span style=\"color: #008080;\">#polynomial fit with degree = 2\n<\/span>model = np.poly1d(np.polyfit(hours, happ, 2))\n\n<span style=\"color: #008080;\">#add fitted polynomial line to scatterplot\n<\/span>polyline = np.linspace(1, 60, 50)\nplt.scatter(hours, happ)\nplt.plot(polyline, model(polyline))\nplt.show()<\/strong> <\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-10242\" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/quadregpython2.png\" alt=\"Regresja kwadratowa w Pythonie\" width=\"412\" height=\"273\" srcset=\"\" sizes=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Dopasowane r\u00f3wnanie regresji wielomianowej mo\u017cemy otrzyma\u0107 drukuj\u0105c wsp\u00f3\u0142czynniki modelu:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #993300;\">print<\/span> (model)\n\n-0.107x <sup>2<\/sup> + 7.173x - 30.25\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Dopasowane r\u00f3wnanie regresji kwadratowej to:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Szcz\u0119\u015bcie = -0,107(godziny) <sup>2<\/sup> + 7,173(godziny) \u2013 30,25<\/strong><\/span><\/p>\n<p> <span style=\"color: #000000;\">Mo\u017cemy u\u017cy\u0107 tego r\u00f3wnania do obliczenia oczekiwanego poziomu szcz\u0119\u015bcia danej osoby na podstawie przepracowanych godzin. Przyk\u0142adowo oczekiwany poziom szcz\u0119\u015bcia osoby pracuj\u0105cej 30 godzin tygodniowo wynosi:<\/span><\/p>\n<p> <span style=\"color: #000000;\">Szcz\u0119\u015bcie = -0,107(30) <sup>2<\/sup> + 7,173(30) \u2013 30,25 = <strong>88,64<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Mo\u017cemy r\u00f3wnie\u017c napisa\u0107 kr\u00f3tk\u0105 funkcj\u0119, aby uzyska\u0107 R-kwadrat modelu, kt\u00f3ry jest proporcj\u0105 wariancji zmiennej odpowiedzi, kt\u00f3r\u0105 mo\u017cna wyja\u015bni\u0107 za pomoc\u0105 zmiennych predykcyjnych.<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define function to calculate r-squared<\/span>\n<span style=\"color: #008000;\">def<\/span> polyfit(x, y, degree):\n    results = {}\n    coeffs = np.polyfit(x, y, degree)\n    p = np.poly1d(coeffs)\n    <span style=\"color: #008080;\">#calculate r-squared<\/span>\n    yhat = p(x)\n    ybar = np.sum(y)\/len(y)\n    ssreg = np.sum((yhat-ybar)**2)\n    sstot = np.sum((y - ybar)**2)\n    results['r_squared'] = ssreg \/ sstot\n\n    <span style=\"color: #008000;\">return<\/span> results\n\n<span style=\"color: #008080;\">#find r-squared of polynomial model with degree = 3\n<\/span>polyfit(hours, happ, 2)\n\n{'r_squared': 0.9092114182131691}\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">W tym przyk\u0142adzie kwadrat R modelu wynosi <strong>0,9092<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Oznacza to, \u017ce 90,92% zmienno\u015bci zg\u0142aszanych poziom\u00f3w szcz\u0119\u015bcia mo\u017cna wyja\u015bni\u0107 zmiennymi predykcyjnymi.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Dodatkowe zasoby<\/strong><\/span><\/h2>\n<p> <a href=\"https:\/\/statorials.org\/pl\/python-regresji-wielomianowej\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jak wykona\u0107 regresj\u0119 wielomianow\u0105 w Pythonie<\/a><br \/> <a href=\"https:\/\/statorials.org\/pl\/regresja-kwadratowa-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w R<\/a><br \/> <a href=\"https:\/\/statorials.org\/pl\/regresja-kwadratowa-excel\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w programie Excel<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Regresja kwadratowa to rodzaj regresji, kt\u00f3rego mo\u017cemy u\u017cy\u0107 do ilo\u015bciowego okre\u015blenia zwi\u0105zku mi\u0119dzy zmienn\u0105 predykcyjn\u0105 a zmienn\u0105 odpowiedzi, gdy prawdziwe relacje s\u0105 kwadratowe, co mo\u017ce wygl\u0105da\u0107 jak \u201eU\u201d lub odwr\u00f3cone \u201eU\u201d na wykresie. Oznacza to, \u017ce wraz ze wzrostem zmiennej predykcyjnej zmienna odpowiedzi r\u00f3wnie\u017c ma tendencj\u0119 do wzrostu, ale po pewnym momencie zmienna odpowiedzi zaczyna [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-981","post","type-post","status-publish","format-standard","hentry","category-przewodnik"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia<\/title>\n<meta name=\"description\" content=\"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia\" \/>\n<meta property=\"og:description\" content=\"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-28T02:35:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/quadregpython1.png\" \/>\n<meta name=\"author\" content=\"Benjamin Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/\",\"url\":\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/\",\"name\":\"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pl\/#website\"},\"datePublished\":\"2023-07-28T02:35:28+00:00\",\"dateModified\":\"2023-07-28T02:35:28+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965\"},\"description\":\"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Dom\",\"item\":\"https:\/\/statorials.org\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w pythonie\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/pl\/#website\",\"url\":\"https:\/\/statorials.org\/pl\/\",\"name\":\"Statorials\",\"description\":\"Tw\u00f3j przewodnik po kompetencjach statystycznych!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965\",\"name\":\"Benjamin Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/statorials.org\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/statorials.org\/pl\/wp-content\/uploads\/2023\/11\/Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"https:\/\/statorials.org\/pl\/wp-content\/uploads\/2023\/11\/Benjamin-Anderson-96x96.jpg\",\"caption\":\"Benjamin Anderson\"},\"description\":\"Cze\u015b\u0107, jestem Benjamin i jestem emerytowanym profesorem statystyki, kt\u00f3ry zosta\u0142 oddanym nauczycielem Statorials. Dzi\u0119ki bogatemu do\u015bwiadczeniu i wiedzy specjalistycznej w dziedzinie statystyki ch\u0119tnie dziel\u0119 si\u0119 swoj\u0105 wiedz\u0105, aby wzmocni\u0107 pozycj\u0119 uczni\u00f3w za po\u015brednictwem Statorials. Wiedzie\u0107 wi\u0119cej\",\"sameAs\":[\"https:\/\/statorials.org\/pl\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia","description":"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia","og_description":"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.","og_url":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/","og_site_name":"Statorials","article_published_time":"2023-07-28T02:35:28+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/quadregpython1.png"}],"author":"Benjamin Anderson","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Benjamin Anderson","Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/","url":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/","name":"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w Pythonie - Statologia","isPartOf":{"@id":"https:\/\/statorials.org\/pl\/#website"},"datePublished":"2023-07-28T02:35:28+00:00","dateModified":"2023-07-28T02:35:28+00:00","author":{"@id":"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965"},"description":"Proste wyja\u015bnienie, jak przeprowadzi\u0107 regresj\u0119 kwadratow\u0105 w Pythonie, z przyk\u0142adem.","breadcrumb":{"@id":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pl\/python-regresji-kwadratowej\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Dom","item":"https:\/\/statorials.org\/pl\/"},{"@type":"ListItem","position":2,"name":"Jak wykona\u0107 regresj\u0119 kwadratow\u0105 w pythonie"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/pl\/#website","url":"https:\/\/statorials.org\/pl\/","name":"Statorials","description":"Tw\u00f3j przewodnik po kompetencjach statystycznych!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965","name":"Benjamin Anderson","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/statorials.org\/pl\/#\/schema\/person\/image\/","url":"https:\/\/statorials.org\/pl\/wp-content\/uploads\/2023\/11\/Benjamin-Anderson-96x96.jpg","contentUrl":"https:\/\/statorials.org\/pl\/wp-content\/uploads\/2023\/11\/Benjamin-Anderson-96x96.jpg","caption":"Benjamin Anderson"},"description":"Cze\u015b\u0107, jestem Benjamin i jestem emerytowanym profesorem statystyki, kt\u00f3ry zosta\u0142 oddanym nauczycielem Statorials. Dzi\u0119ki bogatemu do\u015bwiadczeniu i wiedzy specjalistycznej w dziedzinie statystyki ch\u0119tnie dziel\u0119 si\u0119 swoj\u0105 wiedz\u0105, aby wzmocni\u0107 pozycj\u0119 uczni\u00f3w za po\u015brednictwem Statorials. Wiedzie\u0107 wi\u0119cej","sameAs":["https:\/\/statorials.org\/pl"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/posts\/981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/comments?post=981"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/posts\/981\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/media?parent=981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/categories?post=981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/tags?post=981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}