我有一個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. 填充一個數組在迴圈
- 2. WEKA迴歸模型
- 3. L1懲罰迴歸無法從模型
- 4. 生成陣列數據幀迴歸
- 5. 如何在迴歸模型
- 6. Strucchange與自迴歸模型
- 7. c中的迴歸模型#
- 8. 多重對數迴歸模型ggplot2
- 9. 「軌生成模型......」沒有返回
- 10. 我如何總結多個迴歸模型產生的預測
- 11. 是否有Python模塊可檢測並生成一組數據點的迴歸類型和曲線方程?
- 12. 模型性能圖:迴歸模型的MAE圖[ROC圖的迴歸等價圖]
- 13. 如何返回模型關聯數組的單個成員?
- 14. 爲什麼backbone.js函數返回一個模型數組?
- 15. 將兩個迴歸預測模型(與一個數據幀的子集)合併回數據框(一列)
- 16. 在遞歸中返回一組數字
- 17. Lasagne LSTM迴歸生成零輸出
- 18. 遞歸回溯生成迷宮
- 19. 使用lmodel2包獲得減少主軸迴歸模型的迴歸係數
- 20. 函數返回無遞歸
- 21. 在pymc3中創建一個三級邏輯迴歸模型
- 22. 模型構造函數返回數組
- 23. 用RMSE和相關係數比較兩個迴歸模型
- 24. ggplot2:用迴歸係數繪製兩個模型
- 25. 爲什麼我的模型範圍無效並返回一個空數組?
- 26. 在線性迴歸模型中產生的NA
- 27. 線性迴歸模型擬合不佳
- 28. cox迴歸模型出錯的彙集
- 29. 部署咖啡迴歸模型
- 30. 用optim()估計概率迴歸模型
請參閱nlme軟件包中的'lmList'。有關如何在SO上提出問題時提供可重現示例的信息,請參見[mcve]。 –
謝謝。我試過lmList,它工作。我只得到了coeffs,但我確信我可以弄清楚如何獲得R-Sq,p值等。 – mlg
請參閱http://stackoverflow.com/questions/23501852/print-r-squared-for-all-的最模型擬合與 - lmlist –