四时宝库

程序员的知识宝库

R数据分析:如何用R做数据模拟(怎么用r做数据分析)

数据模拟可以帮助我们更好的理解真实世界,今天给大家写写如何在R中做数据模拟。

单变量模拟

很多的分布都可以用R进行模拟,首先来看看最简单的正态分布的模拟,代码如下

x <- rnorm(n = 10000, mean = 10, sd = 1.5)
hist(x)
mean(x)
sd(x)


上面的代码中如果不给均值和标准差,默认为标准正态分布。R中还有很多相关的可以模拟标准分布的方法,直接给大家贴个图,大家可以一个一个试试:


上面所有的模拟方法都是从特定分布中抽取一个随机样本,每一种分布R还提供了三种其他的方法density, distribution function, quantile,比如对应正态分布我们就有4种方法:'rnorm', 'dnorm' (density), 'pnorm' (distribution function), 'qnorm' (for quantiles)。

回归的模拟

现在给大家模拟一个回归数据集出来,首先模拟出自变量和应变量

x <- rnorm(100, 10, 1.5)
Zy <- .8*Zx + rnorm(100, 0, sqrt(1 - (.8^2)))

然后生成模拟数据集

df.1 <- data.frame(x, Zy)


然后用生成的模拟数据再次做一个回归:

summary(lm(Zy ~  x))


可以看到,输出的回归结果很好,系数和我们模拟时设定的差不多,而且都显著。

模拟二元回归的应变量

上面介绍的连续数据的模拟,如果我们需要一个符合某种关系的二元变量可不可以模拟呢?可以的。这个时候需要用到'arm'包。

比如我现在模拟一个符合b0 + b1*x1 + b2*x2 + b3*x3关系的logistic回归的因变量,代码如下

x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
b0 <- 1
b1 <- 1.5
b2 <- 2
b3 <- 0.5
y <- rbinom(100, 1, invlogit(b0 + b1*x1 + b2*x2 + b3*x3))
df.2 <- data.frame(x1, x2, x3, y)


看看我们的因变量y的输出,完美。这个时候再把y转换为因子就可以直接拿去zhuangbi(分析)啦

df.2[,4] <- as.factor(df.2[,4])


小结

今天给大家写了如何用R进行数据模拟,感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的,加油。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

R数据分析:如何用R做验证性因子分析及画图,实例操练

R数据分析:如何用R做多重插补,实例操练

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接