I'm using R (not the 4 version yet ahah) I was advised to use FDR correction on my linear models. I have >200 participants, 140 continuous outcome variables, and each outcome variable is tested on the same 4 predictors. So all the models are: Y ~ x1 + x2 + x3 + x4, for all the 140 variables, where x1 is the predictor I'm interested in and the others (x2,x3,x4) I'm just using to control for their effects over the Y. How do I apply the FDR? For what do I have to correct? Do I have to correct for all the 140 outcome variables? Do I have to only correct for the 4 predictors? If you could explain the process and how to decide for what to correct in fdr it would be really good as I am struggling in understanding it. Thank you very much for the help, Best
Apply FDR correction on a large number of outcome variables
748 Views Asked by WannabeGandalf At
1
There are 1 best solutions below
Related Questions in R
- in R, recovering strings that have been converted to factors with factor()
- How to reinstall pandoc after removing .cabal?
- How do I code a Mixed effects model for abalone growth in Aquaculture nutrition with nested individuals
- How to save t.test result in R to a txt file?
- how to call function from library in formula with R type provider
- geom_bar define border color with different fill colors
- Different outcome using model.matrix for a function in R
- Creating a combination data.table in R
- Force specific interactions in Package 'earth' in R
- Output from recursive function R
- Extract series of observations from dataframe for complete sets of data
- Retrieve path of supplementary data file of developed package
- r package development - own function not visible for opencpu
- Label a dataset according to bins of a histogram
- multiply each columns of a matrix by a vector
Related Questions in STATISTICS
- How do I code a Mixed effects model for abalone growth in Aquaculture nutrition with nested individuals
- Normally Distributed Z score
- R sensitivity package (fast99)
- How to write conditional probability in Python?
- Skewness in SPSS - SPSS answers differently in multiple PC
- Memory-efficient Benjamini-Hochberg FDR correction using numpy/h5py
- Google Analytics Cohort data doesn't make sense
- Detect patterns in data set
- Elasticsearch date histogram aggregation includes more than one bucket per month
- Calculate variance in bash
- How to compute relative difference in a circular domain (weekday) in R
- Draw geom_smooth only for fits that are significant
- How to apply Chisq.test on levels of different categorical variables?
- awk - count number of occurences for a field in a line containing another specific field
- Can't use scipy stats function on nested list
Related Questions in STAT
- How to get results each sec from "perf stat -d sleep 1000"
- as.numeric is not working
- C trouble with stat
- How to use stat utility instead of subpathsOfDirectoryAtPath to calculate directory size
- How to visulaize linear model prediction in ggplot along with confidence interval?
- ansible stat check last modified time
- C - stat struct not working properly
- golang os *File.Readdir using lstat on all files. Can it be optimised?
- How to calculate the average progressively without know the total items?
- Counting hard links to a file in Go
- Why stat and fstat return the st_size == 0?
- Dealing with infinite values in the same way as dealing with NA values for R programming
- In Python's stat module, when I print stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO, why do I get 511 instead of 777?
- Get file attributes (hidden, readonly, system, archive) in Python
- Golang exec: stat: no such file or directory after file has been moved there
Related Questions in FDR
- FDR of neuroimaging data with Statsmodels: many of the corrected p-values have the same value
- How to calculate and add an FDR column to file in python
- How to declare a data-contructor with same name but different type in CSPm(Communication Sequential Process)
- Combining R and python through rpy2: How to read in a python list to R
- R 'fdrtool' package: how to use t statistic
- Adjust significance levels for multiple testing in correlation plots
- Apply FDR correction on a large number of outcome variables
- How to find value that corresponds to FDR=0.05 given distribution A and a null distribution?
- FDR of comparing two vectors
- Using a temporal inner variable in dplyr outside of the group
- How to add adjusted pvalue to the corrplot matrix?
- How Does R Calculate the False Discovery Rate
- FDR correction - extracting p-values from lmer() and creating vectors for use in p.adjust in R
- How to avoid deadlock in processes executing in parallel through addition of another process in CSP
- Welch t-test, adjust p-value on permutation based FDR in R
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
So you need to control for 140 test between predictor and outcomes, and you do the FDR for each predictor. We can try an example where x1 has an effect on response y 1 to 30, and no effect on the others, whereas x2,x3,x4 doesn't, first the data:
Good to use
broomto tidy it up, we can fit a multi-response linear model, but each Y is regressed separately, the output is like:Now we clean up some of the terms, group by response and we can apply FDR using p.adjust, "BH" stands for Benjamini-Hochberg:
So before we look at the FDR results, we can think about multiple testing like this. If a predictor doesn't have an effect on any of the responses, and you do 140 test, you expect around 0.05*140 = 7 of the test to give you a p-value of 0.05. We can check for each predictor, how many of them have p < 0.05:
How will the p-value distribution look like? So you can see x1 bucks the trend in the above, and we can visualize this by plotting the pvalue distribution:
For x2,x3 and x4, we simulated them under the null, no effect on any responses and you can see the p-value follows a even distribution.
If we simply use a cutoff of 0.05, we will get all 7 false positives in the other predictors x1-x4, while some of them in x1 will be correct. FDR basically corrects for this expected distribution of p-values and we can check how many of them are significant at 5% FDR:
So we don't get any more hits with x2,x3,x4 which has no effect, while x1, which we simulated under 30 true effects gives 31 hits. You can also check out this video that explains in greater detail how this above works