Apa contoh collinearity sempurna dalam hal matriks desain ?
Saya ingin contoh di mana tidak dapat diperkirakan karena tidak dapat dibalik.(X'X)
Apa contoh collinearity sempurna dalam hal matriks desain ?
Saya ingin contoh di mana tidak dapat diperkirakan karena tidak dapat dibalik.(X'X)
Jawaban:
Berikut adalah contoh dengan 3 variabel, , dan , yang terkait dengan persamaan
di mana
Data tertentu adalah
y x1 x2
1 4.520866 1 2
2 6.849811 2 4
3 6.539804 3 6
Jadi jelas bahwa adalah kelipatan dari maka kita memiliki collinearity yang sempurna.
Kita dapat menulis model sebagai
dimana:
Jadi kita punya
Sekarang kita menghitung determinan :
Di R kita bisa menunjukkan ini sebagai berikut:
> x1 <- c(1,2,3)
buat x2
, kelipatanx1
> x2 <- x1*2
buat y, kombinasi linear x1
, x2
dan keacakan
> y <- x1 + x2 + rnorm(3,0,1)
amati itu
> summary(m0 <- lm(y~x1+x2))
gagal memperkirakan nilai untuk x2
koefisien:
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.9512 1.6457 2.401 0.251
x1 1.0095 0.7618 1.325 0.412
x2 NA NA NA NA
Residual standard error: 0.02583 on 1 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 0.9999
F-statistic: 2.981e+04 on 1 and 1 DF, p-value: 0.003687
Matriks model adalah:
> (X <- model.matrix(m0))
(Intercept) x1 x2
1 1 1 2
2 1 2 4
3 1 3 6
Jadi adalah
> (XXdash <- X %*% t(X))
1 2 3
1 6 11 16
2 11 21 31
3 16 31 46
yang tidak dapat dibalik, seperti yang ditunjukkan oleh
> solve(XXdash)
Error in solve.default(XXdash) :
Lapack routine dgesv: system is exactly singular: U[3,3] = 0
Atau:
det (XXdash) [1] 0
Berikut adalah beberapa skenario yang cukup umum menghasilkan multikolinieritas sempurna, yaitu situasi di mana kolom-kolom dari matriks desain bergantung secara linear. Ingat dari aljabar linier bahwa ini berarti ada kombinasi linier kolom-kolom dari matriks desain (yang koefisiennya tidak semuanya nol) yang sama dengan nol. Saya telah memasukkan beberapa contoh praktis untuk membantu menjelaskan mengapa perangkap ini sering terjadi - saya telah menemui hampir semuanya!
Satu variabel adalah kelipatan dari yang lain , terlepas dari apakah ada istilah intersep: mungkin karena Anda telah mencatat variabel yang sama dua kali menggunakan unit yang berbeda (misalnya "panjang dalam sentimeter" tepatnya 100 kali lebih besar dari "panjang dalam meter") atau karena Anda telah mencatat variabel satu kali sebagai angka mentah dan sekali sebagai proporsi atau persentase, ketika penyebutnya tetap (mis. "area cawan petri dijajah" dan "persentase cawan petri dijajah" akan menjadi kelipatan satu sama lain dengan tepat jika area tersebut dari setiap cawan petri adalah sama). Kami memiliki collinearity karena jika mana dan adalah variabel (kolom dari matriks desain Anda) dan adalah konstanta skalar, w x a 1 ( → w ) - a ( → x )adalah kombinasi linear dari variabel yang sama dengan nol.
Ada istilah intersep dan satu variabel berbeda dari yang lain dengan konstanta : ini akan terjadi jika Anda memusatkan variabel ( ) dan menyertakan mentah dan terpusat dalam regresi Anda. Ini juga akan terjadi jika variabel Anda diukur dalam sistem unit yang berbeda yang berbeda dengan konstanta, misalnya jika adalah "suhu dalam kelvin" dan sebagai "suhu dalam ° C" maka . Jika kita menganggap istilah intersep sebagai variabel yang selalu (direpresentasikan sebagai kolom yang, , dalam matriks desain) maka memiliki untuk beberapa konstanta x w w x w i = x i + 273.15 1 → 1 n w i = x i + k k 1 ( → w ) - 1 ( → x ) - k ( → 1 n ) w x 1berarti adalah kombinasi linear dari kolom , dan dari matriks desain yang sama dengan nol.
Ada istilah intersep dan satu variabel diberikan oleh transformasi affine dari yang lain : yaitu Anda memiliki variabel dan , terkait dengan mana dan adalah konstanta. Misalnya, ini terjadi jika Anda membakukan variabel sebagai dan menyertakan variabel mentah dan standar dalam regresi Anda. Ini juga terjadi jika Anda merekam sebagai "suhu dalam ° F" dan sebagai "suhu dalam ° C", karena sistem unit tersebut tidak berbagi nol yang sama tetapi terkait dengan. Atau dalam konteks bisnis, misalkan ada biaya tetap (mis. Mencakup pengiriman) untuk setiap pesanan, serta biaya per unit yang terjual; maka jika adalah biaya pesanan dan adalah jumlah unit yang dipesan, kita memiliki . Kombinasi linear bunga adalah . Perhatikan bahwa jika , maka (3) termasuk (2) sebagai kasus khusus; jika , maka (3) termasuk (1) sebagai kasus khusus.
Ada istilah intersep dan jumlah beberapa variabel ditetapkan (misalnya dalam "dummy variable trap" yang terkenal) : misalnya jika Anda memiliki "persentase pelanggan yang puas", "persentase pelanggan yang tidak puas" dan "persentase pelanggan yang tidak puas atau tidak puas "maka ketiga variabel ini akan selalu (kecuali kesalahan pembulatan) berjumlah 100. Salah satu dari variabel ini - atau sebagai alternatif, istilah intersep - perlu dihapus dari regresi untuk mencegah kolinearitas. "Dummy variable trap" terjadi ketika Anda menggunakan variabel indikator (lebih umum tetapi kurang bermanfaat disebut "boneka") untuk setiap tingkat yang mungkin dari variabel kategori. Sebagai contoh, misalkan vas diproduksi dalam skema warna merah, hijau atau biru. Jika Anda merekam variabel kategori "red
green
dan blue
akan menjadi variabel biner, disimpan sebagai 1
untuk "ya" dan 0
untuk "tidak") maka untuk setiap vas hanya satu variabel yang akan menjadi satu, dan karenanya red + green + blue = 1
. Karena ada vektor yang untuk istilah intersep, kombinasi linear 1(red) + 1(green) + 1(blue) - 1(1) = 0
. Obat yang biasa digunakan di sini adalah dengan menghentikan intersep, atau menjatuhkan salah satu indikator (mis. Tinggalkan red
) yang menjadi garis dasar atau tingkat referensi. Dalam hal ini, koefisien regresi untuk green
akan menunjukkan perubahan dalam respon rata-rata terkait dengan beralih dari vas merah ke yang hijau, memegang variabel penjelas lainnya konstan.
Setidaknya ada dua himpunan bagian variabel, masing-masing memiliki jumlah tetap , terlepas dari apakah ada istilah intersep: misalkan vas di (4) diproduksi dalam tiga ukuran, dan variabel kategorikal untuk ukuran disimpan sebagai tiga variabel indikator tambahan . Kami akan melakukannya large + medium + small = 1
. Maka kita memiliki kombinasi linear 1(large) + 1(medium) + 1(small) - 1(red) - 1(green) - 1(blue) = 0
, bahkan ketika tidak ada istilah intersep. Dua himpunan bagian tidak perlu berbagi jumlah yang sama, misalnya jika kita memiliki variabel penjelas sedemikian sehingga setiap dan lalu kemudian .
Satu variabel didefinisikan sebagai kombinasi linear dari beberapa variabel lain : misalnya, jika Anda merekam panjang , lebar dan perimeter dari setiap persegi panjang, maka sehingga kita memiliki kombinasi linear . Contoh dengan istilah intersep: misalkan bisnis pesanan melalui surat memiliki dua lini produk, dan kami mencatat bahwa pesanan terdiri dari dari produk pertama dengan biaya unit dan yang kedua dengan biaya unit , dengan biaya pengiriman tetap . Jika kami juga memasukkan biaya pemesanan sebagai variabel penjelas, maka dan sebagainya . Ini adalah generalisasi yang jelas dari (3). Ini juga memberi kita cara berpikir yang berbeda tentang (4): begitu kita tahu semua bar salah satu bagian dari variabel yang jumlahnya tetap, maka sisanya adalah pelengkap mereka sehingga dapat dinyatakan sebagai kombinasi linear dari mereka dan jumlah mereka . Jika kita tahu 50% pelanggan puas dan 20% tidak puas, maka 100% - 50% - 20% = 30% harus tidak puas atau tidak puas; jika kita tahu vasnya bukan merah ( ) dan itu hijau ( ) maka kita tahu itu bukan biru ( ).red=0
green=1
blue = 1(1) - 1(red) - 1(green) = 1 - 0 - 1 = 0
Satu variabel konstan dan nol , terlepas dari apakah ada istilah intersep: dalam penelitian observasional, variabel akan konstan jika sampel Anda tidak menunjukkan variasi yang cukup (apa pun!). Mungkin ada variasi dalam populasi yang tidak ditangkap dalam sampel Anda, misalnya jika ada nilai modal yang sangat umum: mungkin ukuran sampel Anda terlalu kecil dan karena itu tidak mungkin untuk memasukkan nilai apa pun yang berbeda dari mode, atau pengukuran Anda kurang akurat untuk mendeteksi variasi kecil dari mode. Atau, mungkin ada alasan teoritis untuk kurangnya variasi, terutama jika Anda mempelajari sub-populasi. Dalam studi tentang properti build-baru di Los Angeles, tidak akan mengejutkan bahwa setiap titik data memiliki AgeOfProperty = 0
danState = California
! Dalam studi eksperimental, Anda mungkin telah mengukur variabel independen yang berada di bawah kendali eksperimental. Jika salah satu variabel penjelas Anda menjadi konstan dan nol, maka kami segera memiliki kombinasi linear (dengan koefisien nol untuk variabel lainnya) adalah .
Ada istilah intersep dan setidaknya satu variabel konstan : jika konstan sehingga setiap , maka kombinasi linear .
Setidaknya dua variabel konstan , terlepas dari apakah ada istilah intersep: jika setiap dan , maka kombinasi linear .
Jumlah kolom dari matriks desain, , melebihi jumlah baris, : bahkan ketika tidak ada hubungan konseptual antara variabel Anda, secara matematis diperlukan bahwa kolom dari matriks desain Anda akan tergantung secara linear ketika . Ini hanya tidak mungkin untuk memiliki linear vektor bebas dalam ruang dengan sejumlah dimensi lebih rendah dari : misalnya, sementara Anda dapat menarik dua vektor independen pada selembar kertas (bidang dua dimensi,) setiap vektor lebih lanjut yang digambar pada halaman harus berada dalam rentangnya, dan karenanya merupakan kombinasi linear dari mereka. Perhatikan bahwa istilah intersep menyumbang kolom yang ke matriks desain, jadi hitung sebagai salah satu kolom Anda . (Skenario ini sering disebut masalah " besar , kecil ": lihat juga pertanyaan CV terkait ini .)
Contoh data dengan kode R.
Setiap contoh memberikan desain matriks , matriks (perhatikan ini selalu persegi dan simetris) dan . Perhatikan bahwa jika adalah singular (determinan nol, maka tidak dapat dibalik) maka kita tidak dapat memperkirakan . Kondisi bahwa menjadi non-singular setara dengan kondisi bahwa memiliki peringkat penuh sehingga kolomnya independen secara linear: lihat pertanyaan SE Matematika ini , atau yang ini dan yang sebaliknya .
(1) Satu kolom adalah kelipatan dari yang lain
# x2 = 2 * x1
# Note no intercept term (column of 1s) is needed
X <- matrix(c(2, 4, 1, 2, 3, 6, 2, 4), ncol = 2, byrow=TRUE)
X
# [,1] [,2]
#[1,] 2 4
#[2,] 1 2
#[3,] 3 6
#[4,] 2 4
t(X) %*% X
# [,1] [,2]
#[1,] 18 36
#[2,] 36 72
round(det(t(X) %*% X), digits = 9)
#0
(2) Istilah intersept dan satu variabel berbeda dari yang lain dengan konstanta
# x1 represents intercept term
# x3 = x2 + 2
X <- matrix(c(1, 2, 4, 1, 1, 3, 1, 3, 5, 1, 0, 2), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 2 4
#[2,] 1 1 3
#[3,] 1 3 5
#[4,] 1 0 2
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 4 6 14
#[2,] 6 14 26
#[3,] 14 26 54
round(det(t(X) %*% X), digits = 9)
#0
# NB if we drop the intercept, cols now linearly independent
# x2 = x1 + 2 with no intercept column
X <- matrix(c(2, 4, 1, 3, 3, 5, 0, 2), ncol = 2, byrow=TRUE)
X
# [,1] [,2]
#[1,] 2 4
#[2,] 1 3
#[3,] 3 5
#[4,] 0 2
t(X) %*% X
# [,1] [,2]
#[1,] 14 26
#[2,] 26 54
# Can you see how this matrix is related to the previous one, and why?
round(det(t(X) %*% X), digits = 9)
#80
# Non-zero determinant so X'X is invertible
(3) Istilah intersept dan satu variabel adalah transformasi affine dari yang lain
# x1 represents intercept term
# x3 = 2*x2 - 3
X <- matrix(c(1, 2, 1, 1, 1, -1, 1, 3, 3, 1, 0, -3), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 2 1
#[2,] 1 1 -1
#[3,] 1 3 3
#[4,] 1 0 -3
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 4 6 0
#[2,] 6 14 10
#[3,] 0 10 20
round(det(t(X) %*% X), digits = 9)
#0
# NB if we drop the intercept, cols now linearly independent
# x2 = 2*x1 - 3 with no intercept column
X <- matrix(c(2, 1, 1, -1, 3, 3, 0, -3), ncol = 2, byrow=TRUE)
X
# [,1] [,2]
#[1,] 2 1
#[2,] 1 -1
#[3,] 3 3
#[4,] 0 -3
t(X) %*% X
# [,1] [,2]
#[1,] 14 10
#[2,] 10 20
# Can you see how this matrix is related to the previous one, and why?
round(det(t(X) %*% X), digits = 9)
#180
# Non-zero determinant so X'X is invertible
(4) Istilah intersepsi dan jumlah beberapa variabel ditetapkan
# x1 represents intercept term
# x2 + x3 = 10
X <- matrix(c(1, 2, 8, 1, 1, 9, 1, 3, 7, 1, 0, 10), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 2 8
#[2,] 1 1 9
#[3,] 1 3 7
#[4,] 1 0 10
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 4 6 34
#[2,] 6 14 46
#[3,] 34 46 294
round(det(t(X) %*% X), digits = 9)
#0
# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 = 10 with no intercept column
X <- matrix(c(2, 8, 1, 9, 3, 7, 0, 10), ncol = 2, byrow=TRUE)
X
# [,1] [,2]
#[1,] 2 8
#[2,] 1 9
#[3,] 3 7
#[4,] 0 10
t(X) %*% X
# [,1] [,2]
#[1,] 14 46
#[2,] 46 294
# Can you see how this matrix is related to the previous one, and why?
round(det(t(X) %*% X), digits = 9)
#2000
# Non-zero determinant so X'X is invertible
(4a) Istilah intersep dengan trap variabel dummy
# x1 represents intercept term
# x2 + x3 + x4 = 1
X <- matrix(c(1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0), ncol = 4, byrow=TRUE)
X
# [,1] [,2] [,3] [,4]
#[1,] 1 0 0 1
#[2,] 1 1 0 0
#[3,] 1 0 1 0
#[4,] 1 1 0 0
#[5,] 1 0 1 0
t(X) %*% X
# [,1] [,2] [,3] [,4]
#[1,] 5 2 2 1
#[2,] 2 2 0 0
#[3,] 2 0 2 0
#[4,] 1 0 0 1
# This matrix has a very natural interpretation - can you work it out?
round(det(t(X) %*% X), digits = 9)
#0
# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 + x3 = 1 with no intercept column
X <- matrix(c(0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 0 0 1
#[2,] 1 0 0
#[3,] 0 1 0
#[4,] 1 0 0
#[5,] 0 1 0
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 2 0 0
#[2,] 0 2 0
#[3,] 0 0 1
# Can you see how this matrix is related to the previous one?
round(det(t(X) %*% X), digits = 9)
#4
# Non-zero determinant so X'X is invertible
(5) Dua himpunan bagian variabel dengan jumlah tetap
# No intercept term needed
# x1 + x2 = 1
# x3 + x4 = 1
X <- matrix(c(0,1,0,1,1,0,0,1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0), ncol = 4, byrow=TRUE)
X
# [,1] [,2] [,3] [,4]
#[1,] 0 1 0 1
#[2,] 1 0 0 1
#[3,] 0 1 1 0
#[4,] 1 0 0 1
#[5,] 1 0 1 0
#[6,] 0 1 1 0
t(X) %*% X
# [,1] [,2] [,3] [,4]
#[1,] 3 0 1 2
#[2,] 0 3 2 1
#[3,] 1 2 3 0
#[4,] 2 1 0 3
# This matrix has a very natural interpretation - can you work it out?
round(det(t(X) %*% X), digits = 9)
#0
(6) Satu variabel adalah kombinasi linear dari yang lain
# No intercept term
# x3 = x1 + 2*x2
X <- matrix(c(1,1,3,0,2,4,2,1,4,3,1,5,1,2,5), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 1 3
#[2,] 0 2 4
#[3,] 2 1 4
#[4,] 3 1 5
#[5,] 1 2 5
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 15 8 31
#[2,] 8 11 30
#[3,] 31 30 91
round(det(t(X) %*% X), digits = 9)
#0
(7) Satu variabel konstan dan nol
# No intercept term
# x3 = 0
X <- matrix(c(1,1,0,0,2,0,2,1,0,3,1,0,1,2,0), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 1 0
#[2,] 0 2 0
#[3,] 2 1 0
#[4,] 3 1 0
#[5,] 1 2 0
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 15 8 0
#[2,] 8 11 0
#[3,] 0 0 0
round(det(t(X) %*% X), digits = 9)
#0
(8) Istilah intersept dan satu variabel konstan
# x1 is intercept term, x3 = 5
X <- matrix(c(1,1,5,1,2,5,1,1,5,1,1,5,1,2,5), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 1 5
#[2,] 1 2 5
#[3,] 1 1 5
#[4,] 1 1 5
#[5,] 1 2 5
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 5 7 25
#[2,] 7 11 35
#[3,] 25 35 125
round(det(t(X) %*% X), digits = 9)
#0
(9) Dua variabel konstan
# No intercept term, x2 = 2, x3 = 5
X <- matrix(c(1,2,5,2,2,5,1,2,5,1,2,5,2,2,5), ncol = 3, byrow=TRUE)
X
# [,1] [,2] [,3]
#[1,] 1 2 5
#[2,] 2 2 5
#[3,] 1 2 5
#[4,] 1 2 5
#[5,] 2 2 5
t(X) %*% X
# [,1] [,2] [,3]
#[1,] 11 14 35
#[2,] 14 20 50
#[3,] 35 50 125
round(det(t(X) %*% X), digits = 9)
#0
(10)
# Design matrix has 4 columns but only 3 rows
X <- matrix(c(1,1,1,1,1,2,4,8,1,3,9,27), ncol = 4, byrow=TRUE)
X
# [,1] [,2] [,3] [,4]
#[1,] 1 1 1 1
#[2,] 1 2 4 8
#[3,] 1 3 9 27
t(X) %*% X
# [,1] [,2] [,3] [,4]
#[1,] 3 6 14 36
#[2,] 6 14 36 98
#[3,] 14 36 98 276
#[4,] 36 98 276 794
round(det(t(X) %*% X), digits = 9)
#0
Ada banyak cara sehingga satu kolom data akan menjadi fungsi linier dari data Anda yang lain. Beberapa di antaranya jelas (mis. Meter vs sentimeter) sementara yang lain bisa lebih halus (mis. Usia dan tahun sekolah untuk anak kecil).
Catatan notasi: Misalkan menunjukkan kolom pertama , kolom kedua dll ..., dan menunjukkan vektor yang, yang termasuk dalam matriks desain X jika Anda memasukkan konstanta dalam regresi Anda. X x 2 1