Как решить проблему сингулярности в двухэтапной оценке хекита с помощью пакета sampleselection? - PullRequest
0 голосов
/ 15 апреля 2019

Я хочу сделать двухэтапную оценку хекита с помощью пакета sampleselection.Цель состоит в том, чтобы оценить log (заработную плату).Заработная плата для людей, которые не работают, 0 кодируется.У меня проблема с 3 переменными в уравнении результата.Без этих переменных оценка работает.Если я добавляю только одну из этих переменных в выходное уравнение, я получаю сообщение об ошибке:

Ошибка в solve.default (crossprod (xMat)): процедура Лапака dgesv: система точно сингулярна: U [10,10] = 0

Переменными являются Branche, öffentlicherDienst и Unternehmengroesse.Все они категоричны и заметны только для трудящихся.Для людей, которые не работают, переменные кодируются с помощью ,, BrancheNotObservable ,, и т. Д.

Если я делаю оценку хеккита вручную с помощью переменной 3, она работает нормально, и я не получаю ошибку.Я оцениваю пробную модель, вычисляю коэффициент обратной мельницы и делаю оценку, где коэффициент обратной мельницы является дополнительной переменной.

Вот как кодируются 3 переменные:

 table(trainSet2015$Unternehmengroesse)


  [-2] trifft nicht zu           [1] Unter  5           [2] 5 bis 10 
                  2773                    203                    388 
   [3] 11 bis unter 20   [6] 20 bis unter 100  [7] 100 bis unter 200 
                   448                   1000                    525 
[9] 200 bis unter 2000     [10] 2000 und mehr 
                  1326                   1757 
table(trainSet2015$öffenticherDienst)

      [1] Ja     [2] Nein keine Angabe 
        1656         3991         2773 
table(trainSet2015$Branche)

                                    Andere Industrien 
                                                  214 
                            Banken und Versicherungen 
                                                  283 
                                  Bergbau und Energie 
                                                  218 
                    Chemische Industrie, Holz, Papier 
                                                  301 
                                Groß-und Einzelhandel 
                                                  509 
                                        keine Branche 
                                                 2773 
                                             Kleidung 
                                                   23 
                            Land- und Forstwirtschaft 
                                                  181 
      Maschinenbau (darunter auch Automobilindustrie) 
                                                  478 
             private und öffentliche Dienstleistungen 
                                                 2519 
Ton, Steine, Erden, Bau,Eisen, Stahl, Schwerindustrie 
                                                  610 
                     Zug, Post, Kommunikation,Verkehr 
                                                  311`

вот код функции heckit

heckit(Partizipation ~  Alter + Familienstand + Geschlecht + 
                   Migrationshintergrund + ArbeitsmarkterfahrungVollzeit +
                   I((ArbeitsmarkterfahrungVollzeit^2)/100) +
                   ArbeitsmarkterfahrungTeilzeit +  Bundesland
                 + I((ArbeitsmarkterfahrungTeilzeit^2)/100) 
                 + Bildungsgrad  + AnzahlKinder0Bis4 +
                   AnzahlKinder5Bis7 +
                   I((BehinderungsgradInProzent^2)/100) +
                   AnzahlKinder8Bis15 + AnzahlKinder16Bis18
                 + BehinderungsgradInProzent +
                   OtherIncome
                   ,log(Stundenlohn) ~ Bundesland + ArbeitsmarkterfahrungVollzeit +
                    I((ArbeitsmarkterfahrungTeilzeit^2)/100)+ ArbeitsmarkterfahrungTeilzeit +
                    I((ArbeitsmarkterfahrungVollzeit^2)/100) + DauerUnternehmenszugehörigkeit +
                    I((DauerUnternehmenszugehörigkeit^2)/100) + öffenticherDienst , trainSet2015)

2737 человек во всех 3 переменных - это те, кто не работает, поэтому у меня нет информации о заработной плате.

Мойвопросы в том, почему я получаю сообщение об ошибке, когда использую функцию heckit из пакета sampleslection, и не получаю сообщения об ошибке, если я делаю оценку heckit вручную?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...