[R] creating multivariate normal random variables

David Carlson dcarlson at tamu.edu
Thu May 9 22:03:19 CEST 2013


What is rbern()? Assuming it should be rbinom(), this can be simplified: 

> set.seed(42)
> y <- rbinom(100, 1, .5)
> x.1 <- rnorm(100, .02, 1)
> x.2 <- rnorm(100, .07, 1)
> x <- ifelse(y==0, x.1, x.2)
> 
> glm.out = glm(formula = y ~ x, family = binomial(logit))
> summary(glm.out)

Call:
glm(formula = y ~ x, family = binomial(logit))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3878  -1.2401   0.9768   1.1012   1.2116  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)   0.2078     0.2019   1.029    0.303
x             0.1719     0.2197   0.783    0.434

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 137.63  on 99  degrees of freedom
Residual deviance: 137.01  on 98  degrees of freedom
AIC: 141.01

Number of Fisher Scoring iterations: 4

> hat.beta.L <- coef(glm.out)
> hat.beta.L
(Intercept)           x 
  0.2078484   0.1719438 

-------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77840-4352

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of asdf1234
Sent: Thursday, May 9, 2013 9:48 AM
To: r-help at r-project.org
Subject: [R] creating multivariate normal random variables

Dear R experts,

I am trying to create a dataset, with one dependent binomial and one independen (normal) variable.
I have the condition that my x should be created in the following way:

if y=0 my x should have mean=0.2 and variance=1 if y=1 my x should have mean=0.7 and variance=1 Furthermore, my y is chosen with a prbability of 0.5

I tried it with the following expression:

n <- 1
prob <- 0.5
result.y <- vector("list",100)
result.X <- vector("list",100)
for (i in 1:100)
{
  y <- rbern(n, prob)
  X <- if(y==0){X <- rnorm(n, mean=0.2, sd=1)}else{X <- mvrnorm(n, mean=0.7, sd=1)}
  result.y[[i]] <- y
  result.X[[i]] <- X
}
y <- result.y
X <- result.X

matrix <- cbind(result.y, result.X)
View(matrix) 

However, when I try to run a logistic regression

glm.out = glm(formula = y ~ X, family = binomial(logit))
summary(glm.out)
hat.beta.L <- coef(glm.out)

I get the error massage

Fehler in model.frame.default(formula = y ~ X, drop.unused.levels = TRUE) : 
  ungültiger Typ (list) für die Variable 'y'

Does someone know what I am doing wrong?
Thank you very much for your help, I really appreciate it.



--
View this message in context: http://r.789695.n4.nabble.com/creating-multivariate-normal-random-variables-tp4666678.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list