Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

running within-subject model #68

Open
sleepmam opened this issue Sep 25, 2020 · 0 comments
Open

running within-subject model #68

sleepmam opened this issue Sep 25, 2020 · 0 comments

Comments

@sleepmam
Copy link

Following this link(http://ski.clps.brown.edu/hddm_docs/tutorial_python.html#within-subject-effects), I’m trying to run within-subject analysis, and I have a few questions regarding model specification. Here is a list of three variables that I’m interested in.
Session - 2 levels of “behav”, “fmri”
Condition - 2 levels of “Black”, “Like”
Diff (difficulty) - 2 levels of “1”, “0”

My primary goal is to compare subject performance between “fmri” and “behav” sessions. For example, for those in easy & Black condition (diff =0, condition = Black), do those in (session = behav) differ from those in (session = fmri)?

Using pseudo-code, I need an intercept of
Black_easy_behav -> black[black] : easy[easy] : behav[behav]
And second term of
Black_easy_fmri -> black[black] : easy[easy] : behav[fmri] waiting to be compared.

Using this input, I type -
m_within = hddm.HDDMRegressor(data, "a ~ C(session, Treatment('fmri')):C(condition, Treatment('Black')):C(diff, Treatment(0))")
I get this -
[‘a_Intercept’, ..., “a_C(session, Treatment(‘fmri’))[T.behav]:C(condition, Treatment(‘Black’))[T.Like]:C(diff, Treatment(0))[T.1]”]
While I have the intercept term, the second term is not what I wanted. I was looking for something like this ->
“a_C(session, Treatment(‘fmri’))[T.behav]:C(condition, Treatment(‘Black’))[T.Black]:C(diff, Treatment(0))[T.0]”]

In summary, my questions are

  1. How do I get the specified results that I need? I’m a bit confused by how the co-variates are added. I can output the right combination (222, all8) by having
    > m_within = hddm.HDDMRegressor(data, "a ~ 0 + C(session, Treatment('fmri')):C(condition, Treatment('Black')):C(diff, Treatment(0))")
    Then I have this error. Also not sure how to solve.
    > AssertionError: Step-out procedure failed
  2. What would the intercept be if there are more than 1 term? In the tutorial, there intercept is only 1 variable. However, if mine has more variables for intercept, what does it become? Case 1: a ~ A:B, in this case I assume intercept is A:B. Case2: a ~ A:B + B:C, would intercept be A:B, or the combination of (A:B + B:C)
  3. What's the difference between C(diff, Treatment(1))[T.0] vs. C(diff, Treatment(0))[0]?
  4. Why sometimes there is [T.0], sometimes its just [0]? I’ve already made them “factors” rather than “integer/numbers” via R. Upon comparing my results and those from the Demo, I see a divergence from very early on here -

Where the Demo has
> from patsy import dmatrix dmatrix("C(stim, Treatment('WL'))", data.head(10)) and outputs all levels
> DesignMatrix with shape (10, 3) Intercept C(stim, Treatment('WL'))[T.LL] C(stim, Treatment('WL'))[T.WW]
My line of ...
> from patsy import dmatrix("C(condition, Treatment('Black'))", data.head(10)) only generates the following with out the other conditions. I hope to see something like "C(condition, Treatment('Black'))[T.Like]"
> DesignMatrix with shape (10, 1) Intercept Whats more, if I type
> dmatrix("C(condition, Treatment('Like'))", data.head(10)) I got result of this. and I wasn't sure what caused the level issue.
`> PatsyError: specified level 'Like' not found

Thank you so much in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant