【问题标题】:Fitting a regression model row-wise逐行拟合回归模型
【发布时间】:2021-12-08 02:27:59
【问题描述】:

我有这样的信息组成的数据

dput(a)
structure(list(ENSEMBL = structure(c(1L, 2L, 3L, 3L, 3L, 4L), .Label = c("ENSG00000005187", 
"ENSG00000006740", "ENSG00000008277", "ENSG00000013810"), class = "factor"), 
    log2FoldChange_Expression = c(-2.2756549273843, -1.76655532051033, 
    -1.58489726654531, -1.58489726654531, -1.58489726654531, 
    -2.04282868170093), log2FoldChange_Region = c(-2.11261476936419, 
    -2.37119008459253, -1.59565539803813, -2.4954310786834, -2.11050911441613, 
    -1.81996408306615), Peak_Region = structure(c(5L, 6L, 4L, 
    2L, 3L, 1L), .Label = c("Peak147010", "Peak194531", "Peak194535", 
    "Peak194536", "Peak75759", "Peak81940"), class = "factor")), class = "data.frame", row.names = c(NA, 
-6L))

数据框小子集

a
          ENSEMBL log2FoldChange_Expression log2FoldChange_Region Peak_Region
1 ENSG00000005187                 -2.275655             -2.112615   Peak75759
2 ENSG00000006740                 -1.766555             -2.371190   Peak81940
3 ENSG00000008277                 -1.584897             -1.595655  Peak194536
4 ENSG00000008277                 -1.584897             -2.495431  Peak194531
5 ENSG00000008277                 -1.584897             -2.110509  Peak194535
6 ENSG00000013810                 -2.042829             -1.819964  Peak147010

我的目标是在我希望看到的地方拟合回归模型

我的log2FoldChange_Expression 我的response variablelog2FoldChange_Region 是我的independent variable

现在我知道如何运行的基本lm是这个

res=lm(log2FoldChange_Expression ~ log2FoldChange_Region, data=Down_data)

我的目标是看看哪个我不确定它是否合乎逻辑!。

  1. 对于Peak_Region 及其各自的ENSEMBL,我想拟合该模型并查看每一行的pvalue。是否可以这样做?

我想要一个最终输出表,我想在其中查看每一行的 pvalue

ENSEMBL log2FoldChange_Expression log2FoldChange_Region Peak_Region           pvalue 
1 ENSG00000005187                 -2.275655             -2.112615   Peak75759
2 ENSG00000006740                 -1.766555             -2.371190   Peak81940
3 ENSG00000008277                 -1.584897             -1.595655  Peak194536
4 ENSG00000008277                 -1.584897             -2.495431  Peak194531
5 ENSG00000008277                 -1.584897             -2.110509  Peak194535
6 ENSG00000013810                 -2.042829             -1.819964  Peak147010

【问题讨论】:

  • 这没有意义。您不能在一个数据点上拟合线性模型。或者更确切地说,您可以(也许)但您将无法估计除系数(等于常规平均值)之外的任何其他值,因此没有 p 值。
  • stackoverflow.com/questions/59053695/… 这是我看到的一个例子
  • 我的目标是过滤一些关键基因,那么简单的相关性就足够了吗?像高相关或低相关
  • @PesKchan,我假设您的数据集要大得多。 Peak_Region 中有多少个唯一(不同)值?您可以创建一个新的分类变量,在其中根据 Peak_Region 的分组创建一些值。然后只需将其作为独立变量插入现有的“log2FoldChange_Region”旁边。
  • 这个例子和你的不一样。他们对每个项目有 4 个值来评估它是积极趋势还是消极趋势。您的目标是根据 1 个值评估每个“项目”。例如,您可以对所有数据点执行分析,然后检查每个 ENSEMBL 的估计值有何不同。我会将其发布为答案,但我认为这不是您想要的。

标签: r regression lm


【解决方案1】:

看看我最后的评论。

Down_data <- structure(list(ENSEMBL = structure(c(1L, 2L, 3L, 3L, 3L, 4L),
                                         .Label = c("ENSG00000005187","ENSG00000006740", "ENSG00000008277", "ENSG00000013810"),
                                         class = "factor"),
                     log2FoldChange_Expression = c(-2.2756549273843, -1.76655532051033,-1.58489726654531, -1.58489726654531, -1.58489726654531,-2.04282868170093),
                     log2FoldChange_Region = c(-2.11261476936419,-2.37119008459253, -1.59565539803813, -2.4954310786834, -2.11050911441613,-1.81996408306615),
                     Peak_Region = structure(c(5L, 6L, 4L,2L, 3L, 1L),
                                             .Label = c("Peak147010", "Peak194531", "Peak194535","Peak194536", "Peak75759", "Peak81940"),
                                             class = "factor")),
                class = "data.frame",row.names = c(NA,-6L))

res=lm(log2FoldChange_Expression ~ log2FoldChange_Region + ENSEMBL, data=Down_data)
summary(res)

【讨论】:

  • res=lm(log2FoldChange_Expression ~ log2FoldChange_Region + Peak_Region, data=Down_data) 我很好奇为什么这不起作用?
猜你喜欢
  • 2016-09-03
  • 2014-05-07
  • 2018-03-17
  • 1970-01-01
  • 2022-10-04
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多