{"id":1160,"date":"2023-07-27T11:00:03","date_gmt":"2023-07-27T11:00:03","guid":{"rendered":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/"},"modified":"2023-07-27T11:00:03","modified_gmt":"2023-07-27T11:00:03","slug":"liniowa-analiza-dyskryminacyjna-w-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/","title":{"rendered":"Liniowa analiza dyskryminacyjna w r (krok po kroku)"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\"><a href=\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna\/\" target=\"_blank\" rel=\"noopener noreferrer\">Liniowa analiza dyskryminacyjna<\/a> to metoda, kt\u00f3rej mo\u017cna u\u017cy\u0107, gdy masz zestaw zmiennych predykcyjnych i chcesz sklasyfikowa\u0107 <a href=\"https:\/\/statorials.org\/pl\/zmienne-odpowiedzi-wyjasniajace\/\" target=\"_blank\" rel=\"noopener noreferrer\">zmienn\u0105 odpowiedzi<\/a> na dwie lub wi\u0119cej klas.<\/span><\/p>\n<p> <span style=\"color: #000000;\">W tym samouczku przedstawiono krok po kroku przyk\u0142ad przeprowadzania liniowej analizy dyskryminacyjnej w j\u0119zyku R.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Krok 1: Za\u0142aduj niezb\u0119dne biblioteki<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Najpierw za\u0142adujemy niezb\u0119dne biblioteki dla tego przyk\u0142adu:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><b><span style=\"color: #993300;\">library<\/span> (MASS)\n<span style=\"color: #993300;\">library<\/span> (ggplot2)<\/b><\/span><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Krok 2: Za\u0142aduj dane<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">W tym przyk\u0142adzie u\u017cyjemy zestawu danych <strong>iris<\/strong> wbudowanego w R. Poni\u017cszy kod pokazuje, jak za\u0142adowa\u0107 i wy\u015bwietli\u0107 ten zestaw danych:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#attach <em>iris<\/em> dataset to make it easy to work with<\/span>\nattach(iris)\n\n<span style=\"color: #008080;\">#view structure of dataset\n<\/span>str(iris)\n\n'data.frame': 150 obs. of 5 variables:\n $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...\n $ Sepal.Width: num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...\n $Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...\n $Petal.Width: num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...\n $ Species: Factor w\/ 3 levels \"setosa\",\"versicolor\",..: 1 1 1 1 1 1 1 ...\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Widzimy, \u017ce zbi\u00f3r danych zawiera w sumie 5 zmiennych i 150 obserwacji.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Na potrzeby tego przyk\u0142adu zbudujemy liniowy model analizy dyskryminacyjnej, aby sklasyfikowa\u0107, do jakiego gatunku nale\u017cy dany kwiat.<\/span><\/p>\n<p> <span style=\"color: #000000;\">W modelu wykorzystamy nast\u0119puj\u0105ce zmienne predykcyjne:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">D\u0142ugo\u015b\u0107 rozdzielacza<\/span><\/li>\n<li> <span style=\"color: #000000;\">Sepal.Szeroko\u015b\u0107<\/span><\/li>\n<li> <span style=\"color: #000000;\">P\u0142atek.D\u0142ugo\u015b\u0107<\/span><\/li>\n<li> <span style=\"color: #000000;\">P\u0142atek.Szeroko\u015b\u0107<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Wykorzystamy je do przewidzenia zmiennej odpowiedzi <em>Gatunek<\/em> , kt\u00f3ra obs\u0142uguje nast\u0119puj\u0105ce trzy potencjalne klasy:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\">setosa<\/span><\/li>\n<li> <span style=\"color: #000000;\">wielokolorowy<\/span><\/li>\n<li> <span style=\"color: #000000;\">Wirginia<\/span><\/li>\n<\/ul>\n<h3> <span style=\"color: #000000;\"><strong>Krok 3: Skaluj dane<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Jednym z kluczowych za\u0142o\u017ce\u0144 liniowej analizy dyskryminacyjnej jest to, \u017ce ka\u017cda ze zmiennych predykcyjnych ma t\u0119 sam\u0105 wariancj\u0119. Prostym sposobem zapewnienia spe\u0142nienia tego za\u0142o\u017cenia jest skalowanie ka\u017cdej zmiennej w taki spos\u00f3b, aby mia\u0142a \u015bredni\u0105 0 i odchylenie standardowe 1.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Mo\u017cemy to zrobi\u0107 szybko w R za pomoc\u0105 funkcjiscale <strong>()<\/strong> :<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#scale each predictor variable (ie first 4 columns)\n<\/span>iris[1:4] &lt;- scale(iris[1:4])\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Mo\u017cemy u\u017cy\u0107 <a href=\"https:\/\/statorials.org\/pl\/przewodnik-dotyczacy-stosowania-lapply-sapply-i-tapply-w-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">funkcji Apply()<\/a> , aby sprawdzi\u0107, czy ka\u017cda zmienna predykcyjna ma teraz \u015bredni\u0105 0 i <a href=\"https:\/\/statorials.org\/pl\/odchylenie-standardowe-w-r\/\" target=\"_blank\" rel=\"noopener noreferrer\">odchylenie standardowe<\/a> 1:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#find mean of each predictor variable\n<\/span>apply(iris[1:4], 2, mean)\n\n Sepal.Length Sepal.Width Petal.Length Petal.Width \n-4.484318e-16 2.034094e-16 -2.895326e-17 -3.663049e-17 \n\n<span style=\"color: #008080;\">#find standard deviation of each predictor variable\n<\/span>apply(iris[1:4], 2, sd) \n\nSepal.Length Sepal.Width Petal.Length Petal.Width \n           1 1 1 1\n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Krok 4: Utw\u00f3rz pr\u00f3bki szkoleniowe i testowe<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Nast\u0119pnie podzielimy zbi\u00f3r danych na zbi\u00f3r ucz\u0105cy, na kt\u00f3rym b\u0119dziemy trenowa\u0107 model, oraz zbi\u00f3r testowy, na kt\u00f3rym b\u0119dziemy testowa\u0107 model:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(1)\n\n<span style=\"color: #008080;\">#Use 70% of dataset as training set and remaining 30% as testing set\n<\/span>sample &lt;- sample(c( <span style=\"color: #008000;\">TRUE<\/span> , <span style=\"color: #008000;\">FALSE<\/span> ), <span style=\"color: #3366ff;\">nrow<\/span> (iris), <span style=\"color: #3366ff;\">replace<\/span> = <span style=\"color: #008000;\">TRUE<\/span> , <span style=\"color: #3366ff;\">prob<\/span> =c(0.7,0.3))\ntrain &lt;- iris[sample, ]\ntest &lt;- iris[!sample, ] \n<\/strong><\/pre>\n<h3> <span style=\"color: #000000;\"><strong>Krok 5: Dostosuj model LDA<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Nast\u0119pnie skorzystamy z <a href=\"https:\/\/www.rdocumentation.org\/packages\/MASS\/versions\/7.3-53\/topics\/lda\" target=\"_blank\" rel=\"noopener noreferrer\">funkcji lda()<\/a> z pakietu <strong>MASS<\/strong> , aby dostosowa\u0107 model LDA do naszych danych:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#fit LDA model\n<\/span>model &lt;- lda(Species~., data=train)\n\n<span style=\"color: #008080;\">#view model output<\/span>\nmodel\n\nCall:\nlda(Species ~ ., data = train)\n\nPrior probabilities of groups:\n    setosa versicolor virginica \n 0.3207547 0.3207547 0.3584906 \n\nGroup means:\n           Sepal.Length Sepal.Width Petal.Length Petal.Width\nsetosa -1.0397484 0.8131654 -1.2891006 -1.2570316\nversicolor 0.1820921 -0.6038909 0.3403524 0.2208153\nvirginica 0.9582674 -0.1919146 1.0389776 1.1229172\n\nCoefficients of linear discriminants:\n                    LD1 LD2\nSepal.Length 0.7922820 0.5294210\nSepal.Width 0.5710586 0.7130743\nPetal.Length -4.0762061 -2.7305131\nPetal.Width -2.0602181 2.6326229\n\nProportion of traces:\n   LD1 LD2 \n0.9921 0.0079 \n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Oto jak interpretowa\u0107 wyniki modelu:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Prawdopodobie\u0144stwa a priori grupowe:<\/strong> reprezentuj\u0105 proporcje ka\u017cdego gatunku w zbiorze ucz\u0105cym. Na przyk\u0142ad 35,8% wszystkich obserwacji w zbiorze ucz\u0105cym dotyczy\u0142o gatunku <em>virginica<\/em> .<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>\u015arednie grupowe:<\/strong> wy\u015bwietlaj\u0105 \u015brednie warto\u015bci ka\u017cdej zmiennej predykcyjnej dla ka\u017cdego gatunku.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>Liniowe wsp\u00f3\u0142czynniki dyskryminacyjne:<\/strong> przedstawiaj\u0105 liniow\u0105 kombinacj\u0119 zmiennych predykcyjnych u\u017cywanych do uczenia regu\u0142y decyzyjnej modelu LDA. Na przyk\u0142ad:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>LD1:<\/strong> 0,792 * d\u0142ugo\u015b\u0107 dzia\u0142ki + 0,571 * szeroko\u015b\u0107 dzia\u0142ki \u2013 4,076 * d\u0142ugo\u015b\u0107 p\u0142atka \u2013 2,06 * szeroko\u015b\u0107 p\u0142atka<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>LD2:<\/strong> 0,529 * d\u0142ugo\u015b\u0107 dzia\u0142ki + 0,713 * szeroko\u015b\u0107 dzia\u0142ki \u2013 2,731 * d\u0142ugo\u015b\u0107 p\u0142atka + 2,63 * szeroko\u015b\u0107 p\u0142atka<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\"><strong>Proporcja \u015bledzenia:<\/strong> Wy\u015bwietla procent separacji osi\u0105gni\u0119ty przez ka\u017cd\u0105 liniow\u0105 funkcj\u0119 dyskryminacyjn\u0105.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Krok 6: U\u017cyj modelu do przewidywania<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Po dopasowaniu modelu przy u\u017cyciu naszych danych treningowych mo\u017cemy go u\u017cy\u0107 do przewidywania danych testowych:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#use LDA model to make predictions on test data\n<\/span>predicted &lt;- <span style=\"color: #3366ff;\">predict<\/span> (model, test)\n\nnames(predicted)\n\n[1] \"class\" \"posterior\" \"x\"   \n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Zwraca to list\u0119 z trzema zmiennymi:<\/span><\/p>\n<ul>\n<li> <span style=\"color: #000000;\"><strong>class:<\/strong> przewidywana klasa<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>posterior:<\/strong> <a href=\"https:\/\/statorials.org\/pl\/prawdopodobienstwo-pozniejsze\/\" target=\"_blank\" rel=\"noopener noreferrer\">Prawdopodobie\u0144stwo p\u00f3\u017aniejsze<\/a> , \u017ce obserwacja nale\u017cy do ka\u017cdej klasy<\/span><\/li>\n<li> <span style=\"color: #000000;\"><strong>x:<\/strong> Dyskryminatory liniowe<\/span><\/li>\n<\/ul>\n<p> <span style=\"color: #000000;\">Mo\u017cemy szybko zwizualizowa\u0107 ka\u017cdy z tych wynik\u00f3w dla pierwszych sze\u015bciu obserwacji w naszym testowym zbiorze danych:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#view predicted class for first six observations in test set\n<\/span>head(predicted$class)\n\n[1] setosa setosa setosa setosa setosa setosa\nLevels: setosa versicolor virginica\n\n<span style=\"color: #008080;\">#view posterior probabilities for first six observations in test set<\/span>\nhead(predicted$posterior)\n\n   setosa versicolor virginica\n4 1 2.425563e-17 1.341984e-35\n6 1 1.400976e-21 4.482684e-40\n7 1 3.345770e-19 1.511748e-37\n15 1 6.389105e-31 7.361660e-53\n17 1 1.193282e-25 2.238696e-45\n18 1 6.445594e-22 4.894053e-41\n\n<span style=\"color: #008080;\">#view linear discriminants for first six observations in test set\n<\/span>head(predicted$x)\n\n         LD1 LD2\n4 7.150360 -0.7177382\n6 7.961538 1.4839408\n7 7.504033 0.2731178\n15 10.170378 1.9859027\n17 8.885168 2.1026494\n18 8.113443 0.7563902\n<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Mo\u017cemy u\u017cy\u0107 poni\u017cszego kodu, aby sprawdzi\u0107, dla jakiego procentu obserwacji model LDA poprawnie przewidzia\u0142 gatunek:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#find accuracy of model\n<\/span>mean(predicted$class==test$Species)\n\n[1] 1<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Okazuje si\u0119, \u017ce model poprawnie przewidzia\u0142 gatunek dla <strong>100%<\/strong> obserwacji w naszym testowym zbiorze danych.<\/span><\/p>\n<p> <span style=\"color: #000000;\">W prawdziwym \u015bwiecie model LDA rzadko poprawnie przewiduje wyniki ka\u017cdej klasy, ale ten zbi\u00f3r danych t\u0119cz\u00f3wki jest po prostu skonstruowany w taki spos\u00f3b, \u017ce algorytmy uczenia maszynowego zwykle dzia\u0142aj\u0105 bardzo dobrze.<\/span><\/p>\n<h3> <span style=\"color: #000000;\"><strong>Krok 7: Wizualizuj wyniki<\/strong><\/span><\/h3>\n<p> <span style=\"color: #000000;\">Na koniec mo\u017cemy utworzy\u0107 wykres LDA, aby zwizualizowa\u0107 liniowe wyr\u00f3\u017cniki modelu i zwizualizowa\u0107, jak dobrze oddziela on trzy r\u00f3\u017cne gatunki w naszym zbiorze danych:<\/span> <\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008080;\">#define data to plot\n<\/span>lda_plot &lt;- cbind(train, predict(model)$x)\n\n<span style=\"color: #008080;\">#createplot\n<\/span>ggplot(lda_plot, <span style=\"color: #3366ff;\">aes<\/span> (LD1, LD2)) +\n  geom_point( <span style=\"color: #3366ff;\">aes<\/span> (color=Species))\n<\/strong><\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-11639 \" src=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/lda_r1.png\" alt=\"Liniowa analiza dyskryminacyjna w R\" width=\"431\" height=\"427\" srcset=\"\" sizes=\"auto, \"><\/p>\n<p> <span style=\"color: #000000;\">Pe\u0142ny kod R u\u017cyty w tym samouczku znajdziesz <a href=\"https:\/\/github.com\/Statorials\/R-Guides\/blob\/main\/linear_discriminant_analysis\" target=\"_blank\" rel=\"noopener noreferrer\">tutaj<\/a> .<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Liniowa analiza dyskryminacyjna to metoda, kt\u00f3rej mo\u017cna u\u017cy\u0107, gdy masz zestaw zmiennych predykcyjnych i chcesz sklasyfikowa\u0107 zmienn\u0105 odpowiedzi na dwie lub wi\u0119cej klas. W tym samouczku przedstawiono krok po kroku przyk\u0142ad przeprowadzania liniowej analizy dyskryminacyjnej w j\u0119zyku R. Krok 1: Za\u0142aduj niezb\u0119dne biblioteki Najpierw za\u0142adujemy niezb\u0119dne biblioteki dla tego przyk\u0142adu: library (MASS) library (ggplot2) Krok [&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-1160","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>Liniowa analiza dyskryminacyjna w R (krok po kroku)<\/title>\n<meta name=\"description\" content=\"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.\" \/>\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\/liniowa-analiza-dyskryminacyjna-w-r\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Liniowa analiza dyskryminacyjna w R (krok po kroku)\" \/>\n<meta property=\"og:description\" content=\"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-27T11:00:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/lda_r1.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=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/\",\"url\":\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/\",\"name\":\"Liniowa analiza dyskryminacyjna w R (krok po kroku)\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/pl\/#website\"},\"datePublished\":\"2023-07-27T11:00:03+00:00\",\"dateModified\":\"2023-07-27T11:00:03+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965\"},\"description\":\"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Dom\",\"item\":\"https:\/\/statorials.org\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Liniowa analiza dyskryminacyjna w r (krok po kroku)\"}]},{\"@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":"Liniowa analiza dyskryminacyjna w R (krok po kroku)","description":"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.","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\/liniowa-analiza-dyskryminacyjna-w-r\/","og_locale":"pl_PL","og_type":"article","og_title":"Liniowa analiza dyskryminacyjna w R (krok po kroku)","og_description":"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.","og_url":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/","og_site_name":"Statorials","article_published_time":"2023-07-27T11:00:03+00:00","og_image":[{"url":"https:\/\/statorials.org\/wp-content\/uploads\/2023\/08\/lda_r1.png"}],"author":"Benjamin Anderson","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Benjamin Anderson","Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/","url":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/","name":"Liniowa analiza dyskryminacyjna w R (krok po kroku)","isPartOf":{"@id":"https:\/\/statorials.org\/pl\/#website"},"datePublished":"2023-07-27T11:00:03+00:00","dateModified":"2023-07-27T11:00:03+00:00","author":{"@id":"https:\/\/statorials.org\/pl\/#\/schema\/person\/6484727a4612df3e69f016c3129c6965"},"description":"W tym samouczku wyja\u015bniono, jak przeprowadzi\u0107 liniow\u0105 analiz\u0119 dyskryminacyjn\u0105 w j\u0119zyku R, \u0142\u0105cznie z przyk\u0142adem krok po kroku.","breadcrumb":{"@id":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/pl\/liniowa-analiza-dyskryminacyjna-w-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Dom","item":"https:\/\/statorials.org\/pl\/"},{"@type":"ListItem","position":2,"name":"Liniowa analiza dyskryminacyjna w r (krok po kroku)"}]},{"@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\/1160","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=1160"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/posts\/1160\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/media?parent=1160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/categories?post=1160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/pl\/wp-json\/wp\/v2\/tags?post=1160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}