Powiedzmy, że badam, jak żonkile reagują na różne warunki glebowe. Zebrałem dane na temat pH gleby w porównaniu do dojrzałej wysokości żonkila. Oczekuję relacji liniowej, więc zaczynam o regresji liniowej.
Jednak nie zdawałem sobie sprawy, kiedy rozpocząłem badanie, że populacja zawiera dwie odmiany żonkila, z których każda reaguje bardzo różnie na pH gleby. Zatem wykres zawiera dwie wyraźne zależności liniowe:
Oczywiście mogę to zrobić gałką oczną i rozdzielić ręcznie. Ale zastanawiam się, czy istnieje bardziej rygorystyczne podejście.
Pytania:
Czy istnieje test statystyczny, aby ustalić, czy zestaw danych lepiej pasowałby do pojedynczej linii czy N linii?
Jak uruchomić regresję liniową, aby dopasować linie N? Innymi słowy, w jaki sposób mogę rozplątać zmieszane dane?
Mogę myśleć o niektórych podejściach kombinatorycznych, ale wydają się one drogie obliczeniowo.
Wyjaśnienia:
Istnienie dwóch odmian było nieznane w momencie gromadzenia danych. Odmiany każdego żonkila nie zaobserwowano, nie odnotowano i nie odnotowano.
Nie można odzyskać tych informacji. Żonkile zmarły od czasu gromadzenia danych.
Mam wrażenie, że ten problem jest podobny do stosowania algorytmów klastrowania, ponieważ prawie musisz znać liczbę klastrów przed rozpoczęciem. Wierzę, że przy DOWOLNYM zestawie danych zwiększenie liczby linii zmniejszy całkowity błąd rms. W skrajności możesz podzielić swój zestaw danych na dowolne pary i po prostu narysować linię przez każdą parę. (Na przykład, jeśli masz 1000 punktów danych, możesz podzielić je na 500 dowolnych par i narysować linię przez każdą parę.) Dopasowanie byłoby dokładne, a błąd rms wyniósłby dokładnie zero. Ale nie tego chcemy. Chcemy „właściwej” liczby linii.
źródło
Odpowiedzi:
Myślę, że odpowiedź Demetri jest świetna, jeśli założymy, że masz etykiety dla różnych odmian. Kiedy czytam twoje pytanie, wydaje mi się, że tak nie jest. Możemy zastosować podejście oparte na algorytmie EM, aby zasadniczo dopasować model, który sugeruje Demetri, ale nie znając etykiet dla odmiany. Na szczęście pakiet mixtools w R zapewnia nam tę funkcjonalność. Ponieważ twoje dane są dość rozdzielone i wydaje się, że masz ich dość, powinno to być dość udane.
Możemy zbadać wyniki
Pasował więc do dwóch regresji i oszacował, że 49,7% obserwacji popadło w regresję dla komponentu 1, a 50,2% popadło w regresję dla komponentu 2. Sposób, w jaki symulowałem dane, to był podział 50-50, więc to dobrze.
„Prawdziwe” wartości, których użyłem do symulacji, powinny dać linie:
y = 41,55 + 5,185 * ph oraz y = 65,14 + 1,48148 * ph
(które oszacowałem „ręcznie” na podstawie twojego wykresu, dzięki czemu dane, które tworzę, wyglądają podobnie do twoich) i linie, które podał algorytm EM w tym przypadku to:
y = 41,514 + 5,19 * ph oraz y = 64,655 + 1,55 * ph
Dość cholernie blisko rzeczywistych wartości.
Możemy wykreślić dopasowane linie wraz z danymi
źródło
EDYCJA: Początkowo myślałem, że OP wiedział, które obserwacje pochodzą z jakiego gatunku. Edycja OP wyjaśnia, że moje oryginalne podejście jest niewykonalne. Zostawię to potomności, ale druga odpowiedź jest znacznie lepsza. Na pocieszenie napisałem model mieszanki w Stanie. Nie twierdzę, że podejście bayesowskie jest szczególnie dobre w tym przypadku, ale jest to coś fajnego, co mogę wnieść.
Kod Stan
Uruchom model Stan od R.
Wyniki
Linie przerywane są prawdą podstawową, linie ciągłe są szacowane.
Oryginalna odpowiedź
Jeśli wiesz, która próbka pochodzi z jakiej odmiany żonkila, możesz oszacować interakcję między odmianą a PH gleby.
Twój model będzie wyglądał
Oto przykład w R. Wygenerowałem niektóre dane, które wyglądają tak:
Oczywiście dwie różne linie, a linie odpowiadają dwóm gatunkom. Oto jak oszacować linie za pomocą regresji liniowej.
I wynik jest taki
W przypadku gatunków oznaczonych jako 0 linia wynosi około
W przypadku gatunków oznaczonych 1 linia wynosi około
źródło
Podejście statystyczne jest bardzo podobne do dwóch powyższych odpowiedzi, ale dotyczy nieco więcej sposobu wybierania liczby ukrytych klas, jeśli nie masz wcześniejszej wiedzy. Możesz użyć kryteriów informacyjnych lub parsimony jako przewodnika przy wyborze liczby ukrytych klas.
Oto przykład Stata wykorzystujący sekwencję modeli skończonych mieszanin (FMM) z 2-4 ukrytymi klasami / komponentami. Pierwsza tabela to współczynniki ukrytego członkostwa w klasie. Są one nieco trudne do interpretacji, ale można je później przekształcić w prawdopodobieństwa
estat lcprob
. Dla każdej klasy otrzymujesz również parametr przechwytywania i nachylenia ph, a następnie krańcowe prawdopodobieństwo ukryte klasy i dwa układy scalone w próbce. Te oszacowania współczynników są interpretowane tak jak współczynniki z modelu regresji liniowej. W tym przypadku najmniejszy BIC w próbce mówi o wybraniu modelu dwuskładnikowego jako najlepszego. AIC dziwnie wybiera model 3-komponentowy. Możesz także użyć układów scalonych poza próbką, aby wybrać lub użyć weryfikacji krzyżowej.Podejście FMM nie zawsze tak dobrze sprawdza się w praktyce, jeśli zajęcia są mniej surowe. Możesz napotkać trudności obliczeniowe ze zbyt wieloma ukrytymi klasami, szczególnie jeśli nie masz wystarczającej ilości danych lub funkcja wiarygodności ma wiele lokalnych maksimów.
źródło
Skupię się na kwestii istotności statystycznej, ponieważ Dason już omówił część dotyczącą modelowania.
Nie jestem zaznajomiony z żadnymi formalnymi testami do tego (co na pewno istnieję), więc po prostu wyrzucę kilka pomysłów (i prawdopodobnie dodam kod R i szczegóły techniczne później).
Po pierwsze, wygodnie jest wnioskować o klasach. Zakładając, że masz dwie linie dopasowane do danych, możesz w przybliżeniu zrekonstruować dwie klasy, przypisując każdy punkt do klasy linii najbliższej. W przypadku punktów w pobliżu skrzyżowania napotkasz problemy, ale na razie po prostu je zignoruj (może być sposób na obejście tego, ale na razie mam nadzieję, że to się niewiele zmieni).
Są dwa naturalne sposoby, aby to zrobić.
Mniej zabawnym sposobem jest po prostu uruchomienie oryginalnego zestawu danych w połączeniu z wywnioskowanymi etykietami klas za pomocą regresji liniowej, jak w odpowiedzi Demetri.
Bardziej interesującym sposobem jest zmodyfikowana wersja ANOVA. Chodzi o to, aby utworzyć sztuczny zestaw danych, który reprezentuje dwie linie (z podobnym rozmieszczeniem między nimi), a następnie zastosować ANOVA. Technicznie rzecz biorąc, musisz to zrobić raz dla lewej strony, a raz dla prawej (tzn. Będziesz mieć dwa sztuczne zestawy danych).
Zauważ, że oba podejścia w sposób naturalny uogólniają sięN. zajęcia
źródło
Czy to możliwe, że uwzględnienie obu na tym samym wykresie jest błędem? Biorąc pod uwagę, że odmiany zachowują się zupełnie inaczej, czy jest jakaś wartość nakładania się danych? Wydaje mi się, że szukasz wpływu na gatunek żonkila, a nie wpływu podobnych środowisk na różne żonkile. Jeśli utraciłeś dane, które pomagają określić gatunek „A” z gatunku „B”, możesz po prostu pogrupować zachowanie „A” i zachowanie „B” i uwzględnić odkrycie dwóch gatunków w swojej narracji. Lub, jeśli naprawdę potrzebujesz jednego wykresu, po prostu użyj dwóch zestawów danych na tej samej osi. Nie mam nigdzie wiedzy specjalistycznej, którą widzę w innych udzielonych odpowiedziach, więc muszę znaleźć mniej „wykwalifikowane” metody. Przeprowadziłbym analizę danych w środowisku arkusza roboczego, w którym łatwiej jest opracować równania. Następnie, gdy grupy staną się oczywiste, utwórz dwie osobne tabele danych, a następnie przekonwertuj je na wykresy / wykresy. Pracuję z dużą ilością danych i często okazuje się, że moje założenia dotyczące różnych korelacji okazują się błędne; to właśnie dane mają nam pomóc odkryć. Gdy dowiem się, że moje założenia są błędne, wyświetlam dane na podstawie odkrytych zachowań i omawiam te zachowania oraz wynikające z nich analizy statystyczne w ramach narracji.
źródło