2016-04-28 4 views
0

Я очень смущен о пакете Zelig и, в частности, функции sim. Что я хочу сделать, это оценить логическую регрессию, используя подмножество моих данных, а затем оценить установленные значения оставшихся данных, чтобы увидеть, насколько хорошо выполняется оценка. Некоторые примеры кода следующим образом:Использование zelig для моделирования

данных (явка)

< явка - data.table (явка)

Перемешайте данные

< явка - явка [образец (.N, 2000)]

Создать образец для регрессии

turnout_sa mple < - явка [1: 1800,]

Создать образец для из тестирования данных

< turnout_sample2 - явка [1801: 2000,]

регрессию

z.out1 < - Зелиг (голосов ~ возраст + раса, модель = "логит", данные = turnout_sample)

резюме (z.out1) модель:

вызовов: Z5 $ Зелиг (формула = голосование ~ возраст + раса, данные = turnout_sample)

девиантности Остаточные: Мин 1Q Median 3Q Макс
-1,9394 -1,2933 0.7049 0,7777 1,0718

Коэффициенты : Estimate Std. Ошибка г значение Pr (> | г |) (Intercept) 0,028874 0,186446 0,155 0,876927 возраст 0,011830 0,003251 3,639 0,000274 racewhite 0,633472 0,142994 4,430 0,00000942

(параметр Дисперсия для биномиального семейства принимаемым равным 1)

Null deviance: 2037.5 on 1799 degrees of freedom 

Остаточная девиация: 2002,9 на 1797 степеней свободы АИК: 2008,9

Количество итераций Fisher Scoring: 4

Следующий шаг: 'Setx' Метод

Установите значения х на оставшиеся 200 наблюдений использовать

< x.out1 - Setx (z.out1, п = NULL, то данные = turnout_sample2)

Имитация

s.out1 < - sim (z.out1, x = x.out1)

Получить подогнанные значения

< установлены - s.out1 $ getqi ("ЭВ")

Что я не понимаю, что в списке устанавливается в настоящее время содержит 1000 значений и все значения находятся между 0,728 и 0,799. 1. Почему существует 1000 значений, когда то, что я пытаюсь оценить, является установленным значением 200 наблюдений? 2. И почему наблюдения так тесно сгруппированы?

Я надеюсь, что кто-то может мне помочь.

С наилучшими пожеланиями

ответ

0

Первый вопрос:
С подписью sim (sim(obj, x = NULL, x1 = NULL, y = NULL, num = 1000 ..) вы видите номер по умолчанию моделирования 1000. Если вы хотите иметь 200, установить num=200.

Однако sim в этом example from documentation вы используете, фактически генерирует (имитирует) вероятность того, что человек будет голосовать с определенными значениями (либо вычислено на setx, либо вычисляется и фиксируется на некотором значении setx(z.out, race = "white")).

Итак, в вашем случае у вас есть 1000 симулированных значений вероятности между 0,728 и 0,799, которые вы должны получить.