t-student-multi-paried

This commit is contained in:
MikolajPaterka 2022-05-09 17:33:51 +02:00
parent 19dac7d7e2
commit 8b9722c606
5 changed files with 88 additions and 59 deletions

View File

@ -6,7 +6,7 @@ load("Hamulce.RData")
attach(Hamulce)
mean(Wynik)
t.test(Wynik,mu=18.6,alternative='less')
boot.t.test(Wynik,mu=18.6,alternative='less', R = 100)
boot.t.test(Wynik,mu=18.6,alternative='less', R = 200)
par(mfrow=c(1,2))
@ -31,59 +31,6 @@ tapply(Blad,Kod,var)
var.test(Blad~Kod)
t.test(Blad~Kod,var.equal=T,alternative='less')
# tTest dla dwoch prób-------------------------------------------------------------------
#wariancj
#podiał danych tak by tam gdzie jest 1 w blad był jeden zdbió® i tam gdzier 2 był drugi zbiór
x <- Bledy$Blad
y <- Bledy$Kod
var1 <- var(x)
var2 <- var(y)
#m0 i alpha- będzie przekazen w funcki
m0 <- 0
alpha = 0.05
m1 <- mean(x)
m2 <- mean(y)
n1 <- length(x)
n2 <- length(y)
sigma1 <- sqrt(n1)
sigma2 <- sqrt(n2)
# odchulylenie standardowe
S <- sqrt((var1/n1)+(var2/n2))
#Test statistic used to compute the p-value.
statistic <- (m1 - m2 - m0) / S
alternative = "less"
#p wartość
p <- if (alternative == "two.sided") {
2 * pnorm(abs(statistic), lower.tail = FALSE)
} else if (alternative == "less") {
pnorm(statistic, lower.tail = TRUE)
} else {
pnorm(statistic, lower.tail = FALSE)
}
LCL <- (m1 - m2 - S * qnorm(1 - alpha / 2))
UCL <- (m1 - m2 + S * qnorm(1 - alpha / 2))
value <- list(mean1 = m1, mean2 = m2, m0 = m0, sigma1 = sigma1, sigma2 = sigma2, S = S, statistic = statistic, p.value = p, LCL = LCL, UCL = UCL)
var1
var2
value
#---------------------------------------------------------------------
#dwie próby zależne

View File

@ -0,0 +1,48 @@
library('MKinfer')
library(boot)
t.test_multiple_paried <- function(x, m0=0, alternative = "two.sided") {
M <- mean(x)
n <- length(x)
#warianncja
V <- var(x)
sigma <- sqrt(V)
S <- sqrt(V / n)
statistic <- (M - m0) / S
p <- if (alternative == "two.sided") {
2 * pt(q=abs(statistic), df=length(x)-1, lower.tail=FALSE)
} else if (alternative == "less") {
pt(q=statistic, df=length(x)-1, lower.tail = TRUE)
} else {
pt(q=statistic, df=length(x)-1, lower.tail = FALSE)
}
value <- list(mean = M, m0 = m0, statistic = statistic, p.value = p, alternative = alternative)
return(value)
}
#dwie próby zależne
load("Cisnienie.RData")
attach(Cisnienie)
mean(Po-Przed)
#t.test(Po-Przed,mu=0,alternative='less')
size <- length(Cisnienie)
#jest git
#dane zwykłe
# funkcja wbudowana
t.test(Cisnienie$Po-Cisnienie$Przed,mu=0,alternative='less')
#nasza funkcja
t.test_multiple_paried(Cisnienie$Po-Cisnienie$Przed,m0=0,alternative='less')
# jest różnica w p-wartości!!!
#dane zbootstrpowane
bootstrappedData_Cisnienie <- ourBoot(Cisnienie$Po-Cisnienie$Przed, 200, size)
# funkcja wbudowana
t.test(bootstrappedData_Cisnienie,mu=0,alternative='less')
#nasza funkcja
t.test_multiple_paried(bootstrappedData_Cisnienie,m0=0,alternative='less')

View File

@ -2,7 +2,6 @@ t.test_single <- function(x, m, alternative = "two.sided") {
M <- mean(x)
n <- length(x)
statistic <- ((M - m) / sd(x)) * sqrt(n)
p <- if (alternative == "two.sided") {
2 * pt(q=abs(statistic), df=length(x)-1, lower.tail=FALSE)
} else if (alternative == "less") {
@ -18,9 +17,23 @@ t.test_single <- function(x, m, alternative = "two.sided") {
load("Hamulce.RData")
attach(Hamulce)
size_Hamulce <- length(Hamulce$Wynik)
bootstrappedData_Wynik <- ourBoot(Hamulce$Wynik, 200, size_Hamulce)
# p-wartość jest inna
# funkcja wbudowana
t.test(bootstrappedData_Wynik,mu=18.6,alternative='less')
# nasza funkcja
t.test_single(bootstrappedData_Wynik, m=18.6, alternative='less')
#jest git
# funkcja wbudowana
t.test(Wynik,mu=18.6,alternative='less')
# nasza funkcja
t.test_single(Wynik, m=18.6, alternative='less')

View File

@ -1,3 +1,5 @@
#jest git
t.test_multiple <- function(x, y, m0=0, alternative = "two.sided") {
M1 <- mean(x)
M2 <- mean(y)
@ -24,9 +26,23 @@ t.test_multiple <- function(x, y, m0=0, alternative = "two.sided") {
load("Bledy.RData")
attach(Bledy)
t.test(x=Blad, y=Kod,var.equal=T,alternative='less')
size_Bledy <- length(Bledy$Blad)
bootstrappedData_Bledy_Blad <- ourBoot(Bledy$Blad, 200, size_Bledy)
bootstrappedData_Bledy_Kod <- ourBoot(Bledy$Kod, 200, size_Bledy)
#dane zbootstrapowane
#funkcja wbudowana
t.test(x=bootstrappedData_Bledy_Blad, y=bootstrappedData_Bledy_Kod,var.equal=T,alternative='less')
# nasza funkcja
t.test_multiple(x=bootstrappedData_Bledy_Blad, y=bootstrappedData_Bledy_Kod, alternative='less')
#dane normalne
#funkcja wbudowana
t.test(x=Blad, y=Kod,var.equal=T,alternative='less')
# nasza funkcja
t.test_multiple(x=Blad, y=Kod, alternative='less')

View File

@ -35,4 +35,9 @@ Pozdrawiam,
Bartosz Naskręcki
Link do strony: https://statsandr.com/blog/student-s-t-test-in-r-and-by-hand-how-to-compare-two-groups-under-different-scenarios/#how-to-compute-students-t-test-in-r
Link do strony: https://statsandr.com/blog/student-s-t-test-in-r-and-by-hand-how-to-compare-two-groups-under-different-scenarios/#how-to-compute-students-t-test-in-r
Test T-Student-single -> dla danych zwykłych działa, dla bootsrapowych daje inną p-wartośc (reszta ok)
Test T-Student-multiple -> działa dobrze dla zwykłych danych i bootstapowych
Test T-Student-multiple-paried -> dla danych zwykłych działa, dla bootsrapowych daje inną p-wartośc (reszta ok)