[syndicated profile] kosarex_feed
Я смотрю, тут пытаются справиться с шоком в ЖЖ. А что нового предложил Трамп? Вспомним провокацию в Тонкинском заливе и прочие подобные дела. Когда нужно, США и прочие государства называют соперника вором, предателем демократии, обвиняют в торговле наркотиками. Когда нужно, молчат. Когда нужно, вторгаются. Вопрос в скорости действия. Тут сделали быстро, а в Иране не получилось при Картере. Сейчас в Иране получилось наполовину. Ударили без объявления. Попали. Дальше пока непонятно. Зато в Венесуэле Трамп сделал всё в классическом стиле. Предупредил, собрал флот и войско, подождал, ввел блокаду, затем произвел молниеносный удар. Неожиданно только одно - скорость удара. Норьегу в Панаме дольше штурмовали и арестовывали. Извините, техника нынче иная у США, а у противников старая.

Другое дело сравнивать с СВО. Тут разница как между небом и землей. Зеленский и не только получает гарантии безопасности. Эти гарантии ведут к колоссальным потерям военного и гражданского населения с обеих сторон. И тут надо сказать, что так было задумано. Но ведь у нас и у них прямо писали в 2023 году - наша цель уничтожить мужчин, призванных в армию. Писали четко, планировали четко. Дальше что? Почему нужно блестяще взять Мадуро, чтобы у нас вздрогнули?

(no subject)

Jan. 3rd, 2026 11:11 am
cali4nickation: (Default)
[personal profile] cali4nickation
For the first time in years, the Democrats are opposed
to a Venezuelan criminal entering our country.

Amazing how effective we are when all the gay
made up rules are ignored. Now, if only we
applied that energy here on the home front.

I could get used to Delta Force conducting arrests
on high-profile targets who are enemies
of the American People. Foreign and domestic.


По свежему поводу прочитал неимоверно прекрасную формулировку у одного Прибалтийского релоканта: "Трамп идиот, но глубинное американское государство потому и настолько сильно, что 100 лет свободного развития сделали свое дело.". Представление об Америке у людей здесь не живущих остается на уровне просмотра боевиков со Шварцем в видеосалоне.

В начале года я от скуки пытался немного им пояснить в комментах. По ходу сформулировались три экзистенциальные проблемы Америки по решению которых можно будет судить об успехах DJT: нарушители государственной границы и цветные "легальные" иммигранты, DEI, и госдолг (епархия Конгресса строго говоря). Любопытно что многие иностранцы меня не поняли.

Непонятно

Jan. 3rd, 2026 11:34 am
vak: (U.S.A.)
[personal profile] vak
Следует ли считать Мадуро законным иммигрантом?

(no subject)

Jan. 3rd, 2026 10:23 am
krivye_ru4ki: (Default)
[personal profile] krivye_ru4ki
https://www.aa.com.tr/en/europe/france-says-capture-of-venezuelan-president-violates-international-law/3788920 - а французы уже "осуждают". Вместе со всем прогрессивным человечеством в виде РФ, Китая, Ирана и примкнувших к ним хамасохуситов.
[syndicated profile] artyom_ferrier_feed

Интересные новости из Венесуэлы.

Вернее, уже из США.

Куда переместился Мадуро.

Что ж, понятное дело, все добрые люди планеты уже высказались на тему того, что это — вопиющее нарушение международного права.

И, на самом деле, трудно не согласиться.

Конечно, непрошенный визит спецназа в чужую страну и силовой захват тамошнего национального лидера с последующим его изъятием — это, формально, нарушение международного права. И даже — вопиющее, не будем отрицать.

И таким же вопиющим нарушением была, пожалуй, операция Барракуда в 79-м, когда французские парашютисты свалились на голову Бокассе и доходчиво объяснили, что он всем надоел своими брутальными чудачествами.

Не менее вопиющим был и рейд израильского Миткаля на Энтеббе в 76-м. Ведь формально — это считается невежливым, прилетать в другую страну, захватывать там аэродром и постреливать в охраняющих его солдат местной армии.

И уж точно явным нарушением международного права было нападение амеров на Панаму в 89-м с захватом Норьеги. Тот инцидент — пожалуй, наиболее похож на давешний венесуэльский, и обвинения, выдвинутые арестанту, в общем-то, похожи. И тоже, конечно, тогда только ленивый не выразил Штатам своё «фэ» за злостное самоуправство, попирающее все основы и скрижали, и всё такое.

Что ж, мы, не будучи буквоедами и формалистами, смотрим на подобные вещи диалектически.

Хорошо это или плохо, попирать международное право и вторгаться в чужую страну, чтобы похитить тамошнего президента?

Это зависит от того: а) хороший ли человек тамошний президент; б) хорошие ли парни это делают.

Если презик плохой, а захватывают его хорошие — тогда всё в порядке.

Ну действительно, гарантии суверенитета — это, конечно, очень мило, но что делать, когда в некой стране приходит к власти какой-то козёл, который нанимает себе головорезов на бабки, вырученные от торговли наркотой, и с их помощью размазывает по асфальту всякую оппозицию?

То есть, когда в стране есть более-менее реальная демократия со сменой власти — действительно, только упыри и недоумки нападают на такую страну военной силой для продвижения своих интересов, тогда как вменяемые люди — просто вкладываются в тамошнюю оппозицию.

Но вот что делать, если оппозиция разгромлена диктатором и попробуй его сковырни каким-либо законным образом?

Зачем его вовсе сковыривать, когда он сидит в другой стране, и, казалось бы, это их проблемы, как у них там борзеет правитель?

Что ж, оно было бы так, но вот ту же контрабанду наркотой, когда её неприкрыто поддерживает тот диктаторский режим — некоторые склонны рассматривать уже как агрессию против своей страны.

Ну или, скажем, принудительная национализация всяких лакомых экономических активов, вроде нефтянки.

Это очень мило — сначала приглашать в свою страну инвесторов, а потом объявить, что «всё должно принадлежать народу, в лице его лучших представителей».

Никаких «правовых» инструментов для разрешения таких кризисов — международное право не предоставляет, да и, вероятно, не может предоставлять.

Вот и приходится действовать напролом, без куртуазности.

Но при этом, конечно, имеет значение соотношение усилий, жертв и результатов.

Что ж, в данном случае, с Мадуро, приходится признать, что результат — великолепный. Даже гораздо лучше, чем было с Норьегой в 89, когда всё же официально погибло сколько-то сотен солдат с обеих сторон и мирных жителей.

Сейчас же, очевидно, если жертвы и есть вовсе, то минимальные.

Отрицать успех этой операции — могут лишь те, кому мозги совсем уж выел STD, и вместо логики осталось одно лишь истерическое трампоненавистничество.

Особенно мне нравятся пассажи вроде: «Да американские чинуки пролетели совершенно беспрепятственно, по ним никто и не помышлял стрелять, а значит, всё было куплено и схвачено заранее, сплошной договорняк, а никакая не военная операция!»

Ну, во-первых, история знает очень много случаев, когда лихой вертолётный десант осуществлялся вполне эффективно, даже при «рабочем» ПВО противника.

Взять хоть самый первый этап пресловутой путинской «СВО», когда высаживались вертолётные десанты и в Гостомеле, и в других местах.

Да, потом — эти десанты разгромили (кроме Новой Каховки). Но произведены они были, в общем-то, с минимальными помехами и потерями. И вертушки вполне себе пролетали десятки, а то и сотни километров по украинскому воздушному пространству, которое стерегло тогда отнюдь не благодушное и не самое слабое украинское ПВО.

Во-вторых же, даже если принять за истину, что венесуэльские вояки были подкуплены и сами сдали своего Мадуро с потрохами — в чём тут «зашквар» для амеров?

Ну, издавна признано, что «ишак, гружённый золотом» - военное средство не хуже прочих (если не наилучшее). И весь вопрос в том, насколько умело пользуются этим средством.

В действительности, если пользоваться неумело, с хреновой разведкой — можно очень сильно влететь в ловушку, когда ты будто бы «подкупишь» контрагентов, будто бы обо всём договоришься, а потом — твоих людей встретят. И получишь грандиозный скандал с десятками убитых или пленённых элитных твоих бойцов.

Тут достаточно вспомнить, чего Джимми Картеру стоил провал операции «Орлиный коготь» в восьмидесятом. Это когда пытались вытащить заложников-дипломатов из Ирана, но три вертушки из восьми вышли из строя, угодив в песчаную бурю, и решено было сворачиваться и убираться с импровизированного аэродрома подскока, но при этом вертушка обрушилась на транспортный Геркулес, вызвав большой феерверк.

Замечу, тот феерический просёр был — безо всякого противодействия иранского ПВО (до него просто не долетели).

И погибло тогда всего человек десять, кажется, такого порядка — но вот это убило перспективы Картера на переизбрание.

Когда же разведка ошибается с оценкой «договороспособности» контрагентов и направляет группу прямо в лапы к противнику — риск потерь ещё выше.

Но здесь, очевидно, что если и был сговор с венесуэльскими вояками — то вполне успешный.

Более чем успешный.

И в действительности, для иных прочих диктаторов на глобусе такой урок даже более поучительный, чем если б амеры проломились в диктаторскую резиденцию силой оружия.

Ну, тут-то — иные прочие диктаторы могли бы всё же надеяться, что на них-то так буром не полезут, опасаясь неприемлемого ущерба в ответ.

Но вот когда демонстрируется, что окружение зарвавшегося диктатора может его кинуть и сдать - это, думается, куда больше нервирует «коллег» в других местах глобуса.

Ведь наверное, Мадуро — был уверен в лояльности и эффективности тех, кому доверил свою безопасность.

Да там практически вся экономика страны была досуха выжата ради укрепления безопасности правящей мафии.

Ан вот поди ж ты — не помогло.

Есть, о чём задуматься «коллегам» (и их окружению).

Так или иначе, по лагерю «плохишей» нанесён очень чувствительный удар, очень впечатляющий — а тут ещё и в Иране происходят не менее интересные события.

Да, там довольно регулярно случаются протесты недовольных властью аятолл, но вот сейчас — вдруг им будет оказана какая-то более реальная поддержка, и вдруг кто-то из иранских вояк решит выбрать время и место для «перехода на сторону народа», на фоне очевидного ослабления КСИР, и вдруг чего путное получится.

Пожалуй, неплохо год начинается.


(no subject)

Jan. 3rd, 2026 04:37 pm
[syndicated profile] idelsong_feed
Я говорил раньше и повторяю это: безмятежное существование на Земле таких стран, как Северная Корея или Куба при Кастро, или сталинский СССР - позор для человечества! К сожалению, этот принцип не всегда выполним и не всегда выполняется, и это позор.

(no subject)

Jan. 3rd, 2026 04:19 pm
[syndicated profile] idelsong_feed
Шавуа тов! Сыночек оперативно отреагировал:

Встал я утром в шесть часов
Сразу выпил сдуру
Есть резинка от трусов
Только нет Мадуро

Как и обещал

Jan. 3rd, 2026 03:35 pm
[syndicated profile] auvasilev_feed

Пошли нарезались в «Серой радости». Я «Патроном», супруга как обычно, естественно, очень скромно вином. Один из тостов подняли за Меланью. Фотоотчет прилагаю. 


realwired: (Default)
[personal profile] realwired

Некто Норьега. Наркодилер  и ещё немножко шил, диктатором. Которого точно так же взяли за жопу и вытащили на мороз. Догадайтесь когда? Да конечно 3 января. При президенте - республиканце разумеется.
Судили его правда в Майами. Не Нью-Йорке.


 

(no subject)

Jan. 3rd, 2026 07:05 am
aka_human: (Default)
[personal profile] aka_human
Просыпаюсь утром рано,
Где Мадуро и сметана?!?

Анекдоты. 2026. 1

Jan. 3rd, 2026 04:24 pm
olindom: (pic#13801272)
[personal profile] olindom
 После Нового года чувствую себя паровозом – целый день на активированном угле…

Наполеон

Jan. 3rd, 2026 09:16 am
yostrov: (Default)
[personal profile] yostrov
 Наполеон 
В 1937-м году инженер-нефтяник Леонид Донской был арестован. Его жену, Марию, отправили в лагерь "Алжир" - Акмолинский лагерь жён изменников Родины.
Чтобы не сойти с ума, каждую ночь Мария сочиняла кулинарные рецепты: что она приготовит, когда семья соберется вместе. Представляла, как готовит, каждый шаг и жест. Учила рецепты наизусть, выверяя каждое слово.Read more... )

Мир вашему дому

Jan. 3rd, 2026 01:30 pm
[syndicated profile] auvasilev_feed

Чем я принципиально отличаюсь от подавляющего большинства не только пишущих, но и вообще в принципе всех людей? Тем, что без малейших сомнений, внутренних преград и противоречий сразу готов искренне и полностью признавать свои ошибки и не придумывать при этом себе оправданий.

Да, был неправв. Рыжий, конечно, дурак и клоун, но оказалось, что не только. Рад за него и снимаю шляпу.

Даже решили пойти с женой отметить это дело в "Серую радость" на пляже. Хоть погода для этого не идеальная, но повод того стоит. Уж очень последнее время мало столь одновременно веселого и приятного. 

[syndicated profile] lleo_feed
======== [ ГОЛОСОВАНИЕ ] ========
недоступно при трансляции в соцсети, зайдите на сайт
======== [ /ГОЛОСОВАНИЕ ] ========
xaxam: (Default)
[personal profile] xaxam

И не могу остановиться, читаю до конца

Совершенно невозможно остановиться, слушая багатели Жанетт Соррель. Её творческая команда "Аполлон, жарь!" многолика, как Протей, и играет абсолютно что угодно абсолютно как угодно. Вот, например, клейзмерская свадьба:



Всё, постараюсь больше не надоедать. Идите сами на их канал на ютьюбе, там таких сокровищ рассыпано, как алмазов в пещере Саладина.
chasovschik: (Default)
[personal profile] chasovschik
Почистил, значит, ленты, повыкидывал все лишнее, включаю сегодня утюг - ну, вы поняли. Трамп, гнида, так просто не отпустит. Хрен тут отключишься, политические новости поступают прямо из атмосферы методом диффузии. Комментарии к поступившим новостям я постараюсь не читать, но основные пункты можно себе представить:

- Свободу народу Венесуэлы от американского империализма,
- Трамп решил захватить венесуэльскую нефть,
- Трамп понял, за что на самом деле дают Нобелевские премии,
- Проводились ли консультации с W.Бушем, Б.Обамой и Х.Клинтон?
- Теперь не Трамп будет Путину завидовать, а наоборот (смотрите, дети, как надо проводить СВО),
- Тайваню абзац,
- Ну и так далее.

С Новым годом, короче, дорогие товарищи.

Торт

Jan. 3rd, 2026 08:29 am
yostrov: (Default)
[personal profile] yostrov
 В этом году я каждый день завтракаю куском торта. Доедаю "Наполеон", который сам сделал на Новый Год.
25 лет назад развёлся с первой женой из-за того, что наш десятилетний сын ел торт на завтрак.
Это была не причина развода, а последняя капля. Мы поругались: один кричал, что это вредно, другой, что нормально.
Что самое смешное, сейчас я уже не помню, кто что утверждал.
[syndicated profile] r_bloggers_feed

Posted by Jerry Tuttle

[This article was first published on Online College Math Teacher, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
      I have been at lots of business meetings where the speaker would say something like, “As the red line clearly demonstrates, …”

      I would quickly look up at two particular co-workers. We all had that same rolling of the eyes look. When you have color-challenged issues, that red line does not clearly demonstrate anything to us. (And yes, the three of us knew we all had color issues.)

      I wrote the R code for this graph. But I used a random number to decide which line is red and which is green, so I don’t know which line is which.

      I am not color-blind. I am color-challenged. I see some colors, but probably not as many as most people see. I don’t distinguish between red and green well. I also don’t distinguish between blue and purple well because of the red element of purple, and similarly for other combinations.

      In my earliest elementary school years I had a box of 8 Crayola crayons, and I did just fine. My problems began when Crayola started adding more and more colors including combinations like green yellow and yellow green. Here are the original eight colors, which I still identify just fine. (There is no meaning to the heights of the bars.)

      One source suggests approximately 1 in 12 men have color issues, but only 1 in 200 women.

      Color-challenged people often have coping strategies. I can see when the top traffic light is on, so I will stop my car. But in my heart, I don’t think it is red, but more of an orange. Similarly I can see when the bottom traffic light is on, but I think it is more of an off-white than green. As long as no one flips the positions, I am fine. A single flashing light is a probllem though.

      When I see an 8-sided stop sign, that’s what I consider red. And I recognize Taylor Swift wears what I consider a very red lipstick, but I assume she wears more than one shade and I cannot distinguish among them.

      The speaker with the two-line graph could have used the different shapes, or different graph line types dashes and dots, in the talk. Or the speaker could have used color-blind friendly color palettes. If you are creating visualizations for others, please think about these things.

      And ladies, that purple lipstick looks very nie on you. Oh, it’s not purple … ?

      The R code is as follows:




# Two lines with random colors
x <- seq(1:5)
y <- seq(1:5)
z <- seq(5,1, by = -1)

color_1 <- "#00B050"
color_2 <- "#FF0000" 

r <- runif(1,0,1)
r
if (r < .5){
  col_y <- color_1
  col_z <- color_2
} else{
  col_y <- color_2
  col_z <- color_1
}

plot(x,y, type="b", pch = 18, cex = 2.5, lwd = 2.5, col=col_y, ylab="", xlab="", 
     main="As the red line clearly demonstrates ...", cex.main = 1.5,
     sub="If r
End

To leave a comment for the author, please follow the link and comment on their blog: Online College Math Teacher.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Continue reading: As the red line clearly demonstrates, …
[syndicated profile] r_bloggers_feed

Posted by r on Everyday Is A School Day

[This article was first published on r on Everyday Is A School Day, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Testing Super Learner with TMLE showed some interesting patterns 🤔 XGBoost + random forest only hit ~54% coverage, but tuned xgboost + GLM reached ~90%. Seems like pairing flexible learners with stable (even misspecified) models helps? Need to explore this more with different setups 📊

Motivations:

We have previously looked at TMLE without Super Learner and observed the poor coverage of TMLE with unspecified xgboost when compared to a correctly specified logistic regression. Now since we’ve learnt NNLS the default method behind Super Learner, why dont we test it out and take a look at the coverage! Let’s take a look at our previous coverage plot.

We saw that with xgboost and TMLE, our coverage is about 71.1-87.6% and the lower and upper tails are asymmetrical. What if we use SuperLearner, can we improve these coverage?

Objectives

Let’s Code

We will be using the same data generating mechanism as before, but this time we will be using Super Learner to estimate the propensity score and outcome regression.Let’s write a code where we can use multicore and also a cheap 2nd hand lenovo with quad-core and Ubuntu to run and store results. Part of my learning goal for 2026 is to experiment more with parallel computing and see if we can explore mathematical platonic space more using simulation! Stay tuned on that, more to come on the simple parallel computing cluster set up!

code
library(dplyr)
library(SuperLearner)
library(future)
library(future.apply)

# Set up parallel processing
plan(multicore, workers = 4)

set.seed(1)

n <- 10000
W1 <- rnorm(n)
W2 <- rnorm(n)
W3 <- rbinom(n, 1, 0.5)
W4 <- rnorm(n)

# TRUE propensity score model
A <- rbinom(n, 1, plogis(-0.5 + 0.8*W1 + 0.5*W2^2 + 0.3*W3 - 0.4*W1*W2 + 0.2*W4))

# TRUE outcome model
Y <- rbinom(n, 1, plogis(-1 + 0.2*A + 0.6*W1 - 0.4*W2^2 + 0.5*W3 + 0.3*W1*W3 + 0.2*W4^2))

# Calculate TRUE ATE
logit_Y1 <- -1 + 0.2 + 0.6*W1 - 0.4*W2^2 + 0.5*W3 + 0.3*W1*W3 + 0.2*W4^2
logit_Y0 <- -1 + 0 + 0.6*W1 - 0.4*W2^2 + 0.5*W3 + 0.3*W1*W3 + 0.2*W4^2

Y1_true <- plogis(logit_Y1)
Y0_true <- plogis(logit_Y0)
true_ATE <- mean(Y1_true - Y0_true)

df <- tibble(W1 = W1, W2 = W2, W3 = W3, W4 = W4, A = A, Y = Y)

tune = list(
  ntrees = c(500,1000),           # More trees for better performance
  max_depth = c(3,5),                    # Deeper trees capture interactions
  shrinkage = c(0.001,0.01)    # Finer learning rate control
)

learners <- create.Learner("SL.xgboost", tune = tune, detailed_names = TRUE, name_prefix = "xgb")

# Super Learner library 
SL_library <- list(c("SL.xgboost", "SL.ranger", "SL.glm", "SL.mean"),
                   c("SL.xgboost","SL.ranger"),
                   c("SL.xgboost","SL.glm"),
                   list("SL.ranger", c("SL.xgboost", "screen.glmnet")),
                   c(learners$names, "SL.glm"))

# sample
n_sample <- 1000
n_i <- 6000

# Function to run one TMLE iteration
run_tmle_iteration <- function(seed_val, df, n_i, SL_library) {
  set.seed(seed_val)
  data <- slice_sample(df, n = n_i, replace = T) |> select(Y, A, W1:W4)
  
  # Prepare data
  X_outcome <- data |> select(A, W1:W4) |> as.data.frame()
  X_treatment <- data |> select(W1:W4) |> as.data.frame()
  Y_vec <- data$Y
  A_vec <- data$A
  
  # Outcome model
  SL_outcome <- SuperLearner(
    Y = Y_vec,
    X = X_outcome,
    family = binomial(),
    SL.library = SL_library,
    cvControl = list(V = 5)
  )
  
  # Initial predictions
  outcome <- predict(SL_outcome, newdata = X_outcome)$pred
  
  # Predict under treatment A=1
  X_outcome_1 <- X_outcome |> mutate(A=1)
  outcome_1 <- predict(SL_outcome, newdata = X_outcome_1)$pred
  
  # Predict under treatment A=0
  X_outcome_0 <- X_outcome |> mutate(A=0)
  outcome_0 <- predict(SL_outcome, newdata = X_outcome_0)$pred
  
  # Bound outcome predictions to avoid qlogis issues
  outcome <- pmax(pmin(outcome, 0.9999), 0.0001)
  outcome_1 <- pmax(pmin(outcome_1, 0.9999), 0.0001)
  outcome_0 <- pmax(pmin(outcome_0, 0.9999), 0.0001)
  
  # Treatment model
  SL_treatment <- SuperLearner(
    Y = A_vec,
    X = X_treatment,
    family = binomial(),
    SL.library = SL_library,
    cvControl = list(V = 5)
  )
  
  # Propensity scores
  ps <- predict(SL_treatment, newdata = X_treatment)$pred
  
  # Truncate propensity scores 
  ps_final <- pmax(pmin(ps, 0.95), 0.05)
  
  # Calculate clever covariates
  a_1 <- 1/ps_final
  a_0 <- -1/(1 - ps_final)
  clever_covariate <- ifelse(A_vec == 1, 1/ps_final, -1/(1 - ps_final))
  
  epsilon_model <- glm(Y_vec ~ -1 + offset(qlogis(outcome)) + clever_covariate, 
                       family = "binomial")
  epsilon <- coef(epsilon_model)
  
  updated_outcome_1 <- plogis(qlogis(outcome_1) + epsilon * a_1)
  updated_outcome_0 <- plogis(qlogis(outcome_0) + epsilon * a_0)
  
  # Calc ATE
  ate <- mean(updated_outcome_1 - updated_outcome_0)
  
  # Calc SE
  updated_outcome <- ifelse(A_vec == 1, updated_outcome_1, updated_outcome_0)
  se <- sqrt(var((Y_vec - updated_outcome) * clever_covariate + 
                   updated_outcome_1 - updated_outcome_0 - ate) / n_i)
  
  return(list(ate = ate, se = se))
}

# Run iterations in parallel
for (num in 1:length(SL_library)) {
cat("TMLE iterations in parallel with 4 workers (multicore)...\n")
start_time <- Sys.time()

results_list <- future_lapply(1:n_sample, function(i) {
  result <- run_tmle_iteration(i, df, n_i, SL_library[[num]])
  if (i %% 100 == 0) cat("Completed iteration:", i, "\n")
  return(result)
}, future.seed = TRUE)

end_time <- Sys.time()
run_time <- end_time - start_time

# Extract results
predicted_ate <- sapply(results_list, function(x) x$ate)
pred_se <- sapply(results_list, function(x) x$se)

# Results
results <- tibble(
  iteration = 1:n_sample,
  ate = predicted_ate,
  se = pred_se,
  ci_lower = ate - 1.96 * se,
  ci_upper = ate + 1.96 * se,
  covers_truth = true_ATE >= ci_lower & true_ATE <= ci_upper
)

# Summary stats
summary_stats <- tibble(
  metric = c("true_ATE", "mean_estimated_ATE", "median_estimated_ATE", 
             "sd_estimates", "mean_SE", "coverage_probability", "bias"),
  value = c(
    true_ATE,
    mean(predicted_ate),
    median(predicted_ate),
    sd(predicted_ate),
    mean(pred_se),
    mean(results$covers_truth),
    mean(predicted_ate) - true_ATE
  )
)

# Create output directory if it doesn't exist
if (!dir.exists("tmle_results")) {
  dir.create("tmle_results")
}

# Save detailed results (all iterations)
write.csv(results, paste0("tmle_results/tmle_iterations",num,".csv"), row.names = FALSE)

# Save summary statistics
write.csv(summary_stats, paste0("tmle_results/tmle_summary",num,".csv"), row.names = FALSE)

# Save simulation parameters
sim_params <- tibble(
  parameter = c("n_population", "n_sample_iterations", "n_bootstrap_size", 
                "SL_library", "n_workers", "runtime_seconds"),
  value = c(n, n_sample, n_i, 
            paste(SL_library[[num]], collapse = ", "), 
            4, as.numeric(run_time, units = "secs"))
)
write.csv(sim_params, paste0("tmle_results/simulation_parameters",num,".csv"), row.names = FALSE)

# Save as RData for easy loading
save(results, summary_stats, sim_params, true_ATE, file = paste0("tmle_results/tmle_results",num,".RData"))

As previously, we’ve set up our true ATE and simulation and will sample 60% of the N=10000 and ran a bootstrap of 1000. This time, instead of solo ML, we will use Super Learner to ensemble several models and then estimate our ATE and if the 95% CI covers the true ATE. Below are the combinations we will investigate:

  1. xgboost + randomforest + glm + mean
  2. xgboost + randomforest
  3. xgboost + glm
  4. randomforest + (xgboost + screen.glmnet) + glm
  5. xgboost_tuned + glm

What’s The Result

Wow, these are very interesting results! Looking at 1) where we have xgboost, randomforest, glm, and mean, our coverage was pretty horrible at ~50%. For 3) with xgboost and glm, coverage increased to ~80%, very similar to our solo tuned xgboost previously but at least with symmetrical non-coverage, very interesting. But when 2) we combined both xgboost and randomforest, the coverage dropped back to ~50%. Same thing happened when we used feature engineering 4) glmnet prior to xgboost, then couple with xgboost, coverage was only ~50%. But, when we 5) tune xgboost and combine it with glm, coverage increased to ~90%! I was not expecting this result but this is quite amazing! With regards to how long it took for each combination for a quadcore processor with multicore feature:

method time_hours
SL.xgboost, SL.ranger, SL.glm, SL.mean 4.02
SL.xgboost, SL.ranger 4.00
SL.xgboost, SL.glm 0.47
SL.ranger, SL.xgboost, screen.glmnet 4.23
tuned SL.xghboost, SL.glm 3.29

Opportunities for improvement

  • attempt using optimized hyperparameters for both xgboost and randomforest
  • write a function for splitting multicore to several nodes
  • try using NNloglik / maximize on auc instead of nnls, would it work better?
  • need to test the theory that whether set.seed works differently with multicore? Or does future automatically chooses L'Ecuyer-CMRG Algorithm? does our current method of set.seed(i) of iteration number work ok?
  • need to try mcSuperLearner, built-in multicore

Lessons Learnt

  • learnt future_lapply
  • learnt multicore is so much faster!!! Though when we future_lapply the function it appears to have the same time as multisession
  • tested Super Learner, it’s pretty cool! It already has options for parallel computing
  • found out that mixing flexible model like xgboost (tuned) and logreg regularizes the ensembled model

If you like this article:

To leave a comment for the author, please follow the link and comment on their blog: r on Everyday Is A School Day.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Continue reading: Testing Super Learner’s Coverage – A Note To Myself
Page generated Jan. 3rd, 2026 08:25 pm
Powered by Dreamwidth Studios