#r #linear-regression #sparkr #sparklyr
#r #линейная регрессия #sparkr #sparklyr
Вопрос:
При выполнении линейной регрессии с использованием sparklyr, например:
cached_cars %>%
ml_linear_regression(mpg ~ .) %>%
summary()
Результаты не включают стандартные ошибки
Deviance Residuals:
Min 1Q Median 3Q Max
-3.47339 -1.37936 -0.06554 1.05105 4.39057
Coefficients:
(Intercept) cyl_cyl_8.0 cyl_cyl_4.0 disp hp drat
16.15953652 3.29774653 1.66030673 0.01391241 -0.04612835 0.02635025
wt qsec vs am gear carb
-3.80624757 0.64695710 1.74738689 2.61726546 0.76402917 0.50935118
R-Squared: 0.8816
Root Mean Squared Error: 2.041
- Есть ли способ отображать стандартные ошибки при выполнении этой регрессии?
- Есть ли способ кластеризации стандартных ошибок в sparklyr?
- Я также пытался запустить линейную модель с несколькими групповыми фиксированными эффектами в sparklyr. В базовом R я сделал это с помощью felm. У кого-нибудь есть опыт выполнения этого в sparklyr?
Решения, использующие SparkR, также высоко ценятся.
Комментарии:
1. Для 2 и 3 см. Эту статью о выполнении эконометрики в Spark hdl.handle.net/10419/214153
Ответ №1:
Я получил полезный ответ на свой первый вопрос в community.rstudio.com .
Ответ от итаоли следующий:
library(sparklyr)
spark_version <- "2.4.4" # This is the version of Spark I ran this example code with,
# but I think everything that follows should work in all versions of Spark anyways
sc <- spark_connect(master = "local", version = spark_version)
cached_cars <- copy_to(sc, mtcars)
model <- cached_cars %>%
ml_linear_regression(mpg ~ .)
coeff_std_errs <- invoke(model$model$.jobj, "summary") %>%
invoke("coefficientStandardErrors")
print(coeff_std_errs)
Ответ №2:
- Я думаю, что вы ищете tidy() . Итак, в вашем случае:
regression1 <- cached_cars %>%
ml_linear_regression(mpg ~ .)
tidy(regression1)
Что касается кластеризованных стандартных ошибок и фиксированных эффектов, я не знаю.
Комментарии:
1. По какой-то причине это не сработало для моего варианта использования, но я увидел другой ответ, предлагающий то же самое
2. Это странно. Я использую broom для своей tidy, вы могли бы попробовать
broom::tidy(regression1)
, хотя у sparklyr есть версия tidy, поэтому `sparklyr::tidy (regression1)’ должен работать.