Nie jest to problem specyficzny dla R. R wykorzystuje konwencjonalne wyświetlanie współczynników.
Kiedy czytasz takie wyniki regresji (w pracy, w podręczniku lub z oprogramowania statystycznego), musisz wiedzieć, które zmienne są „ciągłe”, a które „kategoryczne”:
Te „ciągłe” są wyraźnie numeryczne, a ich wartości liczbowe zostały użyte w niezmienionej postaci w dopasowaniu regresji.
Zmienne „kategorialne” mogą być dowolnego typu, w tym te liczbowe! To, co czyni je kategorycznymi, polega na tym, że oprogramowanie traktowało je jako „czynniki”: to znaczy każdą znalezioną odrębną wartość uważa się za wskaźnik czegoś odrębnego.
Większość oprogramowania traktuje wartości nienumeryczne (takie jak łańcuchy) jako czynniki. Większość oprogramowania można przekonać do traktowania wartości liczbowych również jako czynników. Na przykład kod usługi pocztowej (kod pocztowy w USA) wygląda jak liczba, ale tak naprawdę jest tylko kodem zestawu skrzynek pocztowych; dodawanie, odejmowanie i mnożenie kodów pocztowych przez inne liczby nie ma sensu! (Ta elastyczność jest źródłem częstego błędu: jeśli nie jesteś ostrożny lub nieświadomy, twoje oprogramowanie może traktować zmienną, którą uważasz za kategoryczną, jako ciągłą lub odwrotnie. Bądź ostrożny!)
Niemniej jednak zmienne jakościowe muszą być w pewien sposób reprezentowane jako liczby w celu zastosowania algorytmów dopasowania. Istnieje wiele sposobów ich kodowania . Kody są tworzone przy użyciu „zmiennych zastępczych”. Dowiedz się więcej o kodowaniu zmiennych zastępczych, wyszukując na tej stronie; szczegóły tutaj nie mają znaczenia.
W kwestii powiedziano nam, że h
i f
są kategoryczne ( „dyskretne”) wartości. Domyślnie log(d)
i a
są ciągłe. To wszystko, co musimy wiedzieć. Model jest
y= - 0,679695+ 1,791294 log ( d)+ 0,870735- 0,447570+ 0,542033+ 0,037362 a - 0,588362+ 0,816825+ 0,534440- 0,085658 a - 0,034970 a - 0,040637 a jeśli h =h1 jeśli h =h2) jeśli h =h3) jeśli f=fa1 jeśli f=fa2) jeśli f=fa3) jeśli h =h1 jeśli h =h2) jeśli h =h3)
Stosowane tutaj zasady to:
Termin „przechwytujący”, jeśli się pojawia, jest stałą addytywną (pierwszy wiersz).
Zmienne ciągłe, są mnożone przez ich współczynników, nawet w „interakcji” podobnie jak h1:a
, h2:a
i h3:a
warunkach. (To odpowiada oryginalne pytanie.)
Każda zmienna kategoryczna (lub czynnik) jest uwzględniana tylko w przypadkach, w których pojawia się wartość tego czynnika.
Na przykład załóżmy, że , , , i . Dopasowana wartość w tym modelu tolog( d) = 2h =h3)a = - 1fa=fa2)
y^= - 0,6797 + 1,7913 × ( 2 ) + 0,5420 + 0,0374 × ( - 1 ) + 0,8168 - 0,0406 × ( - 1 ) .
Zauważ, że większość współczynników modelu po prostu nie pojawia się w obliczeniach, ponieważ h
może przyjąć dokładnie jedną z trzech wartości , , a zatem tylko jeden z trzech współczynników dotyczy i tylko jeden z trzech współczynników zwiększy się w interakcji; podobnie, tylko jeden współczynnik ma zastosowanie w każdym konkretnym przypadku.h1h2)h3)(0.870735,−0.447570,0.542033)h
(−0.085658,−0.034970,−0.040637)a
h:a
f
g1
c
może być mylący w tym konkretnym przypadku, ponieważ wybieram dwie litery reprezentują poziomy g1, ale zwykle jest to dość intuicyjne - i to jest czysty tex, więc nadal możemy edytować plik źródłowy). W załączeniu jest inne podsumowanie, w którym zmieniłemg1
tak, że teraz jest to czteropoziomowy czynnik. Jednak przy etykietach 0/1 może to być bardziej mylące .Możesz sprawdzić, czy „kontrasty” są domyślne,
options()
szukając:Jeśli twoje nieuporządkowane kontrasty są ustawione jako
contr.treatment
(tak jak powinny, chyba że je zmieniłeś), wówczas pierwszy poziom każdego z twoich czynników zostanie ustawiony jako punkt odniesienia. Otrzymasz tylko szacunki dla współczynników przed zmiennymi fikcyjnymi utworzonymi dla innych poziomów tego współczynnika. W efekcie współczynniki te będą brzmiały: „jak średnio średnia jest zmienna odpowiedzi na tym poziomie współczynnika w porównaniu z poziomem wyjściowym współczynnika, kontrolując wszystko inne w modelu”.Domyślam się, że z twoich danych wyjściowych jest an
h0
if0
które są poziomami podstawowymi dla h i f (chyba że masz inną niż domyślną opcję kontrastów, w którym to przypadku istnieje kilka możliwości; spróbuj?contr.treatment
uzyskać pomoc).Podobnie jest z interakcją. Jeśli mój poprzedni akapit jest poprawny, podane szacunki
a
będą naprawdę nachyleniem naa
kiedyh=h0
. Szacunki podane w podsumowaniu, które odnoszą się do interakcji, to o ile zmienia się to nachylenie dla różnych poziomówh
.Więc w twoim przykładzie, gdzie h = h1 if = f2, spróbuj:
Aha, możesz też użyć
predict()
wielu przydatnych rzeczy ... jeśli naprawdę chcesz coś przewidzieć (zamiast zapisać równanie do raportu). Spróbuj?predict.lm
zobaczyć, copredict()
robi z obiektem utworzonym przezlm
.źródło
options()
. Będziesz musiał przewinąć wiele śmieci, aby znaleźć to, czego potrzebujesz. Możesz spróbowaćoptions()$contrasts
, który wyświetli tylko to, czego chcesz.