Jeśli zmienna czynnikowa (np. Płeć o poziomach M i F) jest używana we wzorze glm, tworzone są zmienne zmienne, które można znaleźć w podsumowaniu modelu glm wraz z powiązanymi z nimi współczynnikami (np. Płeć)
Jeśli zamiast polegać na R w celu podzielenia współczynnika w ten sposób, czynnik jest zakodowany w szeregu liczbowych zmiennych 0/1 (np. GenderM (1 dla M, 0 dla F), genderF (1 dla F, 0 dla M) i te zmienne są następnie używane jako zmienne numeryczne we wzorze glm, czy wynik współczynnika byłby inny?
Zasadniczo pytanie brzmi: czy R stosuje inne obliczenia współczynnika podczas pracy ze zmiennymi czynnikowymi w porównaniu ze zmiennymi numerycznymi?
Pytanie uzupełniające (na które może odpowiedzieć powyższe pytanie): czy oprócz wydajności pozwalającej R tworzyć zmienne zastępcze, czy jest jakiś problem z ponownym kodowaniem czynników jako szeregu liczbowych zmiennych 0,1 i zastosowaniem tych w modelu?
Odpowiedzi:
Zmienne kategorialne (zwane „ czynnikami ” w R) muszą być reprezentowane przez kody numeryczne w modelach regresji wielokrotnej. Istnieje wiele możliwych sposobów prawidłowego konstruowania kodów numerycznych (zobacz tę wspaniałą listę na stronie pomocy statystyk UCLA). Domyślnie R używa kodowania na poziomie odniesienia (który R nazywa „contr.treatment”) i który jest w zasadzie domyślny dla całej statystyki. Można to zmienić dla wszystkich kontrastów dla całej sesji R za pomocą opcji lub dla określonych analiz / zmiennych przy użyciu kontrastów lub C (zwróć uwagę na kapitał). Jeśli potrzebujesz więcej informacji na temat kodowania na poziomie odniesienia, wyjaśnię to tutaj: Regresja oparta na przykład na dniach tygodnia.
Niektóre osoby uważają kodowanie poziomu odniesienia za mylące i nie trzeba go używać. Jeśli chcesz, możesz mieć dwie zmienne dla mężczyzn i kobiet; to się nazywa poziom oznacza kodowanie. Jednak jeśli to zrobisz, będziesz musiał powstrzymać przechwytywanie, w przeciwnym razie matryca modelu będzie pojedyncza, a regresja nie będzie pasować, jak powyższe nuty @Affine i jak wyjaśnię tutaj: Kodowanie zmiennych jakościowych prowadzi do osobliwości . Aby wyłączyć przechwytywanie, zmodyfikuj formułę, dodając
-1
lub w ten+0
sposób:y~... -1
luby~... +0
.Zastosowanie kodowania poziomu zamiast kodowania poziomu odniesienia zmieni szacowane współczynniki i znaczenie testów hipotez wydrukowanych wraz z wynikami. Kiedy masz współczynnik dwupoziomowy (np. Męski vs. żeński) i używasz kodowania poziomu referencyjnego, zobaczysz wywołany interceptt 0 t 0
(constant)
i tylko jedną zmienną wymienioną na wyjściu (być możesexM
). Punkt przecięcia jest średnią grupy odniesienia (być może kobiet) isexM
stanowi różnicę między średnią mężczyzn a średnią kobiet. Wartość p powiązana z punktem przecięcia jest testem jednej próby na to, czy poziom odniesienia ma średnią a wartość p powiązana zsexM
informuje cię, czy płcie różnią się w twojej odpowiedzi. Ale jeśli zamiast tego użyjesz kodowania oznaczającego poziom, będziesz mieć na liście dwie zmienne, a każda wartość p będzie odpowiadać testowi próby z jedną próbą, czy średnia tego poziomu wynosi . Oznacza to, że żadna z wartości p nie będzie testem na to, czy płcie się różnią.źródło
young F
), A pozostałe poziomy będą różnić się od podanego poziomu współczynnika 1 w / poziom odniesienia drugiego czynnika i obie grupy poziomów odniesienia. Np.old
Jestold F
- `młody F, &
M` jestyoung M
-young F
.R^2
różnicy między tymi dwoma podejściami. Wiem, że to tylkoR^2
, ale czy istnieje na to wytłumaczenie?Oszacowane współczynniki byłyby takie same pod warunkiem, że utworzysz zmienne fikcyjne (tj. Numeryczne) zgodne z R. Na przykład: stwórzmy fałszywe dane i dopasuj współczynnik Poissona glm za pomocą współczynnika. Zauważ, że
gl
funkcja tworzy zmienną czynnikową.Ponieważ wynik ma trzy poziomy, tworzę dwie zmienne fikcyjne (fikcyjne 1 = 0, jeśli wynik = 2 i fikcyjne 2 = 1, jeśli wynik = 3) i ponownie używam tych wartości liczbowych:
Jak widać szacunkowe współczynniki są takie same. Ale musisz zachować ostrożność podczas tworzenia zmiennych zastępczych, jeśli chcesz uzyskać ten sam wynik. Na przykład, jeśli utworzę dwie zmienne fikcyjne jako (fikcyjny 1 = 0, jeśli wynik = 1 i fikcyjny 2 = 1, jeśli wynik = 2), wówczas szacunkowe wyniki są różne w następujący sposób:
Wynika to z tego, że gdy dodajesz
outcome
zmienną w glm.1, R domyślnie tworzy dwie zmienne fikcyjne mianowicieoutcome2
ioutcome3
definiuje je podobnie dodummy.1
idummy.2
w glm.2, tzn. Pierwszym poziomem wyniku jest sytuacja, gdy wszystkie pozostałe zmienne fikcyjne (outcome2
ioutcome3
) są ustawione na zero.źródło