r - 使用 R 中的调查数据进行 Box-Cox 变换

标签 r survey stata

有谁知道用 R 中的调查数据估计 Box-Cox 多元变换的方法?我不知道有什么考虑到分层和集群(我正在使用的数据),但即使考虑到概率权重的东西也会很棒。我最担心的是当应用概率权重时,一个或多个变量可能会发生变化,因此转换可能会发生根本性的变化。也可能对错误和 Box-Cox 算法等产生影响……但这超出了基本上是理论确认方法的范围。

更新问题

R 函数 powerTransform效果很好,但我认为调查数据还没有。我认为 Stata 可以处理这个问题,但正如尼克指出的那样,情况并非如此。唯一处理采样权重的 Box-Cox 变换似乎是 this .

您是否知道任何允许您将单变量和多变量 BoxCox 变换应用于概率加权数据的 R 函数?

我没有任何数据,但我只是想知道是否有人找到了解决方案。我知道当给出一个具体的例子时人们会很感激,所以......

单变量 Box-Cox:
使用 lm 和 svyglm(调查包)对象时,将返回单变量 Box-Cox 的结果。

library(survey)
data(api)
library(car)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
Sur<-svyglm(api00~mobility, design=dstrat)
NotSur<-lm(api00~mobility, data=apistrat)
powerTransform(Sur)
powerTransform(NotSur)

但是我不认为带有调查对象的 powerTransformation 是正确的,因为您在运行时获得与 NotSur 相同的结果(并且与 Sur 不同)
None<-svydesign(id=~1, weights=rep(1,nrow(apistrat)), data=apistrat, )
Sur2<-svyglm(api00~mobility, design=None)
powerTransform(Sur2)

我更不确定如何找到多元正态性,因为您必须使用实际数据,例如
summary(powerTransform(cbind(api00,mobility)~1,apistrat))

最佳答案

您提供的链接似乎指向在数据步骤中运行的 SAS 中的用户定义函数。应该可以将该方法重新编程到 R 中。

如果您查看建议的 SAS 方法 here ,你会看到它使用 proc transreg估计所需的功率转换。该 SAS proc 不接受调查权重。我不确定是什么 weight选项在该过程中执行 see here

更新:我仔细查看了您提供的第一个链接 here .看来加权是在 proc univariate 中完成的与 weight如果数据包含权重,则激活选项。但是,如果您查看 weight 的详细信息来自 here ,您将看到权重用于操纵方差。我不确定您是否希望对您的数据使用该假设。

关于r - 使用 R 中的调查数据进行 Box-Cox 变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14860595/

相关文章:

r - 提取/访问 PDF 中嵌入的 XML 文件

r - R 中分层样本的单向方差分析

javascript - 在 Qualtrics 调查中使用 Javascript 日期选择器 - 将日期携带到调查字段

mysql - 如何避免数据库模型中的冗余?

python - 任何 Python 库都会生成发布风格回归表

r - 水平线; y 轴作为因子 : ggplot2

r - 控制 Atom/RSS 的 index.xml(hugo/blogdown 生成带有相关链接的提要)

r - 识别匹配对并创建一个公共(public) key

string - 如何在Stata中将字符串变量转换为数字变量?

从 Stata 复制种子设置