lm 在 for 循环中没有存储 p 值? (在R)
lm in for loop no p-values stored? (in R)
我正在尝试拟合回归模型来解释独裁者游戏中的捐赠。由于我有很多变量,我想使用 'for' 循环自动执行该过程。现在我从单变量模型开始。
当我 print/summarise 拟合 fit[1:24]
时,只显示截距和系数。似乎没有存储 p 值?
predictor<-0
fit<-0
dictatorgame<-mydata$dictatorgame
sumres<-0
pVal<-0
for(i in 1:24) #24 predictor variables stored in column 1-24 in mydata
{
predictor<-mydata[i]
unlist(predictor)
fit[i]<-lm(dictatorgame~unlist(predictor))
}
我尝试了在 SO 上找到的两种不同的解决方案,它们似乎都认为对象是原子的:
sumres[i]=summary(fit[i])
pf(sumres[i]$fstatistic[1L], sumres[i]$fstatistic[2L],sumres[i]$fstatistic[3L], lower.tail = FALSE)
和
pVal[i] <- (fit[i])$coefficients[,4]
但总是收到错误消息 $ operator is invalid for atomic vectors
。
我生成了一些数据来执行多元回归。最后,您可以找到输出列表的前三个元素。是你想要的吗?
dependent <- rnorm(1000)
independent <- matrix(rnorm(10*1000), ncol = 10)
result <- list()
for (i in 1:10){
result[[i]] <- lm(dependent ~ independent[ ,i])
}
lapply(result, function(x) summary(x)$coefficients )
[[1]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.02890665 0.03167108 -0.9127144 0.3616132
independent[, i] -0.04605868 0.03138201 -1.4676776 0.1425069
[[2]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03142412 0.03161656 -0.9939134 0.3205060
independent[, i] -0.03874678 0.03251463 -1.1916723 0.2336731
[[3]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03208370 0.03162904 -1.0143749 0.3106497
independent[, i] 0.02089094 0.03189098 0.6550737 0.5125713
我正在尝试拟合回归模型来解释独裁者游戏中的捐赠。由于我有很多变量,我想使用 'for' 循环自动执行该过程。现在我从单变量模型开始。
当我 print/summarise 拟合 fit[1:24]
时,只显示截距和系数。似乎没有存储 p 值?
predictor<-0
fit<-0
dictatorgame<-mydata$dictatorgame
sumres<-0
pVal<-0
for(i in 1:24) #24 predictor variables stored in column 1-24 in mydata
{
predictor<-mydata[i]
unlist(predictor)
fit[i]<-lm(dictatorgame~unlist(predictor))
}
我尝试了在 SO 上找到的两种不同的解决方案,它们似乎都认为对象是原子的:
sumres[i]=summary(fit[i])
pf(sumres[i]$fstatistic[1L], sumres[i]$fstatistic[2L],sumres[i]$fstatistic[3L], lower.tail = FALSE)
和
pVal[i] <- (fit[i])$coefficients[,4]
但总是收到错误消息 $ operator is invalid for atomic vectors
。
我生成了一些数据来执行多元回归。最后,您可以找到输出列表的前三个元素。是你想要的吗?
dependent <- rnorm(1000)
independent <- matrix(rnorm(10*1000), ncol = 10)
result <- list()
for (i in 1:10){
result[[i]] <- lm(dependent ~ independent[ ,i])
}
lapply(result, function(x) summary(x)$coefficients )
[[1]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.02890665 0.03167108 -0.9127144 0.3616132
independent[, i] -0.04605868 0.03138201 -1.4676776 0.1425069
[[2]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03142412 0.03161656 -0.9939134 0.3205060
independent[, i] -0.03874678 0.03251463 -1.1916723 0.2336731
[[3]]
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03208370 0.03162904 -1.0143749 0.3106497
independent[, i] 0.02089094 0.03189098 0.6550737 0.5125713