2015-02-15 2 views
0

Я пытаюсь получить общую линейную модель регрессии Пуассона в SAS.Пуассоновская регрессия GLM в SAS

Я пользователь R, поэтому я понятия не имею, как это сделать в SAS. Я выложу данные вместе с кодом, который я попытался уже:

Game  Success  Attempts 
    1  4    5 
    2  5    11 
    3  5    14 
    4  5    12 
    5  2    7 
    6  7    10 
    7  6    14 
    8  9    15 
    9  4    12 
10  1    4 
11  13   27 
12  5    17 
13  6    12 
14  9    9 
15  7    12 
16  3    10 
17  8    12 
18  1    6 
19  18   39 
20  3    13 
21  10   17 
22  1    6 
23  3    12 

Я попытался с помощью нескольких различных кодов на данных, но я получаю ошибки.

Этот код не работает для первоначального ввода:

options nocenter; 

data freethrows; 

input $attempt $success; 

datalines; 

...(this is where I put each attempt and success for each game in each row  for 23 rows) 

; 

run; 

пример на сайте SAS является следующее:

data insure; 

     input n c car$ age; 

     ln = log(n); 

     datalines; 

    500 42 small 1 

    1200 37 medium 1 

    100 1 large 1 

    400 101 small 2 

    500 73 medium 2 

    300 14 large 2 

    ; 

    run; 

Процедура GENMOD выглядит следующим образом:

proc genmod data=insure; 

     class car age; 

     model c = car age/dist = poisson 

         link = log 

         offset = ln; 

    run; 

Хотелось бы провести аналогичный анализ на фриторах.

+0

На данный момент у ваших данных нет предикторной переменной. Поэтому довольно непонятно, почему вы хотите использовать регрессию. Точные соответствия между «Успехом» == 'c' и 'Попытки' == 'n', поэтому ti, казалось бы, было бы простым делом отбросить их в код SAS. Единственная оставшаяся задача - выяснить, что SAS ожидает от RHS для моделей NULL. В R это будет число «1». –

ответ

1

Необходимо вынуть знаки доллара, поскольку они вынуждают переменную рассматривать как «характер», а не цифровую. Будет использовать «Игру» в качестве переменной-предиктора. Попробуйте это:

data games; 
    input Game Success Attempts; 
    lnAtt = log(Attempts); 
    datalines; 
    1  4    5 
    2  5    11 
    3  5    14 
    4  5    12 
    5  2    7 
    6  7    10 
    7  6    14 
    8  9    15 
    9  4    12 
10  1    4 
11  13   27 
12  5    17 
13  6    12 
14  9    9 
15  7    12 
16  3    10 
17  8    12 
18  1    6 
19  18   39 
20  3    13 
21  10   17 
22  1    6 
23  3    12 
; 
run; 

Затем выполните PROC:

proc genmod data=games; 
     # remove unless you have categorical variables; class car age; 
     model Success = Game/dist = poisson 
         link = log 
         offset = lnAtt; 
    run; 

Это должно быть испытанием влияния «приправа игрока опыта», или каким-то такого, в случае успеха, то есть аа теста линейный тренд в вероятности «успеха» с увеличением количества Игр. В качестве проверки в отношении результатов АиРа:

summary(glm(Success ~Game, offset=log(Attempts), family="poisson", data=games)) 
#--------------------- 
Call: 
glm(formula = Success ~ Game, family = "poisson", data = games, 
    offset = log(Attempts)) 

Deviance Residuals: 
    Min  1Q Median  3Q  Max 
-1.1957 -0.7962 -0.2722 0.6774 2.1110 

Coefficients: 
      Estimate Std. Error z value Pr(>|z|)  
(Intercept) -0.679572 0.189074 -3.594 0.000325 *** 
Game  -0.008375 0.013544 -0.618 0.536346  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for poisson family taken to be 1) 

    Null deviance: 18.778 on 22 degrees of freedom 
Residual deviance: 18.396 on 21 degrees of freedom 
AIC: 100.72 

Number of Fisher Scoring iterations: 4 

Таким образом, коэффициент близок к нулю (где положительное значение могло бы указать на возрастающую вероятность успеха с увеличением в игре счета), а не на самом деле нет статистических данных о восходящем тенденция.

+0

Я заметил на вашем proc genmod, что вторая строка содержит автомобиль и возраст. Какие две переменные из набора данных freethrow я хочу поставить там? – Andrew

+0

Ooops. Эта линия должна быть полностью удалена. В SAS 'class' переменные являются дискретными категориями, и у вас их нет. Это эквивалент SAS «факторов» в R. –

+0

Не полностью изменить вопрос, но мне было интересно, есть ли у меня переменная Y (i), которая представляла количество бесплатных бросков, сделанных для каждой игры, с n (i) представляя общее количество бесплатных бросков, предпринятых для каждой игры (при этом Y (i) является биномиальным (n (i), pi (i)), как бы я соответствовал модели pi (i) = alpha? I, найти значение 0,42 с помощью R (что, по-видимому, правильно), но как бы я нашел это значение с SAS? – Andrew

Смежные вопросы