有人知道用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))
答案 0 :(得分:1)
您提供的链接似乎是SAS中在数据步骤中运行的用户定义函数。应该可以将方法重新编程为R。
如果您查看建议的SAS方法here,您会看到它使用proc transreg
来估算所需的电源转换。 SAS proc不接受调查权重。我不确定weight
选项在proc see here
更新:我仔细查看了您提供的第一个链接here。如果数据包含权重,则似乎在proc univariate
中执行加权,并激活weight
选项。但是,如果您从here查看weight
的详细信息,您会看到权重用于操纵差异。我不确定您是否希望使用该假设来处理数据。
答案 1 :(得分:0)
在链接的SAS宏中使用权重应该给出最佳转换的良好点估计,但可能会给出不合理的区间估计 - 因为对数似然比不会有标准的卡方分布。
将权重按比例缩放到样本大小可能会给出一个球场正确的间隔,但是Box&amp; amp; Cox方法需要“工作”的采样分布。似然比(由AIC
和anova
方法用于调查:: svyglm)