Я хочу сделать двухэтапную оценку хекита с помощью пакета 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 вручную?