From cc0418ff24f8b6485a2a553cf97ba8afd4d21a7d Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Mon, 28 Oct 2019 16:45:28 +0100
Subject: [PATCH] Fix Y computation in data sampling

---
 .gitignore       | 2 +-
 pkg/R/sampleIO.R | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index 260e0f5..14fe774 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,7 @@ NAMESPACE
 .Rhistory
 .RData
 
-#ignore R CMD build/check genrated files
+#ignore R CMD build/check generated files
 /*.Rcheck/
 /*.tar.gz
 
diff --git a/pkg/R/sampleIO.R b/pkg/R/sampleIO.R
index 5e45837..753e00d 100644
--- a/pkg/R/sampleIO.R
+++ b/pkg/R/sampleIO.R
@@ -51,7 +51,7 @@ generateSampleIO = function(n, p, β, b, link)
 	{
 		index = c(index, rep(i, classes[i]))
 		newXblock = cbind( MASS::mvrnorm(classes[i], zero_mean, id_sigma), 1 )
-		arg_link = newXblock%*%β[,i]
+		arg_link = newXblock %*% β
 		probas =
 			if (link == "logit")
 			{
@@ -61,8 +61,10 @@ generateSampleIO = function(n, p, β, b, link)
 			else #"probit"
 				pnorm(arg_link)
 		probas[is.nan(probas)] = 1 #overflow of exp(x)
+		probas = rowSums(p * probas)
 		X = rbind(X, newXblock)
-		Y = c( Y, vapply(probas, function(p) (rbinom(1,1,p)), 1) )
+		Y = c( Y, vapply(probas, function(p) (ifelse(p >= .5, 1, 0)), 1) )
+		#Y = c( Y, vapply(probas, function(p) (rbinom(1,1,p)), 1) )
 	}
 	shuffle = sample(n)
 	# Returned X should not contain an intercept column (it's an argument of estimation
-- 
2.44.0