Есть ли более простой способ написать такую ​​функцию для вычисления доверительного интервала? - PullRequest
0 голосов
/ 10 февраля 2020

При написании небольшой функции для вычисления 99% доверительного интервала некоторой выборки,

я получаю ответ, отличный от формулы R t.test. Вот моя функция:

confinterval <- function(x,alpha){
  alpha = 0.01
  df = length(x)-1
  pos_confinterval = mean(x) + qt((1 - alpha/2),df)*(var(x)/length(x))
  neg_confinterval = mean(x) - qt((1 - alpha/2),df)*(var(x)/length(x))

  cut_points <- c(neg_confinterval,pos_confinterval)
  return(cut_points)
}

confinterval (data) дает мне следующий вектор точек среза (4.469488 4.598704). Хотя: t.test (data, conf.level = .995) дает (4.064382 5.003810)

Есть ли более простой способ получить такую ​​функцию для вычисления доверительных интервалов?

1 Ответ

2 голосов
/ 10 февраля 2020

(Кстати: вы хотите иметь строку alpha = 0.01 как часть вашей функции? Я предполагаю, что 0,01 должно быть просто передано в качестве значения параметра при вызове функции, верно?)

Вы получаете ответ, отличный от t.test, потому что вам нужен квадрат root для объекта, который вы умножаете на критическое значение t-распределения. Если вы поместите var(x) / length(x) внутрь sqrt, вы получите тот же результат, что и t.test.

. Вы также можете использовать as.numeric(t.test(x, conf.level = 0.99)$conf.int) для прямого доступа к результату из функции t.test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...