※ [本文转录自 Statistics 看板 #1MTMWLYa ]
作者: celestialgod (天) 看板: Statistics
标题: Re: [问题] 中央极限定理
时间: Sat Dec 19 22:22:06 2015
应A大要求,解释一下程式
library(magrittr) # 加载%>%跟%T>%运算子
# %>% 解释
# 现在有一个函数f,有一个input,假设为a
# 一般上,我们可以使用f(a)得到回传值
# 而%>% 可以把LHS当作RHS的函数的第一个input
# 因此,透过 a %>% f 或是 a %>% f() 都等同于 f(a)
# 同理,如果现在还有一个函数g,有两个input,x跟y
# g(x,y)等同于 x %>% g(y)
# 但是如果我们想要让他指定第二个位置呢?这时候就要透过 .跟{}实现
# .就是LHS的代替符号,所以其实 a %>% f() 等同于 a %>% f(.)
# 所以我们可以g(x,y)写成 y %>% {g(x, .)}
# 其中{}的功能是建立一个block,不直接传导引数到函数的第一个input
# 而%>%最大的好处是节省temporary variable
# 像是我现在x = f(a), z = g(x, y),我最后只要z的话
# 可以直接写成 z = a %>% f %>% g(y),这一个可能需要花一点时间体会
# %T>% 解释
# 其实就是只做传导的%>%,不做回传动作。
# 写 b <- a %T>% f 的话就是b会等于a,而R console会列出f(a)的值
# 根据这个特性如果我写成 b = 1:5 %T>% plot
# b会等于1, 2, 3, 4, 5,而图也会同时出现
我这里用另外一种方式去解释%>%跟%T>%,我之前曾在R_Language写过相关的文章
之前写的时候用另一个方向去写,也可以参考看看,附上我之前写的文章:
https://www.ptt.cc/bbs/R_Language/M.1437452331.A.CD1.html
dat = rep(c(90:98, 5), 10) # 创建母体,5分、90~98分各10人
x <- 1e4 %>% replicate(mean(sample(dat, 50))) %T>%
{
qqnorm(.)
qqline(.)
}
其实把上面这段用一般写法就会变成:
x <- replicate(1e4, mean(sample(dat, 50)))
qqnorm(x)
qqline(x)
※ 引述《allen1985 (我要低调 拯救形象)》之铭言:
: ※ 引述《baltimore (WYC)》之铭言:
: : 我想请教一个问题,我是大一的学生,最近看到中央极限定理非常搞不懂,我看到老师的
: : 讲义写说不论母群的分布为何,只要n够大,样本平均数的抽样分布一定接近常态分配。
: : 但是假设有一个考试成绩是这样:95%学生成绩是90分以上,1%学生成绩10分以下,这样还
: : 会是接近常态分配吗?我一直觉得很怪,之前有关中央极限定理的文我有看过但是看不懂
: : @@还有我是心理系的,不知道我学的跟统计系的相比是不是有所增减,谢谢
: : 另外我应该会常常上来问问题XD 麻烦各位版友了
: 小弟我对于中央极限定理 虽然很久以前就听过了 但也并非了解得十分透彻
: 前面推文中 提到了一些 此定理的必要条件 非常的严谨 非常的好
: 但我想对于一个大一生 可能有听没办法懂 毕竟可能连积分都还不会 何况是动差
: 所以我希望原po能知道 你原先的叙述很不完整 如果想知道更清楚的
: 如果有哪些名词不懂的 欢迎再问
: 不晓得可不可以利用以下实验 让原po对中央极限定理更有概念
: 这只是我脑中闪过的念头 希望此实验没有太大问题
: 首先 我们可以假设 母体总共有100个学生成绩好了
: 90分10个 91分10个 92分10个 93分10个 94分10个
: 95分10个 96分10个 97分10个 98分10个 5分10个
: 请原po每次随机抽样 50个学生的成绩 算其平均数 总共抽个10次
: 然后 看看这10次平均数分配会不会有点像常态
: 我不知道结果会不会像 希望对原po有一些帮助
作者: allen1985 (我要低调 拯救形象) 2014-12-19 22:36:00
感谢 原本虽然我不知道这你的code怎么运作但我知道 sample 怎么运作 所以我可以稍微改一下感谢 我又学到新东西了 嘿嘿