W 1987 roku japońscy producenci postanowili zdobyć amerykański rynek luksusowych samochodów. Honda, a później także Nissan Auto Company doszli do wniosku, że rynek ten zbyt długo był zdominowany przez firmy niemieckie. Firmy japońskie zaprojektowały więc luksusowe samochody, które miały zdobyć rynek amerykański. Pierwszym japońskim luksusowym samochodem osobowym wprowadzonym w Stanach Zjednoczonych była zaprojektowana w pracowni Hondy Acura Legend. Poszukując strategii marketingowych dla nowego samochodu, Honda postanowiła przetestować zadowolenie kierowców z prowadzenia tego auta w porównaniu z odpowiednim modelem BMW. 28 kierowców wybrano losowo spośród grupy ludzi, do których miano skierować reklamę. Poproszono ich o odbycie jazdy próbnej w obydwu samochodach. Kolejność próbowania samochodów była losowo wybierana dla każdego z kierowców. Po jeździe próbnej kierowca oceniał komfort jazdy w skali od 1 do 10 (10 najlepsza). Wyniki tego sondażu są wczytane do ramki danych Samochody. Honda chciała wykazać, że kierowcy z interesującej ich grupy preferują samochód Acura Legend. Czy i jak można to sprawdzić? Uwaga: ze względów dydaktycznych należy najpierw przeprowadzić test dwustronny
Samochody<-data.frame(
id_kierowcy=1:28,
bmw=c(6,7,8,9,5,6,9,10,9,6,4,8,6,9,8,9,10,9,3,7,6,10,9,8,8,7,8,9),
honda=c(9,10,8,10,7,5,9,9,10,9,6,7,10,8,9,10,9,9,5,9,10,10,8,7,9,10,8,10)
)
Dane są sparowane - oblicz różnice pomiędzy ocenami
roznice <- Samochody$honda-Samochody$bmw
czy możemy użyć sparowanego testu t? Sprawdź warunki tego testu.
hist(roznice)
qqnorm(roznice)
qqline(roznice)
Na histogramie widać, że rozkład nie jest normalny, a próba nie jest duża... Zastosujmy więc metody nieparametryczne. Zacznijmy od testu znaków. Sformuuj hipotezę zerową i alternatywną i przyjmij poziom istotności $\alpha = 0.05$.
#H0: nie ma różnicy między Hondą a Acurą
#H1: jest różnica między Hondą a Acurą
alpha<-0.05
Oblicz liczbę znaczących par:
n <- sum(roznice!=0)
Oblicz wartość statystyki testowej (liczba różnic dodatnich):
T <- sum(roznice>0)
T
Sprawdź wartości krytyczne wyznaczając dokładne kwantyle z rozkłądu dwumianowego (bez przybliżenia normalnego):
qbinom(alpha/2, n, 0.5) - 1
qbinom(1-(alpha/2), n, 0.5) + 1
Czy odrzucamy hipotezę zerową?
# nie
Wykonaj ten test funkcją binom.test
:
binom.test(T, n)
Spróbujmy zastosować do tego samego problemu test Wilcoxona. Ponieważ w tym teście również będziemy brali pod uwagę jedynie znaczące różnice, aby ułatwić sobie obliczenia stwórz wektor zawierający jedynie znaczące różnice.
roznice<-roznice[roznice!=0]
Oblicz moduł różnic:
modul_roznic<-abs(roznice)
Przypisz rangi różnicom poprzez wywołanie funkcji rank()
rangi_modulow<-rank(modul_roznic)
Oblicz sumę rang dodatnich i ujemnych różnic:
dodatnie<-sum(rangi_modulow[roznice>0])
ujemne<-sum(rangi_modulow[roznice<0])
Oblicz wartość statystyki testowej
T <- min(dodatnie,ujemne)
T
Sprawdź wartość krytyczną (rozkład w R
nazywa się signrank):
qsignrank(alpha/2, length(rangi_modulow)) - 1
Alternatywnie, można policzyć również p-wartość:
psignrank(T ,length(rangi_modulow))*2
Odrzucić hipotezę zerową?
# tak
Wykonaj test Wilcoxona przy użyciu funkcji wilcox.test
wilcox.test(Samochody$bmw,Samochody$honda , paired = T)
Wygeneruj wektor X liczb losowych z rozkładu jednorodnego [0,1] oraz wektor Y z rozkładu jednorodnego [1,2].
X<-runif(50)
Y<-runif(50, 1, 2)
Policz współczynnik korelacji Spearmana poprzez policzenie korelacji na rangach wektorów X i Y:
rX <- rank(X)
rY <- rank(Y)
cor(rX, rY)
Sprawdź ile będzie wynosił współczynnik korelacji Spearman'a dla zależności liniowej np. $Z=2X$. Ile będzie wynosił współczynnik korelacji Pearson'a?
Z <- 2*X
cor(X, Z)
cor(rX, rank(Z))
Zwizualizuj wektory X i Z przed i po rangowaniu.
plot(X,Z)
plot(rank(X),rank(Z))
Sprawdź ile będzie wynosił współczynnik korelacji Spearman'a dla zależności $Z=X^4$. Ile będzie wynosił współczynnik korelacji Pearson'a?
Z <- X**4
cor(X, Z)
cor(rX, rank(Z))
Zwizualizuj wektory X i Z przed i po rangowaniu.
plot(X,Z)
plot(rank(X),rank(Z))
Sprawdź ile będzie wynosił współczynnik korelacji Spearman'a dla zależności $Z=X^4$, ale dodaj do niej trochę szumu z rozkładu normalnego
Z<-X**4 + 0.1*rnorm(length(Z))
cor(rX, rank(Z))
Zwizualizuj wektory X i Z przed i po rangowaniu.
plot(X,Z)
plot(rank(X),rank(Z))
Olicz współczynnik korelacji Spearman'a pomiędzy wektorami X i Z z wykorzystaniem funkcji cor
- znajdź w pomocy odpowiedni parametr
cor(X, Z, method='spearman')
Unia Europejska postanowiła zmniejszyć dotacje dla producentów makaronu. W ramach ustalania, o ile zmniejszyć całkowite dotacje, przeprowadzono eksperymenty mające na celu określenie możliwego spadku eksportu, głównie do Stanów Zjednoczonych, wynikającego z redukcji dotacji. Ekonomiści chcieli sprawdzić w wąskim zakresie wartości, czy istnieje dodatnia korelacja między poziomem dotacji a poziomem eksportu. Przeprowadzono symulację komputerową zmiennych ekonomicznych mających znaczenie dla rynków eksportu makaronu. Wyniki znajdują się poniżej. Zakładając, że wyniki symulacji są dokładnym opisem rzeczywistości, a otrzymane wartości mogą być uważane za próbę losową pobrana z populacji możliwych wyników, ustal, czy istnieje dodatnia korelacja rang między poziomem dotacji i poziomem eksportu.
Dane <- data.frame(
dotacje <- c(5.1,5.3,5.2,4.9,4.8,4.7,4.5,5,4.6,4.4,5.4),
eksport <- c(22,30,35,29,27,36,40,39,42,45,21)
)
Oblicz współczynnik korelacji Spearman'a i zinterpretuj go
cor(Dane$dotacje, Dane$eksport, method='spearman')
Postaw hipotezę zerową i alternatywną i istotności współczynnika korelacji Spearmana:
# H0 r_s = 0
# H1 r_s != 0
Policz test funkcją cor.test
z odpowiednim parametrem, aby test dotyczył korelacji Spearmana
cor.test(Dane$dotacje, Dane$eksport,method="spearman")
Wniosek z testu:
# Odrzucamy H_0