Yarkoni, T., & Westfall, J. (2016). Choosing prediction over explanation in psychology: Lessons from machine learning. Perspectives on Psychological Science
心理学は、歴史的に行動の原因となるメカニズムの説明に徹頭徹尾関心を持ってきた。無作為課され、非常に統制化された実験は心理学研究の黄金基準として大切にされ、種々の行動の種々の媒介・調整変数の終わりなき検討がなされている。我々は、心理学のほとんどは行動の原因を説明することに焦点を当てる複雑な心理学的メカニズムの理論を提供する研究プログラムが多くを占めているが、著しい正確性を持って将来の行動を予測することがほとんどできない。我々は、機械学習の領域から心理学をより予測科学に為らしめる原理と技術を提案する。主要な心理学の予測的研究課題に焦点を当てたいくつかの基盤となる概念と機械学習のツール、例をレビューする。説明よりも予測により焦点を当てることで行動をより理解することが究極的には可能であると提案する。
心理学に対するここ数年のモヤモヤが割と解消した感じ。というか、自分の志向性的が説明より、予測あるいは操作にあるということが明確になった。
2017年6月30日金曜日
2017年3月24日金曜日
DCMを用いた感情ラベリングの理解の進展
(2013). Advancing understanding of affect labeling with dynamic causal modeling. NeuroImage, 82, 481-488.
偶発的な感情制御のフォームのメカニズム的理解は感情科学における基礎的応用的研究への示唆を与える。本研究では、fMRIのDCMを表情ラベリングパラダイムに用いて前頭前野から皮質下への影響を検討した。感情ラベリングにはvlPFC、amygdala、ブローカ領域を含む4つの領域を用いた。64個のモデルを45人の健常者を対象に検討した。32個のベイズモデルでは強固な内在的なネットワークの結合性がしめされた。ラベリングの調整効果は、ブローカ領域からamygdalaまたはそれよりも強いvlPFCからamygdalaへの抑制効果を示すベイズモデル平均において強固に観察された。これらの結果は、これまでに相関関係で示されていた皮質ー皮質下領域の負のカップリングを頑健かつ拡張する知見である。
感情ラベリングのメカニズムを考えるうえで非常に重要な知見。実際に自分でもやるべきだと思っているが、なかなか進まないのが残念。
2017年3月23日木曜日
知覚された道徳への脅威が引き出す汚染関連強迫行為の傾向
Threats to moral self-perceptions trigger obsessive compulsive contamination-related behavioral tendencies
Doron, G., Sar-El, D., & Mikulincer, M. (2012). Journal of behavior therapy and experimental psychiatry, 43(3), 884-890.
汚染恐怖に関連した強迫は日常生活を著しく害する。本研究では知覚された道徳に対する脅威が、汚染関連強迫行為の傾向を生起させるかを検討した。
3つの実験により、道徳関連プライミングが汚染関連行動に及ぼす影響を検討した。
自己の道徳における不適格は、強迫行為の傾向上昇を導いた。この影響は、自己に関連したネガティブな情報に限定された。この知見は、事前の自尊心やストレス、不安、抑うつおよび気分の変動性とは関連しなかった。
本研究は非臨床サンプルに対して行われた点で限界がある。
道徳的な過敏性は、汚染と関連した恐れと因果関係があるだろう。この過敏性に対する治療は、強迫性障害の治療にも有用かもしれない。
この論文の研究者は数年前から愛着との関連も検討しながら、このテーマで研究をしている。実験手続きでは、被験者自身の道徳的態度が一般母集団と比較して低い(カバーストーリーだが)ことを正規分布でプライミングしている。
非常に興味深いが、いかにも実験社会心理学的研究でもある。
2017年2月15日水曜日
xbox360のコントローラーをPsychopy Builderで使用する
xbox360のコントローラーをPsychopy Builderで使用するには、ネットで調べてCode componentの埋め込みで十分動作することを覚えた。
正規品のコントローラーのみ動作したが、サードパーティ製のものはきちんと動作しなかった。無駄金を使ってしまった。
Codeコンポーネントに以下の記述をRoutineにいれることで左右のトリガーの動作確認したので、備忘録。
2017/2/24修正。
#Begin Experiment
try:
from psychopy import visual, core
from psychopy.iohub import launchHubServer, EventConstants
from psychopy.data import getDateStr
kwargs={'psychopy_monitor_name':'default','xinput.Gamepad':{}}
io=launchHubServer(**kwargs)
gamepad=io.devices.gamepad
except Exception, e:
import sys
print "!! Error starting ioHub: ",e," Exiting..."
sys.exit(1)
#Begin Routine
response_event=None
LT=0
RT=0
trial_start=0
io.clearEvents()
#Every Frame
if frameN == 0:
io.clearEvents('all')
trial_start=core.getTime()
else :
gp_triggers = gamepad.getTriggers()
# psychopy time that the trigger values were actually read (in sec.msec)
trig_time = gp_triggers['time']
# values will be between 0.0 and 1.0. 0.0 = Not pressed at all; 1.0 = fully pressed.
left_val, right_val = gp_triggers['left_trigger'], gp_triggers['right_trigger']
if left_val > 0.5 and right_val > 0.5:
# set some response vars like you were
response = gp_triggers
continueRoutine = False
break
#End Routine
trials.addData("trial_start_time", trial_start)
trials.addData("LT", left_val)
trials.addData("RT", right_val)
trials.addData("react", trig_time)
ReactionTime=(trig_time) - (trial_start)
trials.addData("ReactionTime", ReactionTime)
#End Experiment
io.quit()
正規品のコントローラーのみ動作したが、サードパーティ製のものはきちんと動作しなかった。無駄金を使ってしまった。
Codeコンポーネントに以下の記述をRoutineにいれることで左右のトリガーの動作確認したので、備忘録。
2017/2/24修正。
#Begin Experiment
try:
from psychopy import visual, core
from psychopy.iohub import launchHubServer, EventConstants
from psychopy.data import getDateStr
kwargs={'psychopy_monitor_name':'default','xinput.Gamepad':{}}
io=launchHubServer(**kwargs)
gamepad=io.devices.gamepad
except Exception, e:
import sys
print "!! Error starting ioHub: ",e," Exiting..."
sys.exit(1)
#Begin Routine
LT=0
RT=0
trial_start=0
io.clearEvents()
#Every Frame
if frameN == 0:
io.clearEvents('all')
trial_start=core.getTime()
else :
gp_triggers = gamepad.getTriggers()
# psychopy time that the trigger values were actually read (in sec.msec)
trig_time = gp_triggers['time']
# values will be between 0.0 and 1.0. 0.0 = Not pressed at all; 1.0 = fully pressed.
left_val, right_val = gp_triggers['left_trigger'], gp_triggers['right_trigger']
if left_val > 0.5:
LT=1
continueRoutine = False
elif right_val > 0.5:
RT=1
continueRoutine = False
LT=1
continueRoutine = False
elif right_val > 0.5:
RT=1
continueRoutine = False
#End Routine
trials.addData("trial_start_time", trial_start)
trials.addData("LT", left_val)
trials.addData("RT", right_val)
trials.addData("react", trig_time)
ReactionTime=(trig_time) - (trial_start)
trials.addData("ReactionTime", ReactionTime)
#End Experiment
io.quit()
登録:
投稿 (Atom)