Вы не указали какой пакет wtd.t.test функция приходит, поэтому я предполагаю, что с помощью функции из пакета «весов». Согласно документации, первые два аргумента - это данные из двух групп, а 3-й и 4-й аргументы - веса для наблюдений в двух группах. Если 4-й аргумент не указан, данные веса будут использоваться для обеих групп. Это означает, что код, который вы написали, это проверка того, отличается ли взвешенное среднее от Ya1 от взвешенного среднего значения sec1. Это не похоже на то, что вы хотите сделать. Я думаю, что лм лучше подходит для случая использования:
# Make some example data
sec1 <- factor(sample(0:1, replace=TRUE, size=700))
Ya1 <- rnorm(700) + as.numeric(sec1)
weights1T <- 1.4^(rnorm(700))
# Use lm() to perform a weighted t-test
summary(lm(Ya1 ~ sec1, weights=weights1T))
, который дает:
> summary(lm(Ya1 ~ sec1, weights=weights1T))
Call:
lm(formula = Ya1 ~ sec1, weights = weights1T)
Weighted Residuals:
Min 1Q Median 3Q Max
-3.1921 -0.6672 -0.0374 0.7025 4.4411
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.92035 0.05376 17.12 <2e-16 ***
sec11 1.11120 0.07874 14.11 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.061 on 698 degrees of freedom
Multiple R-squared: 0.222, Adjusted R-squared: 0.2209
F-statistic: 199.1 on 1 and 698 DF, p-value: < 2.2e-16
Если вы действительно хотите использовать wtd.t.test
, вы можете сделать это так:
library(weights)
ysplit <- split(Ya1, sec1)
wsplit <- split(weights1T, sec1)
wtd.t.test(y1split[[1]], y1split[[2]], w1split[[1]], w1split[[2]])
, который дает вам почти такой же ответ, как lm()
:
> wtd.t.test(x=ysplit[[1]], y=ysplit[[2]],
+ weight=wsplit[[1]], weighty=wsplit[[2]])
$test
[1] "Two Sample Weighted T-Test (Welch)"
$coefficients
t.value df p.value
-13.50571 697.25403 0.00000
$additional
Difference Mean.x Mean.y Std. Err
-1.00357229 1.04628894 2.04986124 0.07430724
Warning message:
In wtd.t.test(y1split[[1]], y1split[[2]], w1split[[1]], w1split[[2]]) :
Treating data for x and y separately because they are of different lengths
вы должны указать, какой пакет вы используете, потому что 'wtd.t.test' не находится в базовой статистике – C8H10N4O2