Когнитивная психология и эмоции
Субъективные заметки аспиранта-психолога
Записи в рубрике «заметки»

Позитронные роботы и рободворецкие

12 октября 2011, заметки Метки:

plakhov: Почему позитронные роботы Азимова действовали в середине восьмидесятых, а сейчас уже заканчивается две тысячи одиннадцатый, но никаких рободворецких?
skynin:Потому что Азимов, как и многие сугубые технари перепутал сложности. у него высшие роботы почему-то занимаются простейшими вариационными исчислениями за пультами, а примитивные — детей нянчат.
http://plakhov.livejournal.com/175420.html?thread=3499324#t3499324

А я про позитронных роботов Азимова не знаю ничего, но сам ответ интуитивно кажется верным.

Четыре кита анализа данных

24 августа 2011, заметки Метки: ,

С некоторых пор анализ данных для меня представляет постоянные сомнения и колебания между четыремя китами — валидностью, мощностью, конвенциональностью и презентабельностью. Наиболее мощные конвенциональные методы (читай, ANOVA и сородичи) зачастую невалидны — то дисперсии негомогенны, а чаще всего распределение лишь отдаленно смахивает на нормальное. Мощные валидные методы — смешанные линейные модели (lmer, nlme) — слабо известны в психологических кругах и не всегда понятно, как их подать. Да и сам я не все в них понимаю. Валидные конвенциональные методы часто попросту отсутствуют для сложных моделей. Презентабельность вообще идет отдельно, например, отображение взаимодействий в смешанных моделях до сих пор для меня головоломка. Плюс стиль APA до сих пор мне непривычен. В общем, все сложно и непонятно.

Немного радости. [info]konhis скинул ссылочку на прекрасную аннотацию к передаче на BBC:

What is a statistician really like? A BBC Radio 4 programme has tried to find out. Are they vague, unworldly chaps who have brains the size of a planet but who can’t quite tie their own shoelaces? Are they less socially adept even than mathematicians? Are they thugs from the backstreets who will lightly mug you with a non-parametric hierarchical Bayesian model before telling you that your last three inferences were unjustifiable and insignificant? Is their conversation such that you would rather watch paint dry, or are they charming, handsome, intelligent, witty and beautiful people at the first sight of whom you would actually want to jump straight into bed with them for a passionate and mutual weekend-long investigation of well-distributed curves?

Тривиализация обоснованной ахинеи

21 августа 2011, заметки Метки: , ,

Подумалось, что тривиализация обоснованной ахинеи это не только суть хорошего исследования, но и в общем-то хороший способ его презентации. Начать с ахинеи, показать ее обоснованность ссылками на данные/авторитеты, а затем тривиализовать ее, вписав в контекст теории.

SAS и R в приложении к кредитным рискам и расчет взвешенных значений по группам в R

29 июля 2011, заметки Метки: , ,

Наткнулся на просторах сети (в группе по R на linkedin, если точнее) на пост про презентацию по использованию SAS и R в оценке кредитных рисков. Сама презентация тут. Про сами риски я почти ничего не понял, но вот сравнение кусков кода SAS и R и описание со стороны плюсов и минусов данных программ весьма интересно. Я сам SAS никогда не использовал, но, судя по коду, язык этот более жесткий, нежели R, например требуется явное объявление переменных. Кстати, вот кусок кода из презентации:
продолжение »

Описание результатов glm из R в MS Word

20 июня 2011, заметки Метки: , , , ,

Суть проблемы: glm при использовании не-гауссовских распределений (пуассоновское, биномиальное) не выдает информации о коэффициенте псевдо-R2. У этого есть определенные основания (которые я пока до конца не понял), но, тем не менее, обычно этот коэффициент требуется в публикациях. Для его вычисления можно использовать функцию pR2. Ниже мини-функция, которая вставляет в Word описательную таблицу регрессии и статистики самой модели.

library(R2wd) #пакет для работы с Word
library(pscl) #пакет для pR2
 
wdGet() #подключение к Word
 
# сама функция
describe.glm<-function (fit){
  cb<-cbind(LogLik=logLik(fit),deviance=fit$null.deviance-fit$deviance, df=fit$df.null-fit$df.residual, p=1-pchisq(-fit$deviance+fit$null.deviance, -fit$df.residual+fit$df.null ),"Pseudo R-squared" = pR2(fit)[4])
  summ<-cbind(coef(summary(fit)),NA)
  summ<-round(summ,digits=3)
  summ[,5]<-symnum(summ[,4], cutpoints=c(0,0.001,0.01,0.05,0.1,1),symbols=c('***', '**', '*', '.','' ), legend=F)
  summ[,4]<-ifelse(summ[,4]==0,"< 0.001",summ[,4])
  wdTable(summ,align=c("l",rep("r",ncol(summ)-1),"l"))
  wdNormal(paste("LL = ",round(cb[1],digits=2),", /chi2(",cb[3],") = ",round(cb[2],digits=2),", p = ",round(cb[4],digits=3),", /r2 = ",round(cb[5],digits=2),"",sep=""))
}
 
#пример с логистической регрессией из Venables and Ripley (2002, pp. 190-2.)
ldose <- rep(0:5, 2)
numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
sex <- factor(rep(c("M", "F"), c(6, 6)))
SF <- cbind(numdead, numalive=20-numdead)
budworm.lg <- glm(SF ~ sex*ldose, family=binomial)
summary(budworm.lg)
 
#Call:
#glm(formula = SF ~ sex * ldose, family = binomial)
#
#Deviance Residuals: 
#     Min        1Q    Median        3Q       Max  
#-1.39849  -0.32094  -0.07592   0.38220   1.10375  
#
#Coefficients:
#            Estimate Std. Error z value Pr(>|z|)    
#(Intercept)  -2.9935     0.5527  -5.416 6.09e-08 ***
#sexM          0.1750     0.7783   0.225    0.822    
#ldose         0.9060     0.1671   5.422 5.89e-08 ***
#sexM:ldose    0.3529     0.2700   1.307    0.191    
#---
#Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
#
#(Dispersion parameter for binomial family taken to be 1)
#
#    Null deviance: 124.8756  on 11  degrees of freedom
#Residual deviance:   4.9937  on  8  degrees of freedom
#AIC: 43.104
#
#Number of Fisher Scoring iterations: 4
#
 
describe.glm(budworm.lg)

Результат в Word (на самом деле, он там даже симпатичнее):

  Estimate Std. Error z value Pr(>|z|)  
(Intercept) -2.994 0.553 -5.416 < 0.001 ***
sexM 0.175 0.778 0.225 0.822  
ldose 0.906 0.167 5.422 < 0.001 ***
sexM:ldose 0.353 0.27 1.307 0.191  

LL = -17.55, /chi2(3) = 119.88, p = < 0.001, /r2 = 0.77

--------------
/chi2 потом меняется на нормальную запись χ2 с верхней двойкой, /r2 — на R2.
Еще б понять, почему после таблицы пустая строка вылезает.