Springen naar inhoud

regressie met een spatiale wegingsmatrix



  • Log in om te kunnen reageren

#1

motionpictures88

    motionpictures88


  • >100 berichten
  • 197 berichten
  • Ervaren gebruiker

Geplaatst op 10 februari 2013 - 11:40

Voor mijn thesis moet ik een regressie uitvoeren met een spatiale matrix. Het is de bedoeling dat ik de verklarende variabelen in mijn regressievergelijking vermenigvuldig met een binaire wegingsmatrix. Ik heb een .gal, .gwt en .xlsx bestandje waarin van iedere Belgische stad de afstand t.o.v. alle andere belgische steden staat. Dit zou ik willen inlezen in stata of matlab met de bedoeling voor iedere stad een matrix te hebben die de waarde 1 aanneemt als een andere gemeente een buurgemeente is en de waarde 0 als de andere gemeente geen buurgemeente is. Weet er iemand hoe ik hieraan begin?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Jan van de Velde

    Jan van de Velde


  • >5k berichten
  • 44881 berichten
  • Moderator

Geplaatst op 12 februari 2013 - 08:38

Opmerking moderator :

Iemand die hier een handje kan toesteken?
ALS WIJ JE GEHOLPEN HEBBEN....
help ons dan eiwitten vouwen, en help mee ziekten als kanker en zo te bestrijden in de vrije tijd van je chip...
http://www.wetenscha...showtopic=59270

#3

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 12 februari 2013 - 10:08

Kan je dit niet gebruiken: info download.
Als ik zo even op Google zoek dan zie ik dat die files uit GeoDa gewoon een tekstformaat zijn. Je kan die eventueel inlezen met Stata/MATLAB en zelf parsen om er de nodige info uit te halen.

#4

motionpictures88

    motionpictures88


  • >100 berichten
  • 197 berichten
  • Ervaren gebruiker

Geplaatst op 17 februari 2013 - 11:31

hartelijk dank voor uw hulp!

Als ik suggestie toepas krijg ik het volgende van stata

spwmatrix gal using C:\stata\bestand.gal, wname(wegingsmatrix)
J(): 3900 unable to allocate real <tmp>[93090,93090]
CalcSPweightM(): - function returned error
<istmt>: - function returned error
r(3900);


Enig idee wat ik verkeerd doe? Ik moet zeggen dat ik bitter weinig ken van programmeren en stata en matlab enkel tegenkom in het kader van mijn thesis. (Ik weet bvb niet wat parsen is)

Wat zit er in mijn gal-bestandje:

Er zijn 589 gemeenten in België(geïdentificeerd volgens NIS-code). Van elk van die gemeenten zit de afstand erin t.o.v. alle andere gemeenten. Er zitten dus 589x589 elementen in die matrix.

Ik heb zowel een gal, gwt als excel bestandje met dezelfde info. Ik weet ook niet hoe ik één van die bestanden kan openen in geoda.

#5

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 17 februari 2013 - 13:16

Ik ken zelf stata en geoda niet dus daar kan ik je niet mee helpen. Ik ben dan ook niet echt bekend met die formaten. Met MATLAB kan ik je wel helpen.

Is het mogelijk om van de Excel versie naar CSV formaat te gaan? Dat staat voor "comma separated values".
Je kan in Excel normaal zeggen 'Save as' en daar 'csv' kiezen.

Het bestand zou er dan als volgt moeten uitzien als je het zou openen in kladblok:
NIS,afstand,afstand,...,afstand
NIS,afstand,afstand,...,afstand
...
NIS,afstand,afstand,...,afstand
En dat kan je dan in MATLAB direct inlezen via het commando csvread(filename)

#6

motionpictures88

    motionpictures88


  • >100 berichten
  • 197 berichten
  • Ervaren gebruiker

Geplaatst op 17 februari 2013 - 14:58

Nogmaals bedankt voor uw zeer welgekomen hulp.

Ik heb dat excel bestandje eens goed bekeken. Blijkbaar is er toch geen NIS gebruikt. Elke gemeente draagt gewoon een nr. van 1-589.

Het ziet er als volgt uit:

1,2,afstand
1,3,afstand...
1,589,afstand
2,1,afstand


Voor de geïnteresseerden, dit is wat ik wil bekomen:

More specifically we create a spatial weight
matrix W¼{w-ij, i, j¼1 . . . 308} where w-ij is one if
i and j are border sharing municipalities and is zero
otherwise. The spatial weight matrix is then rowstandardized
(such that the row elements sum up to
one). We then pre-multiply the vector of tax rates
with the spatial weight matrix. This means we use the
unweighted average of LIT and LPT rates in bordersharing
municipalities as our neighbour variables.

Veranderd door motionpictures88, 17 februari 2013 - 15:07


#7

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 17 februari 2013 - 16:32

Ik ben toevallig ook net aan het prutsen met Excel naar MATLAB en er is een commando xlsread dat je kan gebruiken.

A = xlsread('filenaam',1)
zou alles van je eerste werkblad in de matrix A moeten zetten.
Die zal dan (589*589)x3 zijn van formaat.
Uiteindelijk zijn enkel de afstand waarden belangrijk zeker?
Ik stel dan voor dat je die eruit filtert via
afstanden = A(:,3)
Dat is dan een kolommatrix van (589*589)x1, maar je wil daar uiteraard een 589x589 matrix uithalen. MATLAB heeft daar een commando reshape voor:
W = reshape(afstanden,589,589)

Nu heb je dus een matrix W met de volgende informatie: gemeente i is op een afstand W(i,j) van gemeente j. De matrix zal dan waarschijnlijk ook symmetrisch zijn.

Op basis van deze matrix kan je dan volgens mij de nodige wegingsmatrix opstellen.
Ik neem aan dat 2 gemeenten aan elkaar grenzen als de afstand ertussen gelijk is aan 0?

Kan je hiermee verder?

#8

motionpictures88

    motionpictures88


  • >100 berichten
  • 197 berichten
  • Ervaren gebruiker

Geplaatst op 17 februari 2013 - 17:31

Dit is precies de praktische info die ik nodig had. Hartelijk bedankt. Voor de uitslag van de ultieme test heb ik nog wat werk voor de boeg. In de loop van de week laat ik hier nog iets weten of het mij gelukt is.

#9

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 17 februari 2013 - 18:33

Mooi, veel succes nog :)






Also tagged with one or more of these keywords: wiskunde

0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures