当前位置: 首页 > 知识库问答 >
问题:

R,在不同的DVs上使用相同的IVs来存储系数的线性回归的自动循环

公西嘉玉
2023-03-14
    null

这似乎是我当前最大的问题。我想创建一个新的数据表(估计数),其中包含系数估计数和Pr(>T),例如(假设已经填写了),

<代码>IV DV mpg.est mpg.pr drat.est drat.pr qsec.est qsec.pr cyl-2.26 0.00......hp-0.02 0.21......disp-0.04 0.00......

然后,我想在“估计”后面附加列,描述每个IV的Pr值(cyl、hp、disp),例如(假设这已经填好了),

##### Step (1)
## Make the formulae
##   For scale, it would be great to use varlists here:
##     dvvarlist <- c("mpg", "drat", "qsec")
##     ivvarlist <- c("cyl + hp", "disp")
models <- lapply(paste(c("mpg", "mpg", "drat", "drat", "qsec", "qsec"),
    c("cyl + hp", "disp"), sep = "~"), formula)

## Run the regressions
res.models <- lapply(models, FUN = function(x) 
    {summary(lm(formula = x, data = mtcars))})

##### Step (2)
## Spot the coefficients
coefficients(res.models[[1]])

## How to automate grab coefficients from all models?

## How to automate place coefficients in proper location in new dataframe?

##### Step (3)
## Append columns to "estimates"
##   For scale, could again use dvvarlist <- c("mpg", "drat", "qsec")
estimates$mean.Pr <- rowMeans(estimates[ , c("mpg.Est", "drat.Est", "qsec.Est")])
  • 每个自变量对相关变量的线性回归循环
  • 循环线性回归和保存所有系数

共有1个答案

欧阳翔
2023-03-14

使用基数R:

 data("mtcars")
 y=c("mpg","drat","qsec")
 x=c("cyl+hp","disp")

 A=Map(function(i,j)
   summary(lm(as.formula(paste0(i,"~",j)),data=mtcars))$coef[,c(1,4)],
   rep(y,each=length(x)),x)   

 B=do.call(cbind.data.frame,
      tapply(A,rep(y,each=length(x)),
       function(s){a=do.call(rbind,s);a[row.names(a)!="(Intercept)",]}))
 B
        drat.Estimate drat.Pr(>|t|) mpg.Estimate mpg.Pr(>|t|) qsec.Estimate qsec.Pr(>|t|)
   cyl   -0.318242238  5.528430e-05  -2.26469360 4.803752e-04  -0.005485698   0.981671077
   hp     0.003401029  6.262861e-02  -0.01912170 2.125285e-01  -0.018339365   0.005865329
   disp  -0.003063904  5.282022e-06  -0.04121512 9.380327e-10  -0.006253039   0.013144036

我仍然不清楚第三步需要什么。我希望你能进一步阐述。虽然我看了你的代码,似乎你在寻找系数的平均值,系数的中位数等。我不知道你是否也在寻找概率的平均值、最大值等,但我只是计算了它们,以防你需要它们:

  C=split(data.frame(t(B)),rep(c("Estimate","Pr(>|t|)"),length(y)))

  D=lapply(C,function(f)
         matrix(mapply(function(i,j) i(j),
                          rep(c(mean,median,min,max),each=length(f)),f),length(f)))

   cbind(B,do.call(cbind.data.frame,lapply(D,`colnames<-`,c("mean","median","min","max"))))


     drat.Estimate drat.Pr(>|t|) mpg.Estimate mpg.Pr(>|t|) qsec.Estimate qsec.Pr(>|t|) Estimate.mean
cyl   -0.318242238  5.528430e-05  -2.26469360 4.803752e-04  -0.005485698   0.981671077   -0.86280718
hp     0.003401029  6.262861e-02  -0.01912170 2.125285e-01  -0.018339365   0.005865329   -0.01135334
disp  -0.003063904  5.282022e-06  -0.04121512 9.380327e-10  -0.006253039   0.013144036   -0.01684402
       Estimate.median Estimate.min Estimate.max Pr(>|t|).mean Pr(>|t|).median Pr(>|t|).min Pr(>|t|).max
  cyl     -0.318242238  -2.26469360 -0.005485698   0.327402245    4.803752e-04 5.528430e-05   0.98167108
  hp      -0.018339365  -0.01912170  0.003401029   0.093674136    6.262861e-02 5.865329e-03   0.21252847
  disp    -0.006253039  -0.04121512 -0.003063904   0.004383106    5.282022e-06 9.380327e-10   0.01314404

我相信你可以把它转置到一个屏幕上,而不是向左/向右滚动。如果这有帮助的话让我们知道。谢谢。

 类似资料:
  • 编辑:最后一个问题,如何通过值而不是引用来存储它?

  • 我将使用一个非常基本的hello worldendpoint作为示例 如果我有这个endpoint,并且我希望能够 /hello并检索视图。 如果传入特定的请求参数(如内容类型),是否可以使用相同的路径以json的形式检索模型?

  • 我正在尝试使用Intent打开文件。操作\u获取\u类似于此帖子的内容: Android打开一个文件与ACTION_GET_CONTENT结果到不同的Uri的 但是这里只是一个解决方案,如何使用不同的SDK/文件夹获取文件名,而不是不同的设备。获得Uri的意图也保持不变。 我想开门。png文件。 Uri.getPath()为两个设备(都. png文件存储在下载文件夹): 因此,问题是,如果我使用

  • 我有两个子类: 行 弧 它们的对象将通过在它们的末端附加它们来创建路径。这些都有自己的“plotCurve”方法。我想将这些对象存储在一个数组中,顺序如下: (我认为“path”应该是超类“path”的对象)当我编写类似这样的代码时; 结果应该显示出来。我应该能看到整条路。(因此,当“直线”的对象出现时,应运行“plotCurve”方法,对于圆弧对象也是如此)。

  • 这里,我们在每个Git存储库中都有buildscript{}文件foo/bar/buildscript.gradle。我想知道是否有一种方法可以直接从基础设施存储库应用文件。这样任何更改都可以直接在其他存储库中看到。

  • 问题内容: 在JavaFx中,我使用以下代码创建一个StackedBarChart: 结果是从1到8的系列具有不同的颜色。9-10系列与1-2系列具有相同的颜色。我试图在style.css文件中为条形图指定默认颜色,但似乎9-10系列实际上使用了颜色0和1。我认为这是一个错误。有谁知道解决方法? 问题答案: 颜色在8个系列之后被回收(原因是必须对定义的颜色数量进行一定的硬编码限制:JavaFX C