<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:alexwin1961</id>
  <title>Александр Виноградов</title>
  <subtitle>Александр Виноградов</subtitle>
  <author>
    <name>Александр Виноградов</name>
  </author>
  <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom"/>
  <updated>2009-11-07T07:32:08Z</updated>
  <lj:journal userid="10433448" username="alexwin1961" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://alexwin1961.livejournal.com/data/atom" title="Александр Виноградов"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:89681</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/89681.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=89681"/>
    <title>Brand equity</title>
    <published>2009-11-07T07:32:08Z</published>
    <updated>2009-11-07T07:32:08Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">Пакет SPSS недолго пробыл под дурацким названием PASW, теперь он называется IBM SPSS. Все-таки нашлись умные люди, которые понимают в брендинге</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:89415</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/89415.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=89415"/>
    <title>Третий кусочек задачи</title>
    <published>2009-11-05T12:47:08Z</published>
    <updated>2009-11-05T12:57:03Z</updated>
    <category term="маленькие хитрости"/>
    <content type="html">Уже есть текст письма, вложения для каждого получателя, осталось письма разослать. Но стандартный mail merge в Word тут не поможет -- он умеет вставлять во вложение только текст сообщения. Написал макрос на VBA, который отсылает письма из Excel. В таблице прописываем тему, текст сообщения, адреса получателей и путь к вложениям для каждого получателя. Вставляем следующий макрос и ссылаемся на библиотеки Outlook и Redemtion  (эту предварительно надо загрузить из Инета и установить):&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
Sub SendMsg()
    Dim objApp As Outlook.Application
    Dim objMsg As Outlook.MailItem
    Dim objSafeMsg As Redemption.SafeMailItem
    Dim C As Excel.Range
    
    Set objApp = CreateObject("Outlook.Application")
    Set C = Selection
    For I = 1 To C.Rows.Count
        Subject = C.Cells(I, 1)
        Body = C.Cells(I, 2)
        Email = C.Cells(I, 3)
        Attachmnt = C.Cells(I, 4)

        Set objMsg = objApp.CreateItem(olMailItem)
        With objMsg
          .Subject = Subject
          .Body = Body
          .To = Email
          .Attachments.Add Attachmnt
        End With
        
        Set objSafeMsg = CreateObject("Redemption.SafeMailItem")
        objSafeMsg.Item = objMsg
        objSafeMsg.Send
    Next

    Set objMsg = Nothing
    Set objApp = Nothing
End Sub
&lt;/pre&gt;&lt;br /&gt;Для отсылки выделяем блок в Экселе и вызываем макрос</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:89270</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/89270.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=89270"/>
    <title>Вторая задачка</title>
    <published>2009-11-04T17:21:36Z</published>
    <updated>2009-11-04T17:21:36Z</updated>
    <category term="СКТ"/>
    <category term="python"/>
    <content type="html">как когда-то сказал мой коллега Горбачик, преподавательский труд приносит радость, если бы только не мешали студенты. Псевдокарантин неожиданно подарил время для неспешной и в удовольствие работы на себя. Весь день сражался с Пайтоном, чтобы решить вторую часть задачки по проверке качества заполнения опросников. Наваял-таки небольшую программу, которая берет список переменных по определенному принципу (например, имя которых начинается на zN) и для каждого испытуемого  выводит строку с именами тех переменных, значения которых у него находятся вне диапазона от -1 до 1.&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
BEGIN PROGRAM.
import spssaux, spssdata
varDict = spssaux.VariableDict(pattern=r'zN')

data = spssdata.Spssdata(indexes=(varDict,), accessType="w")
data.append(spssdata.vdef('vars', vtype=100))
data.commitdict()

for row in data:
  list = []
  for i in range(len(row)):
    if (abs(row[i]) &amp;gt; 1):
      list = list + [varDict[i].VariableName]
  vars = " ".join(list)
  data.setvalue("vars", vars)
  data.CommitCase()
data.CClose()
del data
del varDict
END PROGRAM.
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:88997</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/88997.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=88997"/>
    <title>Первые впечатления от СТАТА</title>
    <published>2009-11-03T20:11:16Z</published>
    <updated>2009-11-03T20:11:16Z</updated>
    <category term="stata"/>
    <content type="html">Скачал несколько руководств и немного поигрался с простыми процедурами. Отличная программа, хотя, конечно, не конкурент СПСС в глазах обычного пользователя. Отстойный вывод результатов, необходимость пользоваться командным языком, размещение файлов данных в памяти. Но вот те несколько процедур, которые я попробовал, меня очень порадовали. Например, в банальном t-критерии выводится информация по всем типам альтернативных гипотез (направленным и ненаправленной), а не только одной, как в СПСС. В процедуре расчета альфы Кронбаха предусмотрена возможность автоматически менять ключ переменной, а также можно сохранять новую переменную, соответствующую проверяемой на надежность шкале</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:88641</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/88641.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=88641"/>
    <title>WiMAX</title>
    <published>2009-11-03T20:02:50Z</published>
    <updated>2009-11-06T13:23:50Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">По ссылке в Гугле узнал, что в Киеве начинают строить сеть 4G. Оператор Freshtel до конца года обещает покрыть весь Киев сетью подстанций, а потом распространиться на все крупные города и областные центры. Доступ безлимитный, оплата определяет скорость скачивания. Модем величиной с флешку и стоит всего 199 гривен. Уже хочу -- пиплнет меня не очень устраивает низкой скростью и довольно высокой оплатой&lt;br /&gt;UPD: Фрештел прорвало -- скорость в UA-IX до 4 мб/сек, а на мир остается низкой</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:88534</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/88534.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=88534"/>
    <title>замысел исследования</title>
    <published>2009-11-03T19:57:29Z</published>
    <updated>2009-11-03T19:57:29Z</updated>
    <category term="методология"/>
    <content type="html">Давно хотел исследовать такую штуку: не раз замечал, что испытуемые путают направление шкалы и вместо варианта "полностью согласен" выбрать случайно "полностью не согласен". Как мне кажется, это одно из самых простых объяснений того, что на отечестенных выборках психологические шкалы почему-то имеют несколько меньшую надежность-согласованность. Идея такая: для каждого испытуемого определяем пункты, на которые он дал подозрительно несогласующиеся с остальными ответы, отсылаем ему протокол с просьбой проверить именно эти вопросы (и, для контроля, еще какие-нибудь) и смотрим на исправления -- сколько их, как влияют на согласованность.&lt;br /&gt;Первая задача, которая возникла при реализации замысла, состояла в том, чтобы порезать файл данных СПСС на отдельные кусочки, в каждом данные только одного человека. Удалось ее решить при помоши такой програмки на Пайтоне:&lt;br /&gt;&lt;pre&gt;
BEGIN PROGRAM.
import spss
dataCursor=spss.Cursor([0])
data=dataCursor.fetchall()
dataCursor.close()
for i in range(spss.GetCaseCount()):
  filename = data[i][0]
  filename = "c:/temp/" + filename.rstrip() + ".sav";
  spss.Submit(r"""
  USE %s THRU %s.
  SAVE OUTFILE="%s" /UNSELECTED=DELETE.
  """ %(i+1, i+1, filename))
END PROGRAM.
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:88065</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/88065.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=88065"/>
    <title>STATA</title>
    <published>2009-10-31T09:13:50Z</published>
    <updated>2009-10-31T09:28:42Z</updated>
    <content type="html">Поставил STATA, впечатление в целом позитивное. Окно приложения разделено на 4 части: командная строка, список переменных в файле данных, история команд и окошко вывода (оформлено в моем любимом сумеречном стиле). Команды можно выбирать и из меню, задавая параметры в диалоговых окнах, так что обычные пользователи не почувствуют себя обиженными. В диалогах есть вкладки отбора, взвешивания и расслоения, что кажется весьма удобным. Вывод, правда, несколько разочаровал -- фиксированной ширины шрифт, таблицы в HTML формате переносятся перекошенными. Однако методов, по первому впечатлению, несколько больше, чем в СПСС</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:88037</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/88037.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=88037"/>
    <title>Ниже, чем у большинства</title>
    <published>2009-10-26T09:13:13Z</published>
    <updated>2009-10-26T09:13:13Z</updated>
    <category term="методология"/>
    <content type="html">Интереса ради в последней из шкал для учстников тренинга включил не обычный формат ответа, а предполагающий соотнесение себя с большинством коллег (такой же уровень компетенции, как у большинства, ниже, выше и т.д.). Результат полностью совпал с известной закономерностью: практически никто не выбирает варианты "ниже, чем у большинства"</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:87558</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/87558.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=87558"/>
    <title>ggplot2</title>
    <published>2009-10-26T09:09:05Z</published>
    <updated>2009-10-26T09:09:05Z</updated>
    <category term="r"/>
    <category term="хозяйке на заметку"/>
    <content type="html">Книги по R появляются с завидной регулярностью. Некоторые даже имеют год выпуска 2010 -- что интересно, сами издатели выкладывают их в сеть даже до официального выхода. Предпоследнюю, посвященную графическому пакету ggplot2, я с интересом пролистал и попробовал некоторые команды. Действительно, графики получаются красивые и работать с пактом удобнее, чем со стандартными командами построения диаграмм. Ggplot2 реализует грамматику графиков, подобную GGRAPH в SPSS. Вот самые простые примеры работы с ggplot2:&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
# загружаем пакет
library(ggplot2)

# введем небольшой массив данных
w &amp;lt;- data.frame(
  x = c(1,3,2,6,8,5),
  y = c(5,2,1,7,4,3),
  sex = c(1,1,1,2,2,2),
  label = c("A","B","C","D","E","F")
)
# пустьпол будет категориальной переменной с метками
w$sex &amp;lt;- factor(w$sex, labels=c("male","female"))

# диаграмма рассеивания
qplot(
  x, y, 
  data=x,
  label=label,
  geom=c("point","text"),
  vjust=1.5
) + ylim(0,7)

# коробки
qplot(
  sex, x, 
  data = w, 
  geom = "boxplot", 
  fill = sex, 
  ylab = "extraversion"
)

# гистограмма
qplot(
  x,
  data = w,
  geom = "histogram",
  binwidth = 3,
  fill = I("red"),
  colour = I("black")
)

# для различных типов графиков можно установить параметры по умолчанию
update_geom_defaults("point", aes(colour = "darkblue"))

# последний из графиков экспортируется в файл вот так
ggplot(file = "c:/output.pdf", width=6, height=6)
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:87519</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/87519.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=87519"/>
    <title>преподавание статистики</title>
    <published>2009-10-22T14:03:12Z</published>
    <updated>2009-10-22T14:03:12Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">Что меня не перестает удивлять в современных студентах, так это отсутствие привычки что-либо записывать на лекции. Большинство просто сидят и слушают (вполуха, естественно). Что при этом остается в голове нетрудно догадаться -- ничего. Читая прекрасную книжку Developing Students’ Statistical Reasoning, в которой на каждую тему авторы предлагают массу всяческих забавных упражнений для студентов (судя по содержанию заданий, скорее для учеников 8-10 классов), я тут подумал: а почему бы не ввести для наших студентов (уровень зрелости которых едва ли выше) вместо конспектов такие тетрадки, как в начальной школе? На этой страничке запиши определение, на этом графике проведи линию, тут ответь на вопросы...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:87085</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/87085.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=87085"/>
    <title>неожиданная находка</title>
    <published>2009-10-22T13:45:01Z</published>
    <updated>2009-10-22T13:45:01Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">вчера позвонил Андрей и сообщил, что оставил для меня на кафедре диск со STATA. Давно хотел с ней поиграться, потому что многие хвалили. Полез в гигапедию поискать к ней руководства, а в ней что-то поисковик в последнее время чудит. Ничего не нарыв, он предложил мне еще поискать на gigle.ws. Я там регистрировался раньше, но в то время ничего, кроме порнографии, народ не выкладывал, так что второй раз я уже и не заходил. А сегодня выяснилось, что там лежит 10 и 9 версии STATA. Ничего себе</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:87023</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/87023.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=87023"/>
    <title>Сложность Я</title>
    <published>2009-10-22T09:05:17Z</published>
    <updated>2009-10-22T09:05:17Z</updated>
    <category term="шалфей"/>
    <content type="html">В каждом из нас сосуществуют множество различных Я. Я как друг, преподаватель, отец, или супруг могут довольно сильно отличаться проявляемыми качествами. Чем больше граней и различий между отдельными Я, тем сложнее устроен человек. Хорошо ли быть сложноустроенной, многогранной личностью? Смотря как посмотреть. Если я прост, то внешняя оценка вызовет во мне более сильные чувства: положительная очень обрадует, а отрицательная очень огорчит. Вдобавок, и отвлечься от событий, вызвавших эмоциональный отклик, будет гораздо труднее. Если жизнь наполнена позитивными событиями, а близкие люди оказывают поддержку, то простому человеку живется гораздо эмоционально комфортнее, чем сложному. Если же все с точностью до наоборот, то отрицательные эмоции доставляют простым больше беспокойства. Отсюда вывод: будьте проще и пусть люди к вам потянутся. Но если в жизни наступила черная полоса, спасение следует искать в развитии своего Я.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:86529</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/86529.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=86529"/>
    <title>HTML вывод в R</title>
    <published>2009-10-20T12:37:24Z</published>
    <updated>2009-10-20T12:37:24Z</updated>
    <category term="хозяйке на заметку"/>
    <content type="html">Встретил, читая руководство по SAS и R, на полезные пакеты hwriter и prettyR, которые позволяют вывести объекты в формате HTML. Действительно, очень удобно и гибко получается. Вот пример (сначала нужно установить пакет hwriter):&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
# Создадим матрицу данных из 4 переменных и посчитаем матрицу корреляций:
v1 &amp;lt;- rnorm(25)
v2 &amp;lt;- rnorm(25)
v3 &amp;lt;- rnorm(25)
v4 &amp;lt;- rnorm(25)
x &amp;lt;- data.frame(v1,v2,v3,v4)
cors &amp;lt;- cor(x)

# теперь выведем корреляционную матрицу в файл с именем test.html

library(hwriter)
mydir &amp;lt;- "c:/temp"
page &amp;lt;- openPage('test.html', dirname=mydir)
hwrite("Correlations", page, center=TRUE, heading=2)
hwrite(format(cors, digits=2), page, border=1, style="text-align:right", bgcolor="tan", cellspacing=0, cellpadding=5)
closePage(page)
if (interactive()) try(browseURL(file.path(mydir, 'test.html')))
&lt;/pre&gt;&lt;br /&gt;Результат:&lt;br /&gt;&lt;h2&gt;Correlations&lt;/h2&gt;&amp;lt;/center&amp;gt;&lt;table border="1" cellspacing="0" cellpadding="5"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;&lt;td&gt;v1&lt;/td&gt;&lt;td&gt;v2&lt;/td&gt;&lt;td&gt;v3&lt;/td&gt;&lt;td&gt;v4&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;v1&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 1.000&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.246&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.023&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt;-0.165&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;v2&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.246&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 1.000&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.139&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.065&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;v3&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.023&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.139&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 1.000&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt;-0.193&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;v4&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt;-0.165&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 0.065&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt;-0.193&lt;/td&gt;&lt;td style="text-align:right" bgcolor="tan"&gt; 1.000&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:86308</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/86308.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=86308"/>
    <title>Дальше, выше, быстрее</title>
    <published>2009-10-11T10:02:51Z</published>
    <updated>2009-10-11T10:02:51Z</updated>
    <category term="планов громадьё"/>
    <content type="html">В пятницу между пар зашел ДХ поговорить о том, как можно было бы улучшить преподавание на бакалаврате. С его точки зрения до 3 курса студентов-социологов заваливают информацией о филосософии, культурологии, ПР и прочем настолько, что они теряют представление о прикладных социологических задачах. Поэтому, полагает он, хорошо бы им прочесть какой-то короткий прагматичный курс по анализу данных, чтобы они могли своими руками что-то делать, не дожидаясь большого цикла на третьем курсе. Мысль правильная, я считаю. Путь освоения статистики для социологов должен быть именно спиралевидным -- сначала решение практических задач, потом разбираемся в методологии, потом решение более сложных практических задач и понимание на теоретическом уровне&lt;br /&gt;&lt;br /&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;&lt;br /&gt;в ходе разговора вспомнил о сайте &lt;a href="http://www.socialresearchmethods.net/"&gt;Била Трохима&lt;/a&gt; (Трочима?), который в свое время проивел на меня очень большое впечатление. Там масса полезного материала для социальных исследователей (включая подробный алгоритм выбора статистики для решения конкретной задачи). Особенно понравилось, что в его создании участвовали студенты и аспиранты. Думаю, именно такой сайт должен быть взят в качестве образца для нашего кафедрального</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:86183</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/86183.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=86183"/>
    <title>TURF анализ</title>
    <published>2009-10-11T08:45:07Z</published>
    <updated>2009-10-11T08:45:07Z</updated>
    <category term="хозяйке на заметку"/>
    <content type="html">Решил попробовать еще одно любопытное расширение под SPSS, востребованное маркетологами -- Total Unduplicated Reach and Frequency (TURF). С его помощью можно определить, какие именно комбинации услуг позволяют достичь наибольшей доли целевой аудитории. Первым делом следует загрузить архив расширения с &lt;a href="http://www.spss.com/devcentral"&gt;http://www.spss.com/devcentral&lt;/a&gt; и скопировать файлы из него в папку, где размещаются расширения (например, C:\Program Files\SPSSInc\PASWStatistics18\extensions). Затем нужно установить диалоговое окно расширения, выбрав в меню команду Utilities &amp;gt; Custom Dialogs &amp;gt; Install Custom Dialogs. Перезапустив пакет, можно пользоваться новой командой как при помощи синтаксиса, так и из меню (Analyze &amp;gt; Statistics &amp;gt; TURF Analysis). Рассмотрим применение TURF на простом примере. Пусть телевизионный канал планирует к показу несколько сериалов. Необходимо из 5 претендентов выбрать максимум 3 сериала, которые позволят охватить как можно бОльшую аудиторию. Сначала определим данные -- семь респондентов указали, какой из 5 сериалов они будут смотреть (1 по умолчанию воспринимается командой как выбор):&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt; &lt;br /&gt;&lt;pre&gt;
data list free / v1 to v5.
begin data.
1 0 0 0 1
0 1 1 0 0
1 0 1 0 0
0 0 0 1 0
0 1 0 1 0
0 0 1 0 1
1 0 0 0 0
end data.

variable labels
  v1 "House MD"
  v2 "Sex and the City"
  v3 "Heroes"
  v4 "X-files"
  v5 "Two and a half men".

value labels
  v1 to v5 0 "не смотрит" 1 "смотрит".
&lt;/pre&gt;&lt;br /&gt;Синтаксис для вызова команды выглядит следующим образом. BESTN обозначает максимальное количество сериалов в комбинации, NUMBERTODISPLAY -- число выводимых в таблицах комбинаций, CRITERIA -- значение переменных, указывающее на выбор. Снчала выводится таблица, в которой достижимость анализируется отдельно для каждого сериала. Затем идет таблица с комбинациями по два сериала. Четыре такие комбинации позволяют охватить 71.4% аудитории (v1,v3; v1,v2; v1;v4; v2,v4). Наконец, в последней таблице приведены комбинации по три сериала. Единственным лидером здесь является сочетание v1,v3,v4, которое позволяет охватить 100% аудитории. &lt;br /&gt;&lt;pre&gt;
SPSSINC TURF VARIABLES = v1 v2 v3 v4 v5
  /OPTIONS BESTN = 3 
   NUMBERTODISPLAY = 10 
   CRITERIA = 1
   REMOVALCYCLES = 0. 


Maximum Group Size: 1.  Reach and Frequency.
|-------------|--------------------------------------------------|
|Variables    |Statistics                                        |
|          |--|----------|------------|---------|----------------|
|             |Reach     |Pct of Cases|Frequency|Pct of Responses|
|----------|--|----------|------------|---------|----------------|
|dimension0|v3|3         |42,9        |3        |25,0            |
|          |--|----------|------------|---------|----------------|
|          |v1|3         |42,9        |3        |25,0            |
|          |--|----------|------------|---------|----------------|
|          |v4|2         |28,6        |2        |16,7            |
|          |--|----------|------------|---------|----------------|
|          |v2|2         |28,6        |2        |16,7            |
|          |--|----------|------------|---------|----------------|
|          |v5|2         |28,6        |2        |16,7            |
|----------|--|----------|------------|---------|----------------|
Variables: v1, v2, v3, v4, v5



Maximum Group Size: 2.  Reach and Frequency.
|-----------------|--------------------------------------------------|
|Variables        |Statistics                                        |
|          |------|----------|------------|---------|----------------|
|                 |Reach     |Pct of Cases|Frequency|Pct of Responses|
|----------|------|----------|------------|---------|----------------|
|dimension0|v1, v3|5         |71,4        |6        |50,0            |
|          |------|----------|------------|---------|----------------|
|          |v1, v2|5         |71,4        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v1, v4|5         |71,4        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v3, v4|5         |71,4        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v1, v5|4         |57,1        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v2, v3|4         |57,1        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v3, v5|4         |57,1        |5        |41,7            |
|          |------|----------|------------|---------|----------------|
|          |v2, v5|4         |57,1        |4        |33,3            |
|          |------|----------|------------|---------|----------------|
|          |v4, v5|4         |57,1        |4        |33,3            |
|          |------|----------|------------|---------|----------------|
|          |v2, v4|3         |42,9        |4        |33,3            |
|----------|------|----------|------------|---------|----------------|
Variables: v1, v2, v3, v4, v5



Maximum Group Size: 3.  Reach and Frequency.
|----------|----------|--------------------------------------------------|
|          |Variables |Statistics                                        |
|                     |----------|------------|---------|----------------|
|                     |Reach     |Pct of Cases|Frequency|Pct of Responses|
|----------|----------|----------|------------|---------|----------------|
|dimension0|v1, v3, v4|7         |100,0       |8        |66,7            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v2, v3|6         |85,7        |8        |66,7            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v4, v5|6         |85,7        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v2, v4|6         |85,7        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v2, v5|6         |85,7        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v3, v4, v5|6         |85,7        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v3, v5|5         |71,4        |8        |66,7            |
|          |----------|----------|------------|---------|----------------|
|          |v2, v3, v4|5         |71,4        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v2, v3, v5|5         |71,4        |7        |58,3            |
|          |----------|----------|------------|---------|----------------|
|          |v1, v3    |5         |71,4        |6        |50,0            |
|----------|----------|----------|------------|---------|----------------|
Variables: v1, v2, v3, v4, v5


&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:85966</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/85966.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=85966"/>
    <title>Back</title>
    <published>2009-10-11T08:05:12Z</published>
    <updated>2009-10-11T08:05:12Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">вернулся в четверг ночью из Москвы, отчитав 4 пары по статистике. Все получилось очень здоровоЮ будем продолжать сотрудничать, полон энтузиазма. Единственное, что напрягло -- московские пробки. Лететь в Москву 1 час 15 мин, а ехать из Домодедово пришлось более 3 часов, обратно так же.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:85567</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/85567.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=85567"/>
    <title>информационный взрыв настиг</title>
    <published>2009-10-03T16:27:19Z</published>
    <updated>2009-10-03T16:27:19Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">Хотел сегодня поработать, но коварный Сейдж открыл свободный доступ к своим журналам, и я весь день собирал информационные грибы в информационном лесу. Когда по любимым ключевым словам мне вывалилось 4500 статей, меня охватил азарт, которого хватило на 700 статей. В итоге отобрал 118, а на остальное пока плюнул, потому что охватило отчаяние. Завтра пройдусь прицельно по самым грибным журналам и запасусь чтивом на год</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:85368</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/85368.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=85368"/>
    <title>alexwin1961 @ 2009-10-01T00:16:00</title>
    <published>2009-09-30T21:19:05Z</published>
    <updated>2009-09-30T21:19:05Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">сегодня коллеги из Москвы предложили вместо лекции на 4 часа провести 8-часовую. Я так понимаю, Елена Григоренко не приедет. Жалко, я хотел еще к маркетологам зайти пива попить. Или зайти к Марине Александровне Холодной в гости</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:85021</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/85021.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=85021"/>
    <title>скрытые возможности count</title>
    <published>2009-09-30T07:37:58Z</published>
    <updated>2009-09-30T07:37:58Z</updated>
    <category term="маленькие хитрости"/>
    <content type="html">выяснилось, что у функции count в SPSS (используется для подсчета значений внутри набора переменных) есть дополнительная особенность, доступная только через синтаксис. Можно подсчитывать встречаемость разных значений внутри подгрупп переменных, если после них указать в скобках подсчитываемое значение. Например:&lt;br /&gt;count x = V1 V2 V3 (1) V4 V5 V6 (5).&lt;br /&gt;exe.&lt;br /&gt;Тогда в группе переменных V1 V2 V3 подсчитывается количество единиц, а в V4 V5 V6 -- пятерок</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:84947</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/84947.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=84947"/>
    <title>еду</title>
    <published>2009-09-28T12:10:24Z</published>
    <updated>2009-09-28T12:11:43Z</updated>
    <category term="по ходу жизни"/>
    <content type="html">все, билеты в Москву куплены, так что с 7 по 8 октября я там, если чего</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:84722</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/84722.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=84722"/>
    <title>extensions</title>
    <published>2009-09-28T12:07:56Z</published>
    <updated>2009-09-28T12:07:56Z</updated>
    <category term="хозяйке на заметку"/>
    <content type="html">Имея свежую версию SPSS, грех не попробовать нововведений. Вот, например, расширения (extensions). Поставил самое незамысловатое -- расчет доверительных интервалов для доли признака. Для этого скачиваем архив PROPOR с &lt;a href="http://www.spss.com/devcentral"&gt;http://www.spss.com/devcentral&lt;/a&gt;, файл PROPOR.xml сохраняем в папке C:\Program Files\SPSSInc\PASWStatistics18\extensions, а PROPOR.py -- в папке C:\Python26\Lib\site-packages. Теперь можно через синтаксис вызывать команду PROPOR, вычисляющую биномиальные и пуассоновские доверительные интервалы для доли (если долей несколько, выводится еще и доверителбгый интервал разницы с первой). Синтаксис команды такой: propor num = 25 50 denom = 120 150. Т.е. задаем список того, что в числителе (num) и в знаменателе (denom). Можно также передаватьимена переменных, в которых хранятся эти агрегированные значения</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:84235</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/84235.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=84235"/>
    <title>Факторы второго порядка</title>
    <published>2009-09-27T17:01:58Z</published>
    <updated>2009-09-27T17:03:12Z</updated>
    <category term="маленькие хитрости"/>
    <content type="html">Если при вращении факторного решения выбирается косоугольный метод, это означает, что факторам позволено коррелировать. Тогда для объяснения их связей можно извлечь факторы второго порядка. Было бы неправильно сохранять оценки факторов и искать связи между ними для поиска структуры второго порядка, так как корреляции между оценками содержат больше ошибок, чем оценки корреляций между факторами, вычисляемые в ходе вращения. Можно взять выводимую процедурой ФА матрицу корреляций между факторами и подвергнуть ее факторному анализу. Однако, увы, даже при помощи синтаксиса сохранить эту матрицу нельзя. Обходной путь нашелся через OMS. Пусть факторизуются переменные V1 to V10 и результат записывается в файл C:\factcor.sav:&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
OMS
  /SELECT TABLES
  /IF COMMANDS=['Factor Analysis'] SUBTYPES=['Factor Correlation Matrix']
  /DESTINATION FORMAT=SAV OUTFILE='C:\factcor.sav'.

FACTOR
  /VARIABLES V1 to V10
  /ROTATION OBLIMIN.

OMSEND.
&lt;/pre&gt;&lt;br /&gt;Структура сохраненного файла не соответсвует ожиданиям факторного анализа -- это не матричный файл, в нем отсутствует информация о количестве наблюдений. Обойти эту проблему можно с помощью матричных команд. Сначала считываем корреляции между факторами (пусть выделилось 4 фактора, которые ОМС назвал @1 @2 @3 @4), потом создаем строку с количествами наблюдений (по 100) и результат записываем в текущее окно редактора с именами факторов F1 to F4:&lt;br /&gt;&lt;pre&gt;
matrix.
get M /file="C:/factcor.sav" /variables @1 @2 @3 @4.
msave MAKE(1,4,100)
  /type N
  /variables = F1 to F4
  /outfile = *.
msave M
  /type CORR.
end matrix.

FACTOR
  /matrix = IN(cor=*).
&lt;/pre&gt;&lt;br /&gt;Последняя команда читает правильно отформатированную матрицу корреляций между факторами и выполняет ФА второго порядка</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:84170</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/84170.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=84170"/>
    <title>Вычисление значений факторов на новом массиве</title>
    <published>2009-09-26T07:15:01Z</published>
    <updated>2009-09-26T07:15:01Z</updated>
    <category term="хозяйке на заметку"/>
    <content type="html">Сохранить значения факторов в массив при проведении факторного анализа несложно. А как вычислить эти значения для нового массива, на котором факторный анализ не проводился? Для этого необходимо знать средние и стандартные отклонения переменных, а также иметь матрицу факторных коэффициентов. При помощи синтаксиса можно заставить СПСС сохранять требуемые данные в файл, например, вот так:&lt;br /&gt;&lt;pre&gt;
FACTOR VARIABLES a01 TO c02
  /MATRIX = OUT(FSC="c:/fsc.sav").
&lt;/pre&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Теперь представим, что у нас в редакторе открыт новый массив, в котором те же имена переменных. Используя возможности матричных операций в СПСС, можно при помощи следующей несложной программы подсчитать значения факторов регрессионным методом (предполагается, что использовалось ортогональное вращение факторов):  &lt;br /&gt;&lt;pre&gt;
MATRIX.
get X /variables = a01 TO c02.
get FSC /file = "c:/fsc.sav" /variables = a01 c01 e01 n01 o01 a02 c02.
compute M = FSC(1, :).
compute S = FSC(2, :).
compute V = FSC(3:nrow(FSC), :).
compute Z = (X - MAKE(NROW(X), NCOL(X), 1) * MDIAG(M)) * INV(MDIAG(S)).
compute B = Z * T(V).
save B /outfile = *.
END MATRIX.
&lt;/pre&gt;&lt;br /&gt;В первой строке в переменную Х считываются данные из текущего файла (пропущенных данных не должно быть), во второй получаем матрицу с описательными статистиками и факторными коэффициентами, сохраненными процедурой факторного анализа на предыдущем этапе. Третья, четвертая и пятая строки извлекают из нее различные части -- средние, стандартныек отклонения и факторные коэффициенты. В шестой строке данные стандартизуются, а в седьмой умножаются на факторные коэффициенты.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:83809</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/83809.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=83809"/>
    <title>Слияние большого количества файлов данных в SPSS</title>
    <published>2009-09-25T20:01:45Z</published>
    <updated>2009-09-27T06:53:45Z</updated>
    <category term="маленькие хитрости"/>
    <content type="html">Понадобилось объединить в SPSS большое количество файлов данных с одинаковой структурой. Можно было бы и вручную это делать, но уж очень жалко времени. На помощь приходит следующий скрипт на Бейсике, который ищет файлы в заданном каталоге и генерирует текст синтаксиса:&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
Sub Main
    Path$ = "C:\b5 files"
    ChDir Path$
    Debug.Print "CD "; Chr(32); Path$; Chr(32); "."
    Debug.Print "ADD FILES"
    F$ = Dir$("*.sav")
    While F$ &amp;lt;&amp;gt; ""
        Debug.Print "  /FILE="; Chr(34); F$; Chr(34)
        F$ = Dir$()
    Wend
    Debug.Print "."
    Debug.Print "EXECUTE."
End Sub
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:alexwin1961:83471</id>
    <link rel="alternate" type="text/html" href="http://alexwin1961.livejournal.com/83471.html"/>
    <link rel="self" type="text/xml" href="http://alexwin1961.livejournal.com/data/atom/?itemid=83471"/>
    <title>Преобразование таблиц в графику</title>
    <published>2009-09-25T18:42:59Z</published>
    <updated>2009-09-25T18:42:59Z</updated>
    <category term="хозяйке на заметку"/>
    <content type="html">Готовил сегодня презентацию для лекции по SPSS и в который раз столкнулся с такой проблемой: если вставить из 15 версии таблицу в Power Point, то она копируется как графический объект в формате enhanced metafile. С одной стороны, это хорошо -- это довольно компактный формат, не бывает проблем с неожиданным изменением внешенго вида таблицы при копировании, таблица выглядит именно так, как и в SPSS. С другой стороны, имеется весьма неприятная особенность таких таблиц: кириллица на другом компьютере (где не выполнены определенные изменения реестра) может отображаться в виде кракозяблов. Выход был найден давно: преобразовывать  таблицы в графику при помощи Word. В окне Output выделяем одну или несколько таблиц, выбираем в меню Edit &amp;gt; Copy Object и вставляем их в Word сразу в графическом формате. Затем сохраняем документ Word как веб-страницу (обычную, а не mht). В папке имядокумента.files сохраняются таблицы сразу в двух форматах -- wmz (вариант wmf, понимаемый офисными приложениями) и gif. Все изображения очень компактные и четкие. Кстати, при помощи команды вставки нового фотоальбома из них очень быстро можно создать заготовку для перезентации</content>
  </entry>
</feed>
