-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uwagi do regression #14
Comments
Przyjrzę się na spokojnie jakoś pod koniec tygodnia. |
Ad.1. It's not a bug, it's a feature. Kiedy tworzyłem to zadanie rozważałem dwa warianty: 1) albo aby dotyczyło ono umiejętności przeprowadzenia graficznej diagnostyki liniowości, 2) albo aby dotyczyło ono umiejętności sformalizowania warunku, że zależność jest liniowa i naklepania automatyzacji, która by ten warunek sprawdzała. Z różnych przyczyn, z których najpoważniejszą była sugestia Przemka, że lepiej implementować zadania trudniejsze, niż łatwiejsze (a sformalizowanie warunku i naklepanie automatyzacji jest nieco trudniejsze, niż diagnostyka graficzna) wybrany został wariant drugi. Nawiasem mówiąc nie myślałem, że komuś będzie się chciało patrzeć na tyle obrazków, bo to najwyżej oczopląsu można dostać (diagnostyka graficzna jest ważna, ale pod pewnymi względami źle się skaluje, więc i nie zawsze się sprawdza). Czego zresztą, można powiedzieć padł ofiarą autor komentarza. |
Ad. 2. I znowu: it's not a bug, it's a feature. Wiem, że najbardziej typowe sposoby selekcji zmiennych użytych w modelu to krokowe usuwanie nieistotnych zmiennych, względnie brutalne przeszukanie przestrzeni możliwych kombinacji w celu znalezienia tej minimalizującej wybrane kryterium informacyjne. Niemniej w tym zadaniu chciałem zwrócić uwagę dokładnie na kwestię współliniowość i narzędzi służących do diagnozowania dokładnie tego zjawiska. Przy czym w ogólności nieistotność predyktorów w modelu może mieć i inne przyczyny, a wymienione powyżej metody selekcji nie są w żaden sposób specyficzne w wykrywaniu właśnie współliniowości. Stąd takie dobranie danych do zadania (zaręczam, że kosztowało mnie to naprawdę sporo czasu :) ), aby zastosowanie takich typowych metod selekcji zmiennych nie dawało poprawnej odpowiedzi (mimo tego, że w realnych sytuacjach usuwanie zmiennych z największym VIFem i np. krokowe usuwanie najbardziej nieistotnych zmiennych bardzo często prowadzi nas do dokładnie tej samej postaci modelu). Chodziło mi właśnie o to, aby rozwiązujący odwołał się do metod diagnozowania współliniowości, zamiast rozwiązać problem tak, jak to przywykł robić. Oczywiście rozwiązujący, mimo wyraźnych sugestii zawartych w treści zadania, może nie chcieć tego zrobić... i wtedy pozostaje mu metoda brute force polegająca na przeszukaniu przestrzeni wszystkich możliwych kombinacji predyktorów (rozsądnie planując kolejność przeszukiwania tej przestrzeni można nawet prawidłowe rozwiązanie znaleźć bardzo szybko). I tą możliwość też uważam za pożądaną - pozwala przejść do dalszych zadań, zamiast zaciąć się kompletnie z powodu rozbieżności poglądów w stosunku do autora zadania (a samo naklepanie takiego przeszukiwania to też jakieś zadanie do rozwiązania). Co do kwestii najlepszego modelu - nigdzie w treści ani odpowiedzi do zadania 4. nie pada stwierdzenie o poszukiwaniu, czy znalezienie najlepszego czy optymalnego modelu. Zadanie postawione przed graczem jest sformułowane w kategoriach technicznych - właśnie dlatego, że jak zauważa autor komentarza, uzyskane rozwiązanie może stanowić tylko punkt wyjścia do dyskusji o wyborze najlepszego modelu regresji. Tyle tylko że takiej dyskusji nie sposób moim zdaniem zawrzeć w ramach tego rodzaju gry (proponuję krótki eksperyment myślowy: spróbujmy sobie wyobrazić jak miałaby wyglądać informacja prezentowana graczowi po rozwiązaniu zadania 4., gdyby miała być w niej zawarta taka dyskusja). Zwłaszcza że pojęcie optymalności modelu, choć bywa dyskutowane w kategoriach stricte statystycznych, w praktyce jest silnie osadzone w kontekście danej dziedziny, celów badania, szczegółowych pytań badawczych itd. - tego nie sposób zawrzeć w narzędziu edukacyjnym o takiej formie, jak ta gra. Oczywiście można powiedzieć, że ten wybieg z postawieniem zadania w kategoriach technicznych to paskudnie tani chwyt, a na dodatek nieskuteczny (w tym sensie, że wielu - być może nawet większość - rozwiązujących i tak będzie święcie przeświadczona, że otrzymali zadanie znalezienie optymalnego modelu), niemniej muszę powiedzieć, że na lepszy pomysł zaaranżowania zadania nt. współliniowości nie wpadłem. |
Ad. 3. Co do regresji sklejanej - trochę to problem nomenklatury, dla mnie wszystko, co możesz wyestymować funkcją lm() jest regresją liniową (bo niby czemu nie?). Niestety trochę te problemy nomenklaturowe nieuniknione - niby jedna statystyka, ale zależy, w jakiej dziedzinie kto siedzi, albo kto go uczył i już można mieć problemy, żeby się zrozumieć. Abstrahując od powyższego problemu - z jednej strony cieszę się, że uzyskana przez autora poprawna odpowiedź (w istocie kryterium poprawności oparte jest na deviance modelu - ma być nie większa, niż ta, jaką charakteryzuje się pewien model, nieco arbitralnie wybrany przez autora jako całkiem adekwatnie opisujący analizowane zjawisko) wzbudziła jego zainteresowanie. Z drugiej strony trochę mnie martwi, że najwyraźniej nie zauważa związku rozwiązania, które ułożył trochę na a nóż się uda z treścią zadania. Dokładniej, nie zauważa, że jego model jest w świetle informacji przekazanych w treści zadania - a mających naprowadzić gracza na potencjalnie adekwatną formę modelu - zupełnie prawdopodobny. Co mówi ten model, jak mu się przyjrzeć:
A co sugeruje treść zadania, jeśli chodzi o konstruowanie modelu:
Oczywiście moglibyśmy skonstruować nieco bardziej permisywny model model postaci: Przechodząc do konkluzji - może należałoby opatrzyć rozwiązanie zadania 7. jakimś komentarzem, który pomógł by graczom dostrzec, że rozwiązanie, które uzyskali - nawet jeśli na pierwszy rzut oka wydaje im się dziwne - w istocie ma sens? |
@tzoltak dostałem kilka komentarzy do regression, może się przydadzą
trafiłem dopiero za trzecim razem, a właściwie po dwu nieudanych razach
uruchomiłem już pętlę for, bo te moim zdaniem najbardziej liniowe
(oceniając z wykresu) nie były właściwym rozwiązaniem. Może więc osłabić
warunek w zadaniu mówiący o niemal perfekcyjnie liniowej zależności,
regresji otrzymywałem ciągle różne modele o samych istotnych
współczynnikach, ale z 4 usuniętymi zmiennymi. Dlatego uruchomiłem znowu
brute force - tym razem za pomocą funkcji combn. Model z 3 usuniętymi
zmiennymi miał jednak większe AIC niż ten znaleziony z funkcji step i
takie rozwiązanie stanowi dla mnie tylko punkt wyjścia do dyskusji o
wyborze najlepszego modelu regresji, a nie bezdyskusyjne wyjaśnienie
zależności w zbiorze danych
sklejanej, bo z zadania zrozumiałem, że chodzi o zależności liniowe. Ale
ciągle nie mogłem poprawić dopasowania przy różnych modelach z-kształtnych
(np. pierwiastek trzeciego stopnia ze zmiennej centrowanej jako
predyktor), aż znalazłem prostackie rozwiązanie za pomocą regresji
sklejanej
regression(subject = "Age", content = READ_2009 ~
ifelse(RAVEN_AGE<16.9,RAVEN_AGE,0) + ifelse(RAVEN_AGE>18,RAVEN_AGE,0)).
Nie wiem jednak, czy to o to chodziło, bo do tego modelu wprowadzana jest
tylko zależność od predyktora na ogonach rozkładu?
The text was updated successfully, but these errors were encountered: