Anpassen des p-Wertes für die adaptive sequentielle Analyse (für den Chi-Quadrat-Test)?

12

Ich möchte wissen, welche statistische Literatur für das folgende Problem relevant ist, und vielleicht sogar eine Idee, wie man es löst.

Stellen Sie sich folgendes Problem vor:

Wir haben 4 mögliche Behandlungen für einige Krankheiten. Um herauszufinden, welche Behandlung besser ist, führen wir eine spezielle Studie durch. In der Studie haben wir zunächst keine Probanden, dann werden nacheinander mehrere Probanden in die Studie aufgenommen. Jeder Patient wird zufällig einer der 4 möglichen Behandlungen zugeordnet. Das Endergebnis einer Behandlung ist entweder "gesund" oder "immer noch krank", und lassen Sie uns sagen, wir können dieses Ergebnis sofort erkennen. Dies bedeutet, dass wir zu jedem Zeitpunkt eine Tabelle mit zwei mal vier Kontingenten erstellen können, aus der hervorgeht, wie viele unserer Probanden in welche Behandlung / welches Endergebnis fielen.

Zu jedem Zeitpunkt können wir die Kontingenztabelle überprüfen (z. B. mit einem Chi-Quadrat-Test), um festzustellen, ob zwischen den 4 möglichen Behandlungen eine statistisch unterschiedliche Behandlung besteht. Wenn einer von ihnen besser ist als alle anderen - wir beenden den Prozess und wählen ihn als "Gewinner". Wenn sich herausstellt, dass eine Studie schlimmer ist als alle anderen drei, werden wir ihn aus der Studie ausschließen und künftigen Patienten davon absehen.

Das Problem hierbei ist jedoch, wie ich den p-Wert anpasse, damit der Test zu einem bestimmten Zeitpunkt durchgeführt werden kann, dass eine Korrelation zwischen den Tests besteht und dass die adaptive Natur des Prozesses den Prozess beeinflusst (z Beispiel, wenn eine Behandlung als "schlecht" eingestuft wird)?

Tal Galili
quelle
2
Wald entwickelte einen Test für das sequentielle Wahrscheinlichkeitsverhältnis (SPRT), um eine Stoppregel zu erstellen, die die Anzahl der Probanden angibt, für die Sie Beweise gegen die Null benötigen. Siehe meine Erklärung hier: stats.stackexchange.com/a/16120/401 Dies testet jedoch nur eine einzige Hypothese. Wenn Sie jedoch einen Chi-Quadrat-Test vorschlagen, ist dies nur eine einzige Hypothese (alle Behandlungen sind gleich wirksam). Es scheint, dass Sie den "primären" p-Wert in meinem Beitrag für mehrere Tests anpassen und mehrere Tests durchführen können. Ich müsste mehr darüber nachdenken, wie die Änderung der Behandlungsreihe berücksichtigt werden kann.
Charlie
1
Ich möchte nur zu beachten , dass es eine Variation „Gruppen Sequential Analysis“ Umgang mit mehr als einer Parameters.Verfahren Buch namens Klinischer Statistik: Einführung in Clinical Trials, Überlebensanalyse und Longitudinal Datenanalyse helfen könnten nach verschiedenen Quellen, aber ich habe nie lese es persönlich.
Steffen
1
Ich kann nicht betonen, wie interessant diese Frage ist. Die Lösung wird auch viele Fragen zu Ab-Tests beantworten (gleiche Aufgabe, aber die Fehlerkosten sind lächerlich niedriger)
steffen
1
Das Buch Group Sequential Methods with Applications to Clinical Trials von Jennison und Turnbull behandelt viele solcher sequentiellen Studiendesigns. Ich erinnere mich nicht, ob das Vier-Behandlungs-Design behandelt wird (aber ich denke, dies ist nur ein logistisches Regressionsmodell mit drei Dummy-Variablen), aber es ist ein schönes Buch und sehr lesenswert, wenn Sie an Problemen wie diesen interessiert sind . (Und @steffen, der A / B-Test (dh einfaches Binomialproblem) wird in dem Buch behandelt.)
Karl Ove Hufthammer

Antworten:

2

Dieser Bereich der sequentiellen klinischen Studien wurde in der Literatur eingehend untersucht. Einige der bemerkenswerten Forscher sind unter anderem Scott Emerson, Tom Flemming, David DeMets, Stephen Senn und Stuart Pocock.

Es ist möglich, eine "Alpha-Ausgaben-Regel" anzugeben. Der Begriff hat seinen Ursprung in der Natur von häufig durchgeführten (nichtfischerischen) Tests, bei denen jede Aktion, die das Risiko eines falsch-positiven Befundes erhöht, notwendigerweise die Kraft verringern sollte, um den Test auf der richtigen Größe zu halten. Die Mehrzahl dieser Tests erfordert jedoch, dass "Stoppregeln" auf der Grundlage der Informationsgrenzen der Studie festgelegt werden. (Zur Erinnerung: Mehr Informationen bedeuten mehr Macht, wenn die Null falsch ist.)

p Werten zusammenzufassen.

Sehen

[1] www.rctdesign.org/

AdamO
quelle
+1. Ich habe eine andere Antwort gepostet, in der ich mithilfe einer Simulation die Fehlerrate Typ II des vorgeschlagenen Verfahrens berechnet habe. Dies ermöglicht die Auswahl eines nominalen Alphas, so dass der Test die richtige Größe hat. Ich frage mich, was du darüber denkst.
Amöbe sagt Reinstate Monica
1

Das klingt so, als wäre eine Simulation in Ordnung.

N=100044×2pα2×2αNN ).

α=0.050.28 Typ-II-Fehlerrate.

α

αerror rate0.050.280.010.060.0010.008
0.05α0.008

Mein schneller und schmutziger Code in Matlab ist unten. Bitte beachten Sie, dass dieser Code hirntot und überhaupt nicht optimiert ist. alles läuft in schleifen und schrecklich langsam. Dies kann wahrscheinlich sehr beschleunigt werden.

function seqAnalysis()
    alphas = [0.001 0.01 0.05];
    for a = 1:length(alphas)
        falsePositives(a) = trials_run(1000, 1000, alphas(a));
    end
    display(num2str([alphas; falsePositives]))
end

function outcome = trials_run(Nrep, N, alpha)
    outcomes = zeros(1,Nrep);
    for rep = 1:Nrep
        if mod(rep,10) == 0
            fprintf('.')            
        end
        outcomes(rep) = trial(N, alpha);
    end
    fprintf('\n')
    outcome = sum(outcomes);
end


function result = trial(N, alpha)
    outcomes = zeros(2,4);

    result = 0;
    winner = [];

    %// adding subjects one by one
    for subject = 1:N
        group = randi(size(outcomes,2));
        outcome = randi(2);    
        outcomes(outcome, group) = outcomes(outcome, group) + 1;

        %// if groups are significantly different
        if chisqtest(outcomes) < alpha
            %// compare each treatment against the rest
            for group = 1:size(outcomes,2)
                contrast = [outcomes(:, group) ...
                            sum(outcomes(:, setdiff(1:size(outcomes,2), group)),2)];
                %// if significantly different
                if chisqtest(contrast) < alpha
                    %// check if better or worse
                    if contrast(1,1)/contrast(2,1) < contrast(1,2)/contrast(2,2)
                        %// kick out this group
                        outcomes = outcomes(:, setdiff(1:size(outcomes,2), group));
                    else
                        %// winner!
                        winner = group;
                    end
                    break
                end
            end
        end

        if ~isempty(winner)
            result = 1;    
            break
        end
    end
end

function p = chisqtest(x)
    e = sum(x,2)*sum(x)/sum(x(:));
    X2 = (x-e).^2./e;
    X2 = sum(X2(:));
    df = prod(size(x)-[1 1]);
    p = 1-chi2cdf(X2,df);
end
Amöbe sagt Reinstate Monica
quelle