Anpassung einer psychometrischen Funktion, wenn Daten sich nicht für eine sigmoidale Anpassung eignen

Ich passe eine psychometrische Funktion an eine Reihe von Daten an. Die Mehrheit dieser Daten eignet sich für eine sigmoidale Anpassung (dh die Teilnehmer können die Aufgabe erledigen), aber einige Personen sind absolut nicht in der Lage, die Aufgabe zu erledigen. Ich plane, die Steigungen zu vergleichen, die ich unter verschiedenen Bedingungen erhalten habe, aber ich bin mit den Daten, die die Aufgabe nicht erfüllen können, an eine Wand gestoßen.

Geben Sie hier die Bildbeschreibung ein

Wenn man eine Funktion an diese Daten anpasst, sollte die Steigung fast flach sein, richtig? Die Daten sind jedoch sehr verrauscht und es kommt zu einer seltsamen Anpassung - am Ende bekomme ich fälschlicherweise hohe Steigungen. Ich verwende Pypsignifit, die Parameter, die ich verwende, sind unten zu sehen. Irgendeine Idee, wie man das verhindern kann?

num_of_block  = 7
num_of_trials = 20

stimulus_intensities=[3, 7, 13, 20, 27, 32, 39] # stimulus levels
percent_correct=[.38, .75, .6, .43, .7, .65, .43]     # percent correct sessions 1-3
num_observations     = [num_of_trials] * num_of_block      # observations per block
data= np.c_[stimulus_intensities, percent_correct, num_observations]
nafc = 1
constraints = ('unconstrained', 'unconstrained', 'unconstrained', 'Beta(2,20)' )
boot = psi.BootstrapInference ( data, core='ab', sigmoid='gauss', priors=constraints, nafc=nafc )
boot.sample(2000)
print 'pse', boot.getThres(0.5)
print 'slope', boot.getSlope()
print 'jnd', (boot.getThres(0.75)-boot.getThres(0.25))
Die Daten sehen wirklich so aus, als hätte der Teilnehmer auf Zufallsebene gespielt. Eigentlich würde ich gar nicht erst versuchen, sie anzupassen, weil die Passformen nicht besser werden können als bei deinem Beispiel.
Genau das ist passiert. Es mag kontraintuitiv sein, zu versuchen, die Daten anzupassen, aber ich möchte wirklich in der Lage sein, die Steigung dieser Teilnehmer mit denen zu vergleichen, die besser abgeschnitten haben, indem ich so etwas wie einen t-Test verwende. Daher die "Notwendigkeit" , zu passen.
Dann würde ich verschiedene psychometrische Funktionen (z. B. Logistik, Weibull) ausprobieren, bis ich eine finde, die als gerade Linie mit einer Steigung von fast null an die Daten angepasst ist.
Macht Sinn, aber das Hauptproblem, das ich habe, ist, dass ich willkürlich wählen müsste, wann ich diese alternative Passform verwenden möchte. Derselbe Teilnehmer schien unter einer anderen Bedingung zufällig zu funktionieren, aber die kumulative Gauß-Verteilung passte gut und zeigte eine nicht sofort sichtbare Steigung.
Ich würde nicht vorschlagen, unterschiedliche Funktionen für einzelne Anpassungen zu verwenden, sondern eine Funktion für alle zu verwenden, dh die Funktion zu wählen, die die besten Gesamtlösungen liefert. In Bezug auf die schlechten Fälle: Haben Sie versucht, die Schätzroutine mit Startwerten näher an 0,5 für die Rate und die Verfallsrate zu starten?
Beim Nachdenken war das offensichtlich. Verzeihung! Das Seeding mit Werten nahe 0,5 hilft nicht, noch funktioniert das Ändern - die obskure Steigung vom ersten Datenpunkt ist immer noch da. Idealerweise würde ich diese Daten einfach nicht in meinen Analysen verwenden, aber da der ganze Sinn dieses Unterfangens darin besteht, diejenigen, die "gut" sind, als Aufgabe mit denen zu vergleichen, die es nicht sind ...
Eine andere Idee: Versuchen Sie, die Fehlerrate und die Raterate auf Werte zwischen 0,3 und 0,8 zu beschränken (dh die minimale und maximale prozentuale richtige Rate in dem Datensatz, auf dem Ihr Bild basiert).
Ist dies eine Ja/Nein-Aufgabe oder ein 2AFC-Design?
Was genau zeigt die Handlung? Handelt es sich um Daten eines einzelnen Teilnehmers oder um Daten für ein Item? Da es keine Beschriftungen für die Achsen gibt, was ist auf der x- und y-Achse aufgetragen? Es sieht so aus, als könnte die y-Achse die Wahrscheinlichkeit dafür sein, die richtige Antwort zu erhalten, da sie von 0 bis 1 geht. Ist das richtig?
Ich bin gespannt, ob du das Problem inzwischen gelöst hast und wie du es letztendlich angegangen bist.

Antworten (2)

Was Sie suchen, heißt hierarchisches, mehrstufiges oder zufälliges Effektmodell. In Ihrem speziellen Fall ist die Lösung eine hierarchische logistische Regression.

Annehmen j s t { 0 , 1 } ist die Antwort des Subjekts s vor Gericht t und x ist die abhängige Variable dann ein einfaches hierarchisches Modell, das Ihr Problem löst:

j s t B e r n Ö u l l ich ( l Ö g ich t ( a s + β s x ) )

β s N ( μ , σ )

wo μ ist der Bevölkerungswert der Steigung und β s ist die Schätzung auf Subjektebene. Grob, μ ist ein gewichteter Durchschnitt aller β s wo das Gewicht von jedem β s ist umgekehrt proportional zur Varianz der Schätzung von β s . Weitere Einzelheiten zur hierarchischen logistischen Regression und zu Erweiterungen des einfachen Modells, die ich oben vorgeschlagen habe, finden Sie in Kapitel 14 in Gelman & Hill (2006).

Wenn man eine Funktion an diese Daten anpasst, sollte die Steigung fast flach sein, richtig?

Nein. Die Neigung sollte unsicher sein . Flachhang sieht zB anders aus ( 10 , 0,61 ) , ( 20 , 0,59 ) , ( 30 , 0,6 ) , ( 40 , 0,58 ) , ( 50 , 0,6 ) . Die entsprechende Schätzung von β sollte ein breites Intervall anzeigen, sodass Sie darauf nicht schließen können β > 0 oder β < 0 oder β = 0 (wie du vorgeschlagen hast).

Wie wird ein hierarchisches Modell mit solchen Unsicherheiten umgehen? β s ? Diese β s wird wenig zur Schätzung beitragen μ . Stattdessen β s für dieses spezielle Thema wird hingezogen werden μ . Das hierarchische Modell sagt Ihnen effektiv, dass es, wenn Ihre Daten nicht schlüssig sind, einfach davon ausgeht, dass das Subjekt ein typisches Mitglied der Bevölkerung ist (d.h. wenn μ zuverlässig geschätzt wurden) und verwerfen Sie die fehlerhaften Daten.

Literatur: Gelman, A. & Hill, J. (2006). Datenanalyse mit Regression und mehrstufigen/hierarchischen Modellen . Cambridge University Press.

Der Kern der Sache ist die Tatsache, dass 60 % „Ja“-Antworten unabhängig vom Stimulusniveau (dh den problematischen Daten) sowohl von einem extrem sensiblen Thema (dh einem steilen Anstieg) mit einer mäßigen Verzerrung als auch einem hohen Fehler stammen können Rate und ein extrem unempfindliches Thema (dh flache Neigung) mit einer mäßigen Neigung und einer niedrigen Stornorate. Für Ihre Daten ist die Anpassung der steilen Steigung/hohen Stornorate etwas besser als die flache Steigung/niedrige Stornorate, wenn Ihr Prior auf der Stornorate auf einer Beta-Verteilung basiert. Ich vermute, wenn Sie einen einheitlichen Prior für die Ablaufrate und möglicherweise für die Schätzrate verwenden, führt dies dazu, dass die Anpassung an die flache Steigung besser ist. Ich würde so etwas wie "Uniform(0,0.1)" versuchen.