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.
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))
Was Sie suchen, heißt hierarchisches, mehrstufiges oder zufälliges Effektmodell. In Ihrem speziellen Fall ist die Lösung eine hierarchische logistische Regression.
Annehmen ist die Antwort des Subjekts vor Gericht und ist die abhängige Variable dann ein einfaches hierarchisches Modell, das Ihr Problem löst:
wo ist der Bevölkerungswert der Steigung und ist die Schätzung auf Subjektebene. Grob, ist ein gewichteter Durchschnitt aller wo das Gewicht von jedem ist umgekehrt proportional zur Varianz der Schätzung von . 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 . Die entsprechende Schätzung von sollte ein breites Intervall anzeigen, sodass Sie darauf nicht schließen können oder oder (wie du vorgeschlagen hast).
Wie wird ein hierarchisches Modell mit solchen Unsicherheiten umgehen? ? Diese wird wenig zur Schätzung beitragen . Stattdessen 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.
H.Muster
luster
H.Muster
luster
H.Muster
luster
H.Muster
luster
Ofri Raviv
Jens Kouros
Fizz