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
749 views Asked by WannabeGandalf At
1
There are 1 answers
Related Questions in R
- How to make an R Shiny app with big data?
- How do I keep only specific rows based on whether a column has a specific value?
- Likert scale study - ordinal regression model
- Extract a table/matrix from R into Excel with same colors and stle
- How can I solve non-conformable arguments in R netmeta::discomb (Error in B.matrix %*% C.matrix)?
- Can raw means and estimated marginal means be the same ? And when?
- Understanding accumulate function when .dir is set to "backwards"
- Error in if (nrow(peaks) > 0) { : argument is of length zero Calls: CopywriteR ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous> Execution ha
- How to increase quality of mathjax output?
- Convert the time intervals to equal hours and fill in the value column
- How to run an R function getpoints() from IPDfromKM package in an R shiny app which in R pops up a plot that utilizes clicks to capture coordinates?
- Replace NA in list of dfs in certain columns and under certain conditions
- R and text on Cyrillic
- The ts() function in R is returning the correct start and frequency but not end value which is 1 and not 179
- TROUBLING with the "DROP_NA" Function
Related Questions in STATISTICS
- How to make pandas show large datasets in output?
- How to construct polygons from a 2D data to compute spatial autocorrelation in R
- Is python statsmodel elastic net regression automatically standard deviation deflated?
- How can I emulate Microsoft Excel's Solver functionality (GRG Nonlinear) in python?
- How do I find the probability that one of my probabilities will occur?
- Timeline-ish data to Occurence/Exposure data
- Handling Error Propagation Above Biological Thresholds in R with predictNLS
- Why is there such a difference between chi2 and mcnemar?
- Handling Nested One-Level Random Effects in Linear Mixed Models in R
- Model failed to converge (gamma model, self-paced reading data)
- How to quantify the consistency of a sequence of predictions, incl. prediction confidence, using standard function from sklearn or a similar library
- P-values for each comparison in a Kruskal post hoc test in R?
- R Metaprop P-value overlapping with forest plot axes
- Monte Carlo simulation Lotto Germany
- How does emmeans adjust the p-values when using "Tukey" as adjustment method? (Solved)
Related Questions in STAT
- How to fix 'variable lengths differ' error?
- compute Sobol first order index
- How can I detect an existing directory in ~/ with stat in C?
- WinSCP stat command says FileNotFound, but it exists when I do ls
- Data not replicating using logical replication
- Subset rows within one predictor in GLM without disturb other
- How to fail Ansible playbook if filesize is zero (0)
- Having trouble getting stat_pvalue_manual to facet across my ggplot
- Error in match.arg(opt.crit) : 'arg' must be NULL or a character vector
- How to implement after_stat(ymax) with count expression in r?
- Overlay bar chart in Age standardised mortality rate graph in ggplot in r
- I want to create a separate bar chart but only one bar appears and it looks like they add together, dodge doesn't work
- Unable to get stat of existing directory in Ansible due to variable formatting issue
- Spatial Survival areal data
- object not found in mediation model
Related Questions in FDR
- How to add adjusted pvalue to the corrplot matrix?
- Using a temporal inner variable in dplyr outside of the group
- FDR of neuroimaging data with Statsmodels: many of the corrected p-values have the same value
- How to find value that corresponds to FDR=0.05 given distribution A and a null distribution?
- FDR4.2.7 could not connect license server
- FDR correction - extracting p-values from lmer() and creating vectors for use in p.adjust in R
- Adjust significance levels for multiple testing in correlation plots
- Apply FDR correction on a large number of outcome variables
- How to declare a data-contructor with same name but different type in CSPm(Communication Sequential Process)
- Welch t-test, adjust p-value on permutation based FDR in R
- Combining R and python through rpy2: How to read in a python list to R
- How to calculate and add an FDR column to file in python
- How Does R Calculate the False Discovery Rate
- R 'fdrtool' package: how to use t statistic
- How to avoid deadlock in processes executing in parallel through addition of another process in CSP
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?
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)
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