R 分组回归
我有一张桌子:R 分组回归,r,group-by,regression,R,Group By,Regression,我有一张桌子: CityData -> City Price Bathrooms Bedrooms Porch Milwaukee 2300 2 3 yes Chicago 3400 3 2 yes Springfield 2300 1 1 no Chic
CityData ->
City Price Bathrooms Bedrooms Porch
Milwaukee 2300 2 3 yes
Chicago 3400 3 2 yes
Springfield 2300 1 1 no
Chicago 2390 2 1 yes
我想为每个城市运行一个回归(每个城市多行),以给我每个城市的系数。我想回归其他混杂变量(浴室、卧室、门廊)的价格
我尝试了dplyr库:
library(dplyr)
fitted_models = CityData %>%
group_by(CityData$City) %>%
do(model = lm(CityData$Price ~ CityData$Bathrooms +
CityData$Porch + CityData$Bedrooms, data = CityData))
但产出只是一个小问题
14 lm list
14 lm list
14 lm list
有什么建议吗?你可以试试这样的。这里我将以mtcars数据为例
df <- mtcars
models <- df %>% group_by(cyl) %>% summarise(mod = list(lm(mpg ~ wt)))
你也可以变得更复杂
models <- df %>% group_by(cyl) %>% summarise(mod = list(lm(mpg ~ wt + hp)))
models$mod[[1]]$coefficients
(Intercept) wt hp
45.83607319 -5.11506233 -0.09052672
您希望每个城市有不同的截距,还是希望每个城市的卧室、浴室等有一组不同的系数?此外,为了使您的示例具有可复制性,您必须提供足够的数据来运行回归(行数多于预测数)。我希望为门廊变量使用不同的系数。从
lm(Price~City+Bathrooms+borch+Bedrooms,CityData)
开始,然后根据需要变得更复杂。另外,不要在公式或dplyr/tidy eval函数中使用$
子集,只使用裸变量名。我不明白这个输出是什么。14是多少?是否为lm
和list
列类型?如果是这样的话,那么这些类型就是该代码的预期类型,因此您需要更清楚地解释您得到了什么以及您在寻找什么。
models <- df %>% group_by(cyl) %>% summarise(mod = list(lm(mpg ~ wt + hp)))
models$mod[[1]]$coefficients
(Intercept) wt hp
45.83607319 -5.11506233 -0.09052672
models$cyl
[1] 4 6 8