Aktualizacja prawdopodobieństwa klasyfikacji w regresji logistycznej w czasie


19

Buduję model predykcyjny, który przewiduje prawdopodobieństwo sukcesu studenta na koniec semestru. Szczególnie interesuje mnie to, czy student odniesie sukces, czy nie, gdzie sukces jest zwykle definiowany jako ukończenie kursu i osiągnięcie 70% lub więcej punktów spośród wszystkich możliwych punktów.

Kiedy wdrażam model, oszacowanie prawdopodobieństwa sukcesu musi być aktualizowane z upływem czasu, gdy dostępnych jest więcej informacji - idealnie natychmiast po tym, jak coś się wydarzy, na przykład gdy uczeń składa zadanie lub otrzymuje ocenę z jednego. Ta aktualizacja brzmi dla mnie jak Bayesian, ale biorąc pod uwagę mój trening statystyki edukacyjnej, jest to trochę poza moją strefą komfortu.

Do tej pory korzystałem z regresji logistycznej (właściwie lasso) z zestawem danych historycznych zawierających migawki tygodniowe. Ten zestaw danych ma skorelowane obserwacje, ponieważ każdy uczeń ma TermLength/7obserwacje; obserwacje jednego ucznia są skorelowane. Nie modeluję konkretnie korelacji w cotygodniowych obserwacjach konkretnego studenta. Uważam, że musiałbym wziąć to pod uwagę jedynie w ramach wnioskowania, ponieważ standardowe błędy byłyby zbyt małe. Myślę - ale nie jestem tego pewien - że jedynym problemem wynikającym ze skorelowanych obserwacji jest to, że muszę być ostrożny, kiedy przeprowadzam walidację krzyżową, aby zachować obserwacje skupione w jednym podzbiorze danych, aby nie uzyskać sztucznie niski poziom błędów poza próbą na podstawie prognoz dotyczących osoby, którą model już widział.

Korzystam z pakietu glmnet R, aby wykonać lasso z modelem logistycznym, aby wygenerować prawdopodobieństwo sukcesu / porażki i automatycznie wybrać predyktory dla określonego kursu. Używałem zmiennej tygodnia jako czynnika, współdziałałem ze wszystkimi innymi predyktorami. Nie sądzę, że różni się to od samego oszacowania poszczególnych modeli tygodniowych, z tym wyjątkiem, że daje pewne pojęcie o tym, jak może istnieć jakiś wspólny model, który utrzymuje się przez cały okres, który jest korygowany za pomocą różnych czynników korekty ryzyka w różnych tygodniach.

Moje główne pytanie brzmi: czy istnieje lepszy sposób aktualizowania prawdopodobieństw klasyfikacji w czasie, niż tylko podział zbioru danych na cotygodniowe (lub inne oparte na interwałach) migawki, wprowadzenie zmiennej czynnikowej przedziału czasowego współdziałającej z każdą inną funkcją, oraz wykorzystując skumulowane cechy (skumulowane zdobyte punkty, skumulowane dni w klasie itp.)?

Moje drugie pytanie brzmi: czy brakuje mi czegoś krytycznego w modelowaniu predykcyjnym z korelowanymi obserwacjami?

Moje trzecie pytanie brzmi: jak mogę uogólnić to na aktualizację w czasie rzeczywistym, biorąc pod uwagę, że robię cotygodniowe migawki? Planuję po prostu podłączać zmienne dla bieżącego tygodniowego interwału, ale wydaje mi się to kludgey.

Do twojej wiadomości, jestem przeszkolony w stosowaniu statystyk edukacyjnych, ale mam doświadczenie w statystykach matematycznych dawno temu. Mogę zrobić coś bardziej zaawansowanego, jeśli ma to sens, ale muszę to wyjaśnić w stosunkowo przystępnych terminach.

Odpowiedzi:


4

t0,t1,,tnti(Zi,Si)ZiSi(1,0)Prob(zi=0|si1)Si

Prawdopodobieństwa rezygnacji nie są nieruchome, ponieważ przed końcową datą rezygnacji bez kary dostaniesz mnóstwo rezygnacji. Można je jednak oszacować na podstawie danych z przeszłości, a także oszacować prawdopodobieństwo wypadnięcia w zależności od bieżącej (ponurej) wydajności.

Sn

ZS

S

Na początku prawdopodobieństwo zaliczenia studenta to po prostu wskaźnik zaliczenia z poprzedniej klasy.

S170S1

Jako bonus możesz obliczyć zakres prawdopodobieństw, które powinny się zawężać w miarę upływu terminu. W rzeczywistości silni uczniowie przekroczą 70% przed końcem semestru, a ich sukces będzie pewny w tym momencie. W przypadku słabych uczniów porażka stanie się pewna także przed końcem.

RE: pytanie 3. Czy powinieneś przejść do ciągłego czasu? Nie zrobiłbym tego, ponieważ to stawia nas w sferze ciągłych procesów stochastycznych, a matematyka jest wyższa niż moja płaca. Co więcej, jest mało prawdopodobne, aby uzyskać zasadniczo inny wynik.

Najlepszym sposobem na ulepszenie modelu, który nakreśliłem, nie jest przejście do ciągłego czasu, ale dostosowanie prawdopodobieństwa przejścia na podstawie wcześniejszych doświadczeń. Być może słabi studenci pozostają w tyle, niż przewidywałby model niezależności. Włączenie niejednorodności poprawiłoby model bardziej niż przejście od czasu dyskretnego do ciągłego.


0

Kiedy trenuję modele predykcyjne dla podobnego typu wdrożenia, upewniam się, że moje zestawy danych mają pewien rodzaj Term_End_Date, dzięki czemu mogę wydłużyć czas pozostały do ​​zakończenia terminu. To prawdopodobnie skończy się znaczącym predyktorem w twoim modelu.

Jeśli chodzi o kwestię skorelowanych obserwacji, przypuszczam, że ma to znaczenie, jak duże jest repozytorium danych, które macie. Jeśli to możliwe, losowo wybrałbym 1 obserwację dla każdego ucznia, stratyfikowany w [# tygodni do końca semestru]. Jeśli to możliwe, zaczerpnę też ze starszych terminów. Jeśli nie masz wystarczającej ilości danych, by to zrobić, być może możesz spróbować metody ponownego próbkowania, takiej jak bootstrap.

Myślę, że najważniejszą rzeczą w przypadku niewielkiego zestawu danych jest przechowywanie wystarczającej ilości danych, aby mieć pewność, że ostateczny model jest stabilny.

Myślę, że kiedy skończysz, a masz formułę punktacji, będzie to dość łatwe do wdrożenia. Ale tak, nadal powinieneś podłączać cotygodniowe zmienne x, które będziesz musiał obliczyć, ale to bardziej przypomina problem gromadzenia danych, a mniej implementacji modelu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.