У меня есть 55 недель данных о продажах определенного товара. Я создал два набора данных SAS из исходных данных. Первый набор данных имеет дату и сумму количества, проданного в каждый день. Поэтому у меня есть 385 наблюдений (55 х 7). Вторая таблица содержит подробные данные транзакции. В частности, для каждой даты у меня есть время между транзакциями, которое представляет собой время между прибытием одного клиента и следующего, кто купил этот товар (я называю это временем прибытия). Что мне нужно делать дальше следующим образом:Looping over groups in SAS
- Для первой таблицы (ежедневные продажи) мне нужно взять данные о продажах каждую неделю, подходят ряд распределений, чтобы найти параметры каждого из них, и записывать эти параметры в отдельной таблице. Обратите внимание, что каждую неделю имеет eaxctly 7 наблюдений
- Для второй таблицы (interarrival раз) я также необходимо, чтобы соответствовать число распределений, чтобы найти параметры каждого из них, и записи этих параметров в одной таблице выше, но здесь, я не иметь точное количество наблюдений в каждой недели
Примечание: я уже назвал номер недели для наблюдений в каждом из двух наборов данных, и я написал код, который соответствует распределения в данные. Единственной областью, в которой я борюсь, является то, как сказать SAS, чтобы данные были получены в течение одной недели, выполняли вычисления, соответствовали распределениям, а затем переходили на следующую неделю (т.е. группировали данные по неделям и выполняли несколько операторов в каждой группе).
Я пробовал так много методов, и никто из них не работал, включая вложенные циклы. Я знаю, как получать еженедельные продажи, используя другие методы и процедуры, такие как PROC SQL, но я не уверен, могу ли я соответствовать дистрибутивам с помощью PROC SQL.
Я использую proc nlp для оценки параметров каждого распределения с использованием метода максимального правдоподобия. Например, если мне нужно оценить Mu и Sigma для нормального распределения, я использую следующий код:
proc nlp data= temp vardef=n covariance=h outest=parms;
title "Normal";
max loglik;
parms mu=0, sigma=1;
bounds sigma > 1e-12;
loglik=-log(sigma*(2*constant('PI'))**.5) - 0.5*((x-mu)/sigma)**2;
run;
Этот метод найти Mu и Sigma, что, скорее всего, изготавливали данные.
Вы в шоу код, как, чтобы соответствовать распределений и, желательно, того, что вы пробовали. SO не является службами написания кода. Решение в значительной степени зависит от того, как вы соответствуете дистрибутиву, либо по групповой обработке, либо по макрокоманде. – Reeza
Хотя здесь нет вашего вопроса, установка дистрибутива на 7 точек данных кажется сомнительной. – Reeza
Я не прошу кого-нибудь написать код для меня. Я прошу руководство по логике SAS перебирать группы. Я знаю, как писать аналогичный код с использованием других языков программирования, но кажется, что SAS делает все по-другому. Кроме того, я использовал дистрибутив для всех данных, используя SAS, поэтому мне не нужна помощь с этой частью.Обратите внимание, что 7 точек данных - это всего лишь крошечная часть огромных исследований. – OAM