Kaavan w * Cov * t (w) avulla voin luoda negatiivisen salkun varianssin. Mitkä ovat negatiivisen varianssin seuraukset? Pitäisikö minun vain olettaa, että se on nolla? Negatiivinen varianssi on hankala, koska ei voida ottaa negatiivisen luvun neliöjuuria (arvioida keskihajonta) turvautumatta kuvitteellisiin lukuihin. Se ei myöskään näytä olevan yhdenmukainen varianssikaavan kanssa, joka on keskiarvon neliöpoikkeamien keskiarvo, koska neliöinti tuottaa aina positiivisen luvun.
Negatiivinen varianssi on todellisen ongelmani jäävuoren huippu. Minulla on kovarianssimatriisi, joka edustaa (ennakko) odotuksia. Minulla ei ole eikä halua käyttää historiallisia tuottoja. Minulla on 23 omaisuusluokkaa. Olen pelannut jonkin verran salkun optimointia (ei tarkoita varianssia). Keksin joukon painoja (w) optimaalista salkua varten. Minulla on myös joukko painoja vertailuarvolleni (b). Lasken seurantavirhe. Seurantavirheen neliön tulisi olla (w-b) * cov * t (w-b). Tämä on negatiivista.
Lisäksi painoni eroavat riittävästi vertailuarvostani, että tarkastus ja intuitio kertovat minulle, että nolla on väärä vastaus. Tämän edelleen todistamiseksi tuotin 1000 satunnaista tuottoa (käyttäen tuottoa koskevia oletuksiani ja kovarianssimatriisia) omaisuusluokille ja laskin 1000 tuottoa w: lle ja b: lle. Sitten laskin eron ja sitten otin varianssin. Ja koska minulla on tietokone, toistan tämän 1000 kertaa. Pienin seurantavirhe (erojen varianssin neliöjuuri) oli 2,7%. Joten olen varma, että varianssin tulee olla positiivinen.
FWIW, minulla on 23×23 kovarianssimatriisi. Suurin osa siitä tulee julkisesta lähteestä ( Tutkimus Tytäryhtiöt ). Lisään kunnallisia joukkovelkakirjoja. Olen melko tyytyväinen kovarianssimatriisiin siinä muussa käyttötarkoituksessa – esim. w: n ja b: n salkun vaihtelu näyttää olevan suuri.
Ymmärrän kaiken käsityksen siitä, mitä voin tehdä väärin joko laskennallisesti tai tulkinnan perusteella. Kaikki työni ovat R-ryhmässä ja voisin jakaa joitain tietoja ja koodeja.
Kommentit
- Matriisisi ei ole puolidefiniitti positiivinen, joten se ei ole kovarianssimatriisi. Se on yksi ongelma ”manuaalisesti” suunnitelluilla ”kovarianssimatriiseilla”. On olemassa tapoja luoda oikeutettu kovarianssimatriisi, joka on ”lähellä” (jossain etäisyydessä) matriisistasi.
- Voitteko lähettää var / cov-matriisisi tiedot? Kuten yllä olevasta kommentista käy ilmi, on erittäin todennäköistä, että se ei ole positiivinen puolitarkka.
Vastaa
Kuten huomautin Muiden käyttäjien esittämät suunnitellut kovarianssimatriisit eivät näennäisesti ole positiivisia-tarkkoja, ja siksi saat tämän oudon käyttäytymisen.
Huomaa, että tämä ei ole vain matemaattinen ongelma, vaan taloudellinen. p> Katsokaa tätä leluesimerkkinä: Jos A ja B korreloivat voimakkaasti negatiivisesti (sanovat -1), ne eivät voi molempia korreloi negatiivisesti (jälleen -1) kolmanteen C. Voit suunnitella (= kirjoittaa ylös) sellaisen matriisin, mutta tätä ei voi kohdata oikeassa matematiikassa tai tosielämässä.
Mitä voit tehdä:
- Valitse ei-negatiiviset varianssit jokaiselle omaisuudelle $ V = diag (v_1, v_2, \ ldots, v_n) $
- valitse positiivisen määritelty matriisi korrelaatioille $ C $
- Laske $ Cov = \ sqrt {V} C \ sqrt {V} $, missä neliöjuuri on komponenttikohtaisesti.
Kolmannen vaiheen laskutoimitusta käsitellään osoitteessa stack.overflow . Paketti corpcor tarjoaa tapoja pienentää kovariansseja valittuihin kohteisiin ja tarjoaa positiivisen tarkkuuden tarkistuksia.
Funktio make.positive.definite
on saatavana, joka löytää lähimmän (valitussa mielessä) positiivisen tarkan matriisin jollekin annetulle.
Vastaa
Kuten Ivan huomautti kommentissaan, matriisisi ei ole kelvollinen kovarianssimatriisi. Toisin sanoen ei ole olemassa tietojoukkoa (täydellisillä havainnoilla), josta olisit voinut arvioida tällaisen kovarianssimatriisin.
Yksinkertaisin tapa korjata tällainen matriisi on korvata matriisin negatiiviset ominaisarvot nollilla. . Tämä menetelmä on toteutettu funktiossa repairMatrix
R-paketissa NMOF
, jonka pidän yllä.
Vastaus
Ivanin kommentti on hyvä vastaus. Lisään jotain, mutta luon lähinnä vastauksen kommentin sijaan varmistaaksesi, että hakutuloksissa näkyy vastaus. Kovarianssimatriisini pitäisi olla positiivinen puolitarkka. Kuten ymmärrän, tämä tarkoittaa karkeasti sitä, että se on kuin ei-negatiivinen luku. Kun kerrot sen, saat nollan tai jotain samaa merkkiä.Tässä on linkki lyhyeen selitykseen positiivisesta puolitarkasta ja positiivisesta tarkasta , jonka pidin hyödyllisenä. Kiitos Ivan.
Kommentit
- Tämä ei ole oikein. Jos haluat tarkistaa sen, matriisi on puolitarkka positiivinen, sinulla on useita vaihtoehtoja, joista on helpoin tarkistaa, että kaikki ominaisarvot ovat positiivisia. Toinen hyvä vaihtoehto on tarkistaa, ovatko sen johtavat alaikäiset kaikki positiivisia. Matlab voi tarkistaa sen sekunnin murto-osassa.
- Positiivinen puolitarkka matriisi tarkoittaa, että $ x ' \ Sigma x $ ei ole negatiivinen, esimerkiksi kaikki todelliset $ x $. Positiivisen määritetyn matriisin osalta $ x ' \ Sigma x $ on ehdottomasti suurempi kuin nolla.