在处理分层/多级/面板数据集时,采用一个返回可用变量的组内和组间标准差的包可能非常有用。
对于Stata
中的以下数据,可以通过以下命令轻松完成此操作
xtsum, i(momid)
字符串
我做了一个研究,但我找不到任何R
包可以做到这一点。
编辑:
只是为了解决这个问题,分层数据集的一个例子可能是这样的:
son_id mom_id hispanic mom_smoke son_birthweigth
1 1 1 1 3950
2 1 1 0 3890
3 1 1 0 3990
1 2 0 1 4200
2 2 0 1 4120
1 3 0 0 2975
2 3 0 1 2980
型
“多层次”结构是由每个母亲(较高层次)有两个或多个儿子(较低层次)这一事实给出的,因此,每个母亲定义了一组观测。
因此,每个数据集变量可以在母亲之间和母亲内部变化,也可以仅在母亲之间变化。birtweigth
在母亲之间变化,但在同一母亲内部也会变化。相反,hispanic
对于同一母亲是固定的。
例如,son_birthweigth
的母亲内方差为:
# mom1 means
bwt_mean1 <- (3950+3890+3990)/3
bwt_mean2 <- (4200+4120)/2
bwt_mean3 <- (2975+2980)/2
# Within-mother variance for birthweigth
((3950-bwt_mean1)^2 + (3890-bwt_mean1)^2 + (3990-bwt_mean1)^2 +
(4200-bwt_mean2)^2 + (4120-bwt_mean2)^2 +
(2975-bwt_mean3)^2 + (2980-bwt_mean3)^2)/(7-1)
型
母亲间方差为:
# overall mean of birthweigth:
# mean <- sum(data$son_birthweigth)/length(data$son_birthweigth)
mean <- (3950+3890+3990+4200+4120+2975+2980)/7
# within variance:
((bwt_mean1-mean)^2 + (bwt_mean2-mean)^2 + (bwt_mean3-mean)^2)/(3-1)
型
2条答案
按热度按时间jucafojl1#
我不知道您的Stata命令应该再现什么,但为了回答有关层次结构问题的第二部分:使用
list
很容易做到这一点。例如,您可以定义如下结构:字符串
要创建此
lapply
,可以方便地使用list
型
可以使用
str
查看结构型
在OP澄清后编辑
我认为
reshape2
包是您想要。我将在这里演示。为了进行多层次分析,我们需要对数据进行整形。
首先,将变量分为两组:标识符变量和测量变量。
型
一旦你有了“moten”形式的数据,你就可以“cast”把它重新排列成你想要的形状:
型
yws3nbqq2#
我知道这个问题已经有四年的历史了,但是最近我想在R中做同样的事情,并提出了以下函数。它取决于
dplyr
和tibble
。其中:df是嵌套框,columns是嵌套框的子集的数值向量,individuals是包含individuals的列。字符串