我有一个Y,X1,X2和V列的数据集.Y,X1和X2是连续的,V是一个分类变量。假设V有10个类别,我想要创建10个线性回归模型并将结果(系数,p值,R-Sq等)存储在另一个表中。有没有办法使用data.table而不使用for循环?谢谢。生成一个回归模型数组,无回圈
-3
A
回答
0
broom package正好存在这种类型的问题。它可以将模型的输出整理为整齐的数据帧,便于存储和比较。这是一个example,它使用broom
和dplyr
来解决几乎相同的问题。它使用dplyr
按分类变量对数据进行分组,将模型拟合到每个组,并将这些系数提取到几行代码中的data.frame中。我不熟悉data.table
的分组操作,但可能会对该软件包执行类似的操作。
此外,broom
具有augment
函数,该函数可用于计算适合度量度量和其他汇总统计量。
另外,如果你想这样做,而无需安装额外的软件包,则可以将数据帧中的建模过程分割成一个列表(使用split
功能),lapply
到列表中,提取结果(可能是通过另一lapply
那从lm
对象中提取信息,)然后将它们全部组合在一起。
3
基本R功能by
是你想要的。
# make up some sample data
dataSet <- data.frame(Y = iris$Sepal.Length,
X1 = iris$Sepal.Width,
X2 = iris$Petal.Length,
V = iris$Species)
# apply the `lm` function by the value of `V`
by(data = dataSet[c("Y","X1","X2")],
INDICES = dataSet$V,
FUN = lm,
formula = Y ~ .)
在by
功能,data
是你想要的功能应用到数据。 INDICES
是一个向量因子或因子列表,其中一个值对应于每行data
,指示您希望如何分割数据。 FUN
是您希望应用于数据子集的功能。在这种情况下,lm()
需要额外的参数formula
,指示如何为数据建模,因此您可以轻松地将该参数作为formula
参数传递给by
函数。
相关问题
- 1. WEKA回归模型
- 2. Strucchange与自回归模型
- 3. c中的回归模型#
- 4. 多重对数回归模型ggplot2
- 5. 将不同的回归模型拟合成多项式数据?
- 6. 模型性能图:回归模型的MAE图[ROC图的回归等价图]
- 7. 如何返回模型关联数组的单个成员?
- 8. 在递归中返回一组数字
- 9. Lasagne LSTM回归生成零输出
- 10. 使用lmodel2包获得减少主轴回归模型的回归系数
- 11. 函数返回无递归
- 12. 在pymc3中创建一个三级逻辑回归模型
- 13. 模型构造函数返回数组
- 14. ggplot2:用回归系数绘制两个模型
- 15. 为什么我的模型范围无效并返回一个空数组?
- 16. 用optim()估计概率回归模型
- 17. 回归模型的matlab特征选择
- 18. cox回归模型出错的汇集
- 19. 部署咖啡回归模型
- 20. 扩展回归模型在R
- 21. 循环创建回归模型
- 22. 线性回归模型拟合不佳
- 23. Logistic回归的模型拟合统计
- 24. 回归模型有什么工具吗?
- 25. 用回归模型预测的方法
- 26. Backbone.js fetch()JSON模型get()回归undefined
- 27. ggplot2中的逻辑回归模型
- 28. 在线性回归模型中产生的NA
- 29. 原型$$返回数组,应返回一个元素,如$
- 30. Django模型返回组
请参阅nlme软件包中的'lmList'。有关如何在SO上提出问题时提供可重现示例的信息,请参见[mcve]。 –
谢谢。我试过lmList,它工作。我只得到了coeffs,但我确信我可以弄清楚如何获得R-Sq,p值等。 – mlg
请参阅http://stackoverflow.com/questions/23501852/print-r-squared-for-all-的最模型拟合与 - lmlist –