Tabelę widoczną w okienku poniżej skopiowałem z artykułu Petera Marsdena opublikowanego w Social Networks w 1988 r. Artykuł ten wykorzystuje dane z amerykańskiego General Social Survey z 1985 r. na temat tzw. confiding relations, czyli relacji społecznych, w ramach których partnerzy rozmawiają o „ważnych dla siebie sprawach”, cokolwiek kryje się pod tym określeniem. Respondentów proszono o wskazanie maksymalnie pięciu osób, z którymi toczą takie dyskusje, i o podanie płci, wieku, wykształcenia, przynależności religijnej oraz pochodzenia etnicznego każdej z nich. Tabela poniżej przedstawia, jak widać, liczebności confiding relations w zależności od pochodzenia etnicznego partnerów.
| Subject/Alter | White | Black | Hispanic | Other | Sum |
|---|---|---|---|---|---|
| White | 3806 | 29 | 30 | 20 | 3885 |
| Black | 40 | 283 | 4 | 3 | 330 |
| Hispanic | 66 | 6 | 120 | 1 | 193 |
| Other | 21 | 5 | 3 | 34 | 63 |
| Sum | 3933 | 323 | 157 | 58 | 4471 |
Kategorie przynależności etnicznej respondentów (w wierszach) i wskazywanych przez nich osób (w kolumnach) nie są stochastycznie niezależne (χ\(^2\) = 6 739, df = 9). Ów brak niezależności przejawia się choćby w liczbie par wewnątrzgrupowych, reprezentowanej przez liczebności na głównej przekątnej tabeli. Łączna liczba takich par wynosi 4 243, co daje 95% wszystkich par. Gdyby badani dobierali partnerów do confiding relations w sposób losowy, tzn. bez względu na ich przynależność etniczną, wówczas wówczas odsetek ten, przy tych samych rozkładach brzegowych, byłby równy 77%. Różnica między tymi dwiema wielkościami — tzn. faktyczną częstością par wewnątrzgupowych i hipotetyczną częstością w warunkach stochastycznej niezależności kategorii etnicznych partnerów — stanowi o wyrazistości (salience) przynależności etnicznej w confiding relations1.
Mówiąc nieco inaczej, z pokazanej wyżej tabeli wynika, że relacje o charakterze wewnątrzgrupowym są statystycznie nadreprezentowane w analizowanej zbiorowości. W socjologii podjęto wiele prób wskazania źródeł tej nadreprezentacji, tzn. opracowania mechanizmu wyjaśniającego, z czego ta nadreprezentacja wynika. Nie będę, rzecz jasna, omawiał tu wszystkich tych prób2, skupię się na jednej tylko propozycji, a mianowicie mechanizmie formowania się relacji społecznych przez „przyciąganie” członków grupy własnej albo osób podobnych do siebie ze względu na daną cechę. Wyczerpujący opis tego mechanizmu można znaleźć w pracach Johna Skvoretza (zob. np. tu i tu), ograniczę się więc do podania jedynie najistotniejszych informacji.
Przypuśćmy, że ze zbioru wszystkich par spełniających daną relację wybieramy losowo jedną i pytamy: „Jakie jest prawdopodobieństwo, że para ta ma charakter wewnątrzgrupowy, tzn. łączy osoby należące do tej samej kategorii społecznej?”3 Zgodnie z modelem przyciągania, relacja wewnątrzgrupowa mogła była uformować się na dwa sposoby: w wyniku wyboru celowego, polegającego na tym, że dana osoba preferuje członków własnej kategorii w stosunkach społecznych i w związku z tym ogranicza poszukiwania partnera właśnie do nich, lub losowego, polegającego na tym, że dana osoba nie ma żadnych preferencji odnośnie do przynależności swojego partnera, w związku z tym dobiera go losowo spośród wszystkich członków zbiorowości. Jeśli wybór partnera miał charakter celowy, wówczas relacja na pewno jest wewnątrzgrupowa. W przeciwnym razie, gdy wybór miał charakter losowy, relacja jest wewnątrzgupowa jedynie z losowym prawdopodobieństwem.
Niech \(\tau_i\) oznacza prawdopodobieństwo, że wybór partnera miał charakter celowy i niech \(t_i\) oznacza prawdopodobieństwo, iż osoba wybrana na partnera pochodzi z kategorii \(i\)-tej w sytuacji, gdy wybór miał charakter losowy. Wówczas częstość występowania relacji wewnątrzgrupowych w kategorii \(i\) dana jest wzorem: \[a_{ii} = \left[\tau_i + (1 - \tau_i)t_i\right]o_i,\quad i = 1,\ldots, m,\] gdzie \(o_i\) oznacza częstość, z jaką członkowie \(i\)-tej kategorii inicjują relacje społeczne, zaś \(m\) to liczba wszystkich kategorii.
W analogiczny sposób możemy wyznaczyć częstość występowania relacji między osobami z kategorii \(i\) i \(j\). Przypuśćmy zatem, że spośród wszystkich par spełniających daną relację społeczną losujemy jedną i pytamy: „Jakie jest prawdopodobieństwo, że łączy ona osoby z różnych grup społecznych?” Zgodnie z założeniami, na jakich opiera się model przyciągania, relacja międzygrupowa mogła była zawiązać się wyłącznie w wyniku doboru losowego, w związku z czym przewidywana przez model częstość występowania relacji między członkamii kategorii \(i\) i \(j\) wynosi: \[a_{ij} = (1 - \tau_i)t_jo_i, \quad i\neq j,\quad i,j = 1,\ldots,m\]
Częstość, z jaką członkowie \(i\)-tej kategorii inicjują relacje społeczne danego typu, wynosi \(a_{i.}\), natomiast prawdopodobieństwo wyboru na partnera osobę z \(i\)-tej kategorii w sytuacji, gdy wybór ma charakter losowy, wynosi: \[t_i = \frac{a_{.i} - \tau_i a_{i.}}{1 - \sum_{g = 1}^m \tau_g a_{g.}},\quad i = 1,\ldots,m\] gdzie \(a_{i.}\) oznacza proporcję w tym wierszu, \(a_{.i}\) proporcję w \(i\)-tej kolumnie, zaś \(m\) to liczba wszystkich kategorii danej charakterystyki.
Parametr \(\tau_i\) można interpretować w terminach siły skłonności do homofilii — lub jako odsetek osób „homofilnych” — w \(i\)-tej kategorii. Jest to jedyny parametr, którego nie znamy i który wymaga oszacowania; wszystkie pozostałe parametry możemy wyrazić w terminach częstości brzegowych i tego właśnie nieznanego parametru \(\tau_i\). Jak pokazuje Skvoretz, oszacowania parametrów \(\{\tau_i\}\) są wartości, które maksymalizują następującą funkcję wiarygodności: \[\ln(L) = \sum_{i = 1}^m\sum_{j = 1}^m x_{ij} \log(a_{ij}),\] gdzie \(x_{ij}\) oznacza obserwowaną liczebność par danego typu między osobami z kategorii \(i\)-tej i \(j\)-tej, zaś \(a_{ij}\) do częstości przewidywanej występowania tych par na podstawie modelu przyciągania. W kolejnej części pokażę, w jaki sposób możemy uzyskać oszacowania parametrów \(\{\tau_i\}\) korzystając z funkcji optim() w R.
Zacznę od określenia funkcji, której wartości chcę maksymalizować. Wykorzystuję w tym celu polecenia, które widać w okienku poniżej:
attract <- function(mat, tau) {
Row <- prop.table(rowSums(mat))
Col <- prop.table(colSums(mat))
target <- (Col - tau * Row)/(1 - sum(tau * Row))
pred <- mat
for (i in 1:nrow(mat)) {
for (j in 1:ncol(mat)) if (i == j)
pred[i, j] <- (tau[i] + (1 - tau[i]) * target[i]) *
Row[i] else pred[i, j] <- (1 - tau[i]) * target[j] * Row[i]
}
-sum(mat * log(pred))
}
Funkcja attract() wymaga, jak widzimy, podania dwóch argumentów: mat i tau. Pierwszy z nich to macierz kwadratowa zawierająca obserwowane liczebności (lub częstości) par łączących osoby z różnych kategorii wyróżnionych ze względu na pewną cechę, natomiast drugi z nich to wektor, którego długość musi być równa liczbie wierszy (lub kolumn) macierzy mat lub, mówiąc nieco inaczej, liczbie kategorii wspomnianej cechy. Funkcja attract wykorzystuje macierz obserwowaną mat do obliczenia częstości brzegowych w wierszach i kolumnach, Row i Col, a następnie w oparciu o te częstości oblicza wartości parametrów \(\{t_i\}\) według podanego wyżej wzoru. W kolejnym kroku funkcja attract() tworzy macierz częstości przewidywanych przez model, korzystając ze wzorów na \(a_{ii}\) oraz \(a_{ij}\) i wreszcie zwraca wartość funkcji wiarygodności \(L\) — a właściwie jej logarytmu naturalnego. A właściwie — liczbę przeciwną do logarytmu naturalnego funkcji wiarygodności, czyli wartość logarytmu tej funkcji ze znakiem ujemnym. Ponieważ optim() domyślnie minimalizuje wartość wskazanego kryterium, napisałem funkcję attract() w taki sposób, aby zwracała wartość równą \(-\ln(L)\), ponieważ maksymalizacja danej liczby daje dokładnie taki sam rezultat, jak minimalizacja liczby do niej przeciwnej.
Zanim pokażę, w jaki sposób dokonać minimalizacji funkcji attract() po parametrach \(\{\tau_i\}\) za pomocą optim(), jeszcze słowo komentarza. Zauważmy, że parametry te nie mogą przyjmować wartości dowolnej — zważywszy na ich interpretację w terminach odsetków czy prawdopodobieństw. Ze względu na tę interpretację, wartości oszacowań parametrów \(\{\tau_i\}\) muszą mieścić się między 0 a 1. Można jednak pokazać, że ich górna granica wynosi 1 tylko wówczas, gdy \(a_{i.} \leqslant a_{.i}\), tzn. gdy częstość brzegowa w \(i\)-tym wierszu jest nie większa niż częstość brzegowa w \(i\)-tej kolumnie. W przeciwnej sytuacji, gdy \(a_{i.} > a_{.i}\), górna granica parametru \(\tau_i\) jest równa \(a_{.i}/a_{i.}\). Polecenia poniżej definiują dolne i górne granice parametrów \(\{\tau_i\}\) dla macierzy obserwowanych liczebności confiding relations pokazanej na początku tej notatki; macierz tę nazwałem reth:
Row <- prop.table(rowSums(reth))
Col <- prop.table(colSums(reth))
l_bound <- rep(0, times = ncol(reth))
u_bound <- pmin(Col/Row, 1)
Zwróćmy uwagę na jeszcze jedną rzecz: gdy parametr \(\tau_i\) przyjmuje wartość maksymalną, wszystkie komórki w \(i\)-tym wierszu lub \(i\)-tej kolumnie, z wyjątkiem komórki na głównej przekątnej, są równe zeru. Logarytm naturalny jest niezdefiniowany dla zera, w konsekwencji wartość funkcji \(\ln(L)\) jest nieokreślona, gdy parametry \(\{\tau_i\}\) przyjmują najwyższą możliwą wartość. Aby uniknąć tego problemu, odejmę od górnej granicy tych parametrów pewną niewielką wartość.
Wykorzystanie optim() do znalezienia minimum funkcji attract() po parametrach \(\{\tau_i\}\) przy wspomnianych wyżej ograniczeniach widać w okienku poniżej:
optim(par = rep(0.001, times = 4), fn = attract, method = "L-BFGS-B", mat = reth,
lower = l_bound, upper = u_bound - 1e-09)
Kilka słów wyjaśnienia. Argument par określa początkowe wartości parametrów, których oszacowania chcemy znaleźć. Wartości te mogą być dowolne, aczkolwiek, gdy na poszukiwane parametry nałożone są ograniczenia — jak w naszym przypadku — owe wartości początkowe muszą te ograniczenia spełniać. Argument fn to funkcja, której wartość chcemy optymalizować (minimalizować), zaś argument method to nazwa algorytmu wykorzystanego do znalezienia optimum. Możliwych algorytmów jest kilka, wybrałem akurat L-BFGS-B, gdyż jako jedyny pozwala nakładać ograniczenia na parametry, których oszacowania chcemy uzyskać. Argumenty lower i upper to wektory określające, odpowiednio, dolne i górne granice tych parametrów. Zauważmy także, że argument mat jest argumentem dla funkcji attract(), której wartości chcemy maksymalizować, nie dla funkcji optim().
Wynik optymalizacji widać w okienku poniżej:
## $par
## [1] 0.90 0.84 0.59 0.52
##
## $value
## [1] 3135
##
## $counts
## function gradient
## 19 19
##
## $convergence
## [1] 0
##
## $message
## [1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"
Pierwszy element listy to wektor parametrów minimalizujących funkcję attract() (lub maksymalizujących wartość funkcji wiarygodności określonej powyżej). Z uzyskanych oszacowań wynika więc, że siła skłonności do homofilii, mierzona parametrem \(\tau_i\), przejawiała się z największą siłą wśród Białych, z najsłabszą zaś wśród osób z kategorii „Other”.
Dysponując oszacowaniami siły skłonności do homofilii możemy wyznaczyć wartości parametrów \(\{t_{i}\}\):
tau <- optimum$par
target <- (Col - tau * Row)/(1 - sum(tau * Row))
## White Black Hispanic Other
## 0.788 0.083 0.081 0.048
Z uzyskanych oszacowań wynika, że w przypadku, gdy wybór partnera ma charakter losowy (w opisanym wyżej sensie) w 79% przypadków partner zostanie wybrany z kategorii osób Białych.
Macierz liczebności przewidywanych przez model przyciągania wygląda następująco:
reth_pred <- reth
for (i in 1:nrow(reth)) {
for (j in 1:ncol(reth)) if (i == j)
reth_pred[i, j] <- (tau[i] + (1 - tau[i]) * target[i]) * Row[i] else reth_pred[i, j] <- (1 - tau[i]) * target[j] * Row[i]
}
reth_pred <- sum(reth) * reth_pred
| Subject/Alter | White | Black | Hispanic | Other | Sum |
|---|---|---|---|---|---|
| White | 3806 | 30.9 | 30.4 | 17.8 | 3885 |
| Black | 40 | 283.0 | 4.2 | 2.4 | 330 |
| Hispanic | 63 | 6.6 | 120.0 | 3.8 | 193 |
| Other | 24 | 2.5 | 2.5 | 34.0 | 63 |
| Sum | 3933 | 323.0 | 157.0 | 58.0 | 4471 |
Możemy teraz ocenić rozbieżność między liczebnościami obserwowanymi a przewidywanymi za pomocą statystyki \(X^2\) Pearsona:
sum((reth - reth_pred)^2/reth_pred)
## [1] 5.7
Model przyciągania ma cztery wolne parametry, a zatem ma o 4 stopnie swobody mniej niż model niezależności stochastycznej. Ponieważ liczba stopni swobody w przypadku modelu niezależności stochastycznej wynosi 9, w przypadku modelu przyciągania jest ona równa 5. Wartość \(p\) dla modelu przyciągania wynosi:
1 - pchisq(q = sum((reth - reth_pred)^2/reth_pred), df = 5)
## [1] 0.33
Jak widzimy, wartość \(p\) jest znacznie wyższa od wartości krytycznej 0,05, możemy więc uznać, że model jest dostatecznie dobrze dopasowany do danych.
Aby uzyskać błędy standardowe oszacowań zwracanych przez optim(), należy nieco zmodyfikować polecenie dla optim():
optimum <- optim(par = rep(0.001, times = 4), fn = attract, method = "L-BFGS-B",
mat = reth, lower = l_bound, upper = u_bound - 1e-09, hessian = TRUE)
Argument hessian to wartość logiczna określająca, czy optim() ma zwrócić macierz Hessa razem z oszacowaniami parametrów. Domyślnie, wartość tego argumentu jest ustawiona na FALSE, dlatego wcześniej jej nie otrzymaliśmy. Aby ją uzyskać, zmieniłem więc domyślną wartość na TRUE.
Macierz Hessa to macierz kwadratowa zawierająca wartości drugich pochodnych cząstkowych optymalizowanej funkcji po parametrach, których oszacowania chcemy uzyskać. Odwrotność macierzy Hessa stanowi, jak wynika z dyskusji w tym miejscu, oszacowanie macierzy kowariancji parametrów tej funkcji, a zatem elementy na głównej przekątnej odwrotności macierzy Hessa możemy wykorzystać do określenia ich wariancji. Macierz Hessa zwracana przez polecenie widoczne powyżej wygląda tak:
dimnames(optimum$hessian) <- dimnames(reth)
optimum$hessian
| White | Black | Hispanic | Other | |
|---|---|---|---|---|
| White | 2478 | 265 | 268 | 28 |
| Black | 265 | 3792 | -127 | -47 |
| Hispanic | 268 | -127 | 1135 | -25 |
| Other | 28 | -47 | -25 | 341 |
Jej odwrotność uzyskuje się następująco:
solve(optimum$hessian)
| White | Black | Hispanic | Other | |
|---|---|---|---|---|
| White | 4e-04 | 0e+00 | -1e-04 | 0e+00 |
| Black | 0e+00 | 3e-04 | 0e+00 | 0e+00 |
| Hispanic | -1e-04 | 0e+00 | 9e-04 | 1e-04 |
| Other | 0e+00 | 0e+00 | 1e-04 | 3e-03 |
Jak wspomniałem, elementy na głównej przekątnej macierzy widocznej w okinku powyżej zdają sprawę z wariancji oszacowań parametrów \(\{\tau_i\}\), a zatem pierwiastki kwadratowe z tych elementów będą zdawać sprawę z ich błędów standardowych:
sqrt(diag(solve(optimum$hessian)))
## White Black Hispanic Other
## 0.020 0.016 0.030 0.054
Tabela poniżej ponownie pokazuje oszawania wartości parametrów \(\{\tau_i\}\), tym razem z uwzględnieniem ich błędów standardowych i 95% przedziałów ufności:
| \(\hat{\tau_i}\) | \(SE(\hat{\tau_i}\)) | Dolna granica | Górna granica | |
|---|---|---|---|---|
| White | 0.90 | 0.02 | 0.86 | 0.94 |
| Black | 0.84 | 0.02 | 0.81 | 0.88 |
| Hispanic | 0.59 | 0.03 | 0.53 | 0.65 |
| Other | 0.52 | 0.05 | 0.41 | 0.62 |
Pojęcie wyrazistości w takim rozumieniu wprowadził do socjologii Peter M. Blau w swojej monografii Inequality and Heterogeneity: A Primitive Theory of Social Structure z 1977 r. Formalną definicję tego pojęcia i jej implikacje omawia John Skvoretz w swoim artykule w American Sociological Review z roku 1983. Ciekawą analizę pojęcia wyrazistości w kontekście częstości małżeństw między osobami z różnych kategorii etnicznych zawiera artykuł Terry C. Blum.↩
Przegląd różnych propozycji teoretycznych wyjaśniających ten problem można znaleźć w eseju przeglądowym Millera McPhersona, Lynn Smith-Lovin i Jamesa M. Cooka. Warto też zajrzeć do rozdziału Scotta Felda i Bernarda Grofmana w The Oxford Handbook of Analytical Sociology, do artykułu Johna Skvoretza z American Journal of Sociology oraz do eksperymentu przeprowadzonego przez Davida R. Schaefera. Nieco odmienne spojrzenie na problem homofilii prezentuje w swoim „adresie prezydenckim” Cecilia L. Ridgeway.↩
W tej części notatki opieram się na pracach Thomasa J. Fararo i przywoływanego wcześniej Johna Skvoretza (zob. np. tu i tu). Model przyciągania ma swoje korzenie w teorii sieci nielosowych (biased net theory), rozwijanej od lat 1950. przez Anatola Rapoporta (zob np. tu), a następnie zaadaptowanej do analizy sieci społecznych przez Fararo i Skvoretza. Zgodnie z teorią sieci nielosowych, relacje społeczne między jednostkami zawiązują się w wyniku procesu, który ma składowe losowe i systematyczne. Te drugie obejmują, między innymi, regułę wzajemności czy regułę przechodniości, a także regułę przejawiającą się w preferowaniu członków własnej kategorii w stosunkach społecznych.↩