2015-06-02 91 views
0

要點:適應性隨機算法

我正在尋找一個隨機算法,可以爲每個主題,看看所有以前的測量,確定一個主題將落入高端或低端,然後確保這些組中大約一半的人被分配到實驗條件。

詳情:

我建立一個具有兩個獨立的變量研究中的應用。一個是我可以分配的實驗操作。我們將這些稱爲X(實驗)和C(控制)。另一種是具有兩種分類類型的個人特徵,通過量表衡量。我們將稱這些P1(類型1)和P2(類型2)。

所以它本質上是一個2x2,我有4個條件(P1X,P1C,P2X,P2C)。我正在招募大約120個科目,所以理想情況下我會在每種情況下分配30個科目。

我有三個問題。

1)基於文獻,我期待在我的樣本中P1和P2特徵之間的自然50/50分裂。但是,我不能確定,因爲我的人口不是我認爲總體人口是分拆估算的來源。 2)X或C操作的簡單隨機化將不一定保證平均分配。這就加重了第一個問題,就像我看到的那樣P1 40%和P2 60%分開,50%(X或C)48人離開我,24人。當然,情況可能會更糟。如果實驗操作的隨機分配對於這個較小的子樣品結束小於50%,則再次可能更糟。恐懼是我可能會留下太小的樣本來運行我的分析。

3)另一個複雜情況是,P1和P2的類別有時不那麼確定和更相對。通常我們只是通過中位數分割P1和P2。它是根據多個比例測量的總值確定的(總範圍0-20)。但是,在我的樣本中,我們可能會看到一些偏向一端的偏見。在這種情況下,我可能需要做一個相對比較。在這種情況下,我不知道中位數的分佈位置在哪裏,以分割我的樣本。但無論中位數是多少,我都會這樣說:「這些人比P1更多P1」,反之亦然。但我不知道我的樣本的平均值或標準差是多少。

我可以在我的實驗做:前

什麼我能做的就是衡量人的P1/P2型分配到任何一個X或C.我不能預先測試任務之前,每個人都所以我只能一次知道更大的圖片1個主題,直到它以足夠的樣本穩定下來。

問:

因此,在短期的問題是,有沒有能適應這些未知數,因爲我知道更多從一個試驗到下一個隨機算法?

基本上我想測量對象的P1/P2的措施,這對整個樣本比較到這一點,並找出他們是否會或多或少可能是在上半朝P2或下半朝着P1。然後,我知道了這一點後,我想以一種確保比簡單隨機更好的方式將它們分配給X或C,以便在每種情況下獲得相同數量的參與者。

我不知道這是否是要問,也許堆疊交叉驗證正確的地方?無論如何,如果您有任何建議,請提前致謝。

額外注:

該應用程序是在Javascript完全編程。

+0

的Math.random()是比較公正的。您可以基於之前的結果對其進行偏倚以增加隨機方面相對於此偏倚的機會。看看這可能是有幫助的:http://stackoverflow.com/a/29325222/1693593 – K3N

+0

我會嘗試和統計人員交談,並且我還會預先用隨機數字中的所有數據進行試點測試,並測試通過分析它,就像你真實的數據一樣。你想要避免的恐怖故事是當你描述你對統計學家所做的一切,並給他們來之不易的數據時,他們說他們不能提供確鑿的分析,因爲你沒有收集他們需要的數據,或者你受試者分配給對照或實驗條件引入了他們無法去除的偏差。 – mcdowella

回答

1

一招,你需要一個優先級隊列。 Google爲我提供了https://github.com/adamhooper/js-priority-queue。其實你需要兩個。一個給你最小的P2,另一個給你最大的P1。

做完這些後,你需要保持4個計數器爲您的4組。

第一人隨機分配至對照組或實驗。第二個分配給另一個,然後將這兩個分配給P1和P2。然後,您將計數器初始化爲1和0。

隨着你遇到的每個人以後,你在他們中的P2 P1比較最大,最小,並決定去哪個組,以及是否需要移動羣體之間的人。如果您需要移動某人,請這樣做並更新計數器。然後將它們分配給治療或控制,基於這些治療或控制在他們所處的Pi中較不常見,斷開其他Pi中不常見的關係,隨機打破任何進一步關係。

這不能保證均勻分割,但它確實做出了一個很好的努力來生成一個分割。

+0

對不起。我花了一段時間才真正意識到這是回答。最後,我最終做了一個定期的隨機任務,希望不要看到彼此太陌生的團體。它解決了,但這是你的支票。下次我會記住這個答案。 :-) 謝謝。 – jmk2142