Statystyki dotyczące witryn randkowych

10

Jestem ciekawy, w jaki sposób internetowe systemy randkowe mogą wykorzystywać dane z ankiet do określania dopasowań.

Załóżmy, że mają dane dotyczące wyników z poprzednich meczów (np. 1 = szczęśliwe małżeństwo, 0 = brak drugiej randki).

Następnie załóżmy, że mieli 2 pytania preferencyjne,

  • „Jak bardzo lubisz zajęcia na świeżym powietrzu? (1 = zdecydowanie nie lubię, 5 = zdecydowanie lubię)”
  • „Jak optymistycznie podchodzisz do życia? (1 = zdecydowanie nie lubię, 5 = zdecydowanie lubię)”

Załóżmy również, że dla każdego pytania preferencyjnego mają wskaźnik „Jak ważne jest, aby twój małżonek podzielił twoje preferencje? (1 = nieważne, 3 = bardzo ważne)”

Jeśli mają te 4 pytania dla każdej pary i wynik, czy mecz był sukcesem, jaki jest podstawowy model, który wykorzystałby te informacje do przewidzenia przyszłych meczów?

d_a_c321
źródło
2
Myślałem, że mecz zakończy się sukcesem, gdy dziewczyna jest ładna lub mężczyzna jest bogaty. Wszystko inne jest drugorzędne.
user4951
4
Sprawdź blog.okcupid.com - gdzieś mówią o podstawowych pasujących modelach.
Felix S
Czy możesz wspomnieć, na jakich rzeczach chcesz głębiej? Odpowiedź Michaela jest dość solidna.
Dan
Jeśli czytasz patent (patent 6 735 568 - google.com/... ) dla EHarmony, ich system wykorzystuje kombinację analizy zasad składowych, analizy czynnikowej i sieci neuronowej. Jak wspomnieli inni, metody takie jak K-NN, CARTS i GLM będą również działać dobrze.
Chris Simokat,
@ChrisSimokat - WOW! Dziękuję bardzo za niesamowity link. To interesujące. Nigdy nie myślałem, że możesz „statystycznie” stosować metody i algorytmy statystyczne.
d_a_c321

Odpowiedzi:

4

Kiedyś rozmawiałem z kimś, kto pracuje dla jednego z internetowych serwisów randkowych, który używa technik statystycznych (prawdopodobnie raczej nie powiedziałbym, kto). To było dość interesujące - na początek używali bardzo prostych rzeczy, takich jak najbliżsi sąsiedzi z euclidiean lub L_1 (cityblock) odległości między wektorami profili, ale była debata, czy dopasowanie dwóch osób, które były zbyt podobne, było dobre czy złe rzecz. Następnie powiedział, że teraz zebrali wiele danych (którzy byli zainteresowani, kto, kto był na randce, kto się ożenił itp.), Używają ich do ciągłego przekwalifikowywania modeli. Pracują w środowisku przyrostowym, w którym okresowo aktualizują swoje modele przy użyciu partii danych, a następnie ponownie obliczają prawdopodobieństwa dopasowania w bazie danych. Całkiem interesujące rzeczy, ale ja

tdc
źródło
3

Poprosiłeś o prosty model. Oto jak zacznę od kodu R:

 glm(match ~ outdoorDif*outdoorImport + optimistDif*optimistImport,
     family=binomial(link="logit"))

outdoorDif = różnica odpowiedzi dwóch osób na temat tego, jak bardzo lubią zajęcia na świeżym powietrzu. outdoorImport = średnia z dwóch odpowiedzi na temat znaczenia dopasowania w odniesieniu do odpowiedzi na temat korzystania z zajęć na świeżym powietrzu.

* Oznacza, że ​​powyższe i następne warunki są obsługiwane, a także zawarte osobno.

Sugerujesz, że dane dopasowania są binarne, a jedynymi dwiema opcjami są „szczęśliwe małżeństwo” i „brak drugiej randki”, więc to właśnie założyłem przy wyborze modelu logit. To nie wydaje się realistyczne. Jeśli masz więcej niż dwa możliwe wyniki, musisz przełączyć się na wielomianowy lub uporządkowany logit lub inny taki model.

Jeśli, jak sugerujesz, niektóre osoby próbowały wiele razy, to prawdopodobnie bardzo ważną rzeczą byłoby rozliczenie się z tym modelem. Jednym ze sposobów na to może być oddzielne zmienne wskazujące # poprzedniej próby dopasowania dla każdej osoby, a następnie interakcja między nimi.

Michael Bishop
źródło
Dzięki za świetną odpowiedź. Daję ci nagrodę! :) To wydaje się być dobrym podejściem. Być może, jeśli masz N pytań, które pasują do kategorii M (np. Pytania lekkoatletyczne), możesz wzbogacić model przy użyciu średniej ważności i różnic w obrębie tej kategorii i dodać go jako dodatkowy termin. Nie jest idealny, ale może to być prosty sposób na uchwycenie interakcji kilku skorelowanych zmiennych. Jeszcze raz dziękuję, chętnie usłyszę inne myśli, które nie dadzą odpowiedzi;).
d_a_c321
Czy nie powinieneś najpierw znormalizować odpowiedzi? Jeśli wszyscy lubią spędzać czas na świeżym powietrzu, odpowiedź na zewnątrz powinna stać się mniej istotna, ponieważ byłby to słaby predyktor kompatybilności.
Sklivvz,
@ Skliwz, nie jestem pewien, jak znormalizowałbyś odpowiedź wielokrotnego wyboru (porządkową). Pamiętaj również, że liniowe transformacje zmiennych predykcyjnych ciągłych są czasami pożądane z powodów omówionych tutaj: stats.stackexchange.com/q/7112/3748 i tutaj: stats.stackexchange.com/q/19216/3748, ale nie zmienią modeluje prognozy z wyjątkiem niektórych nietypowych problemów obliczeniowych. Jeśli wszyscy lubią spędzać czas na dworze, równie dobrze na zewnątrz odpowiedź na zewnątrz jest mniej istotna, ale nie sądzę, że to tak naprawdę problem dla modelu, jak go określiłem. (Nie to, że mój model jest idealny)
Michael Bishop,
1

Jedno proste podejście byłoby następujące.

W przypadku dwóch pytań preferencyjnych weź absolutną różnicę między odpowiedziami dwóch respondentów, podając dwie zmienne, powiedzmy z1 i z2, zamiast czterech.

W przypadku ważnych pytań mogę utworzyć wynik, który łączy dwie odpowiedzi. Gdyby odpowiedzi brzmiały, powiedzmy, (1,1), dałbym 1, a (1,2) lub (2,1) dostaje 2, a (1,3) lub (3,1) dostaje 3, a (2,3) lub (3,2) dostaje 4, a (3,3) dostaje 5. Nazwijmy to „wynikiem ważności”. Alternatywą byłoby użycie max (odpowiedź), dając 3 kategorie zamiast 5, ale myślę, że wersja 5 kategorii jest lepsza.

Utworzyłbym teraz dziesięć zmiennych, x1 - x10 (dla konkretności), wszystkie z domyślnymi wartościami zero. Dla tych obserwacji z wynikiem ważności dla pierwszego pytania = 1, x1 = z1. Jeśli wynik ważności dla drugiego pytania również = 1, x2 = z2. W przypadku obserwacji z wynikiem ważności dla pierwszego pytania = 2, x3 = z1 i jeśli wynik ważności dla drugiego pytania = 2, x4 = z2 i tak dalej. Dla każdej obserwacji dokładnie jeden z x1, x3, x5, x7, x9! = 0, i podobnie dla x2, x4, x6, x8, x10.

Po wykonaniu tego wszystkiego przeprowadziłbym regresję logistyczną z wynikiem binarnym jako zmienną docelową i x1 - x10 jako regresorami.

Bardziej wyrafinowane wersje tego mogą wygenerować więcej ocen ważności, pozwalając, aby znaczenie respondenta płci męskiej i żeńskiej było traktowane w różny sposób, np. A (1,2)! = A (2,1), gdzie uszeregowaliśmy odpowiedzi według płci.

Jednym z braków tego modelu jest to, że możesz mieć wiele obserwacji tej samej osoby, co oznaczałoby, że „błędy”, luźniej mówiąc, nie są niezależne między obserwacjami. Jednak przy dużej liczbie osób w próbce prawdopodobnie po prostu zignoruję to, dla pierwszego przejścia, lub zbuduję próbkę, w której nie było duplikatów.

Kolejnym brakiem jest to, że prawdopodobne jest, że wraz ze wzrostem znaczenia wzrośnie również wpływ danej różnicy między preferencjami na p (fail), co implikuje związek między współczynnikami (x1, x3, x5, x7, x9), a także między współczynnikami (x2, x4, x6, x8, x10). (Prawdopodobnie nie jest to kompletne uporządkowanie, ponieważ z góry nie jest dla mnie jasne, w jaki sposób wynik ważności (2,2) odnosi się do wyniku ważności (1,3).) Jednak nie narzuciliśmy tego w modelu. Prawdopodobnie z początku to zignoruję i zobaczę, czy zaskoczy mnie wynik.

Zaletą tego podejścia jest to, że nie narzuca założenia o funkcjonalnej formie związku między „ważnością” a różnicą między reakcjami preferencyjnymi. Jest to sprzeczne z poprzednim komentarzem dotyczącym niedoboru, ale myślę, że brak narzucenia funkcjonalnej formy jest prawdopodobnie bardziej korzystny niż związany z tym brak uwzględnienia oczekiwanych zależności między współczynnikami.

łucznik
źródło