Pages

Mayhill Fowler、Huffington Postを去る

アメリカの新興ニュースサイト、ハフィントン・ポストが2010年に初めて通年黒字化する見通しであることを、創業者のArianna Huffingtonが公表した。

Bloomberg:Huffington Post to Turn First Annual Profit, Views Sales Gains

月間ユニークビジターは2600万人。2010年の売り上げは3000万ドル程度で、2012年には1億ドルを見込んでいる。
毎日300本程度のオリジナル記事と、ほぼ同数のブログを収集して紹介している。社員数203人で、そのうち記者は97人。Daily Beast(Newsweekを吸収)やDrudge Reportなど、かつてのライバルを完全に引き離して、NYTimesの3500万人に迫っている。
オリジナル記事にリンクを張ることを徹底していて、マクラッチー社などは、かなりの流入があるため、ほとんど敵意を抱いていない。コメント欄を公開することで、大量の読者を引き込んでいる。
会社評価額は300億円から450億円で、「すでに買収される額でなく、株式公開しかない」そうだ。
もっとも、ハフィントンポストも他のブログメディアと同様、「やる気の搾取」で運営されている面がある。

市民記者、Mayhill Fowlerが去る

Blogger and reporter Mayhill Fowler. (Courtesy Mayhill Fowler)2008年の大統領選挙で、支持者とも記者ともいえぬ立場を利用して特ダネを連発した市民記者、メイヒル・ファウラーが「記事を書いても一銭もくれない」と不満を述べて、HuffingtonPostへの投稿をやめた。
「私がやってきたことと、専従記者が書くこととの質に差はない。彼らに給与が払われて、なぜ私には報酬がないのか。私が書いたスクープは繰り返し引用されたが、プロの書く記事は全然じゃないか」と、溜めていたものを吐き出している。
記者になるのが夢だった主婦、ファウラーは2007年、大統領選を追うブログ「OffTheBus」(随行記者の連中が乗るBusには乗れないという意味)の寄稿者としてHuffingtonPostに参加し、数百本の記事を書いた。
(このブログは1700人の市民記者が参加し、3人の専従記者が編集した)

2008年に記者を外した支持者パーティーに10万円の寄付金を払って参加したファウラー記者は、オバマ候補が労働者階級の人々について「they get bitter, they cling to guns or religion or antipathy to people who aren't like them or anti-immigrant sentiment or anti-trade sentiment as a way to explain their frustrations」と言ったと暴露し、クロントン陣営が「鼻持ちならないエリート」と喧伝したことで、大手メディアが書かなかった「市民記者の特ダネ」として持ち上げられた。

詳しくは佐藤美玲:市民記者がきっかけだった「ビターゲート事件」

ファウラー女史は、せっせと投稿する市民記者について「あなたがやっていることは、他人の収支の底上げを手伝っているだけだ。書き込む前に、どんな契約で書くことになるのか、見てみなさい」と悔しさでいっぱい。一方、HuffingtonPost側は「彼女は『辞める』と言っているが、そもそも雇われていないのに辞めるとは、これいかん」と小馬鹿にしている。「意見Opinionには対価は支払わない」というのが同社の方針だ。

カナダCBS:The bittersweet career of Mayhill Fowler

Variety編集局の崩壊

エンターテイメント雑誌Varietyの芸能記者Dana HarrisとPam McClintockが、サイトを有料化したVarietyをやめ、オンライン芸能サイトに移籍した。
Varietyは2009年に大幅なリストラを行い、多くの記者が辞めたばかりで、編集局はもぬけの殻状態らしい。慌てた同紙は、3人の元インターン学生を採用した。
希望退職やリストラで有力記者を切ると、編集局には何も残らないという好例で、日本でも最近起きつつある。
一つの原因は、ハリウッド情報が過熱競争で、締め切りがない24時間速報体制になって、記者が燃え尽きてしまったことだが、Varietyの場合、サイトの有料化でネット上でのプレゼンスが低下して、「多くの人に読まれたい」という記者の根本欲求が満たされなくなってしまったからだ。
経験不足の編集局長が、「抜かれたニュースは追わなくてもいい」と指示したことも現場の反発を買った。追い掛けを拒んで強がりを張る記者はいつまでたっても抜かれ続けるのは日米共通だ。

サン紙のクリスマス社説

1897年9月21日、ニューヨークのサン紙に、8歳の女の子、バージニアの投書と新聞社の回答が掲載された。
執筆したのはフランシス・ファルセルス・チャーチ記者。58歳で子供はいなかった。1世紀を過ぎてなお、毎年この時期に引用される同紙で最も有名な社説だ。「Yes, Virginia」といえばこの手紙を指す。
バージニアは長じて先生になり、1971年に死んだ。この手紙で毎冬マスコミに追われ続けた。

サン紙は1833年創刊、1950年に合併で消滅した一般紙。2008年に廃刊したニューヨークサン紙とは無関係。「犬が人を咬んでもニュースではないが、人が犬を咬んだらニュースになる」は、サンの市内版デスク、ジョン・ボガードの言葉と言われる(イギリス人編集者という説もある)。1868年に女性記者、1880年代に米初のファッション担当記者を置いた。
米新聞博物館Newseunには現物が残っている。
どうして8歳のバージニアが投書したのか、その短い文面からも明白だ。
「サン」の代わりに、「百科事典」「ラジオ」「学校の先生」「牧師」でもよさそうだが、いずれにしても、ネット時代には存在しえず、ネット世代には理解されないおとぎ話だ。
編集長さんへ。私は8歳です。友達の中に、サンタクロースはいないという子がいます。パパは「サンに書いてあったら、そうだろう」と言います。どうか、本当のことを教えてください。サンタクロースはいるのですか?
VIRGINIA O'HANLON.
115 WEST NINETY-FIFTH STREET.

(本文は当然、8歳向けに書かれてあるので、高卒以上で読めない日本人がいるはずがない!)
VIRGINIA, your little friends are wrong. They have been affected by the skepticism of a skeptical age. They do not believe except [what] they see. They think that nothing can be which is not comprehensible by their little minds. All minds, Virginia, whether they be men's or children's, are little. In this great universe of ours man is a mere insect, an ant, in his intellect, as compared with the boundless world about him, as measured by the intelligence capable of grasping the whole of truth and knowledge.

Yes, VIRGINIA, there is a Santa Claus. He exists as certainly as love and generosity and devotion exist, and you know that they abound and give to your life its highest beauty and joy. Alas! how dreary would be the world if there were no Santa Claus. It would be as dreary as if there were no VIRGINIAS. There would be no childlike faith then, no poetry, no romance to make tolerable this existence. We should have no enjoyment, except in sense and sight. The eternal light with which childhood fills the world would be extinguished.

Not believe in Santa Claus! You might as well not believe in fairies! You might get your papa to hire men to watch in all the chimneys on Christmas Eve to catch Santa Claus, but even if they did not see Santa Claus coming down, what would that prove? Nobody sees Santa Claus, but that is no sign that there is no Santa Claus. The most real things in the world are those that neither children nor men can see. Did you ever see fairies dancing on the lawn? Of course not, but that's no proof that they are not there. Nobody can conceive or imagine all the wonders there are unseen and unseeable in the world.

You may tear apart the baby's rattle and see what makes the noise inside, but there is a veil covering the unseen world which not the strongest man, nor even the united strength of all the strongest men that ever lived, could tear apart. Only faith, fancy, poetry, love, romance, can push aside that curtain and view and picture the supernal beauty and glory beyond. Is it all real? Ah, VIRGINIA, in all this world there is nothing else real and abiding.

No Santa Claus! Thank God! he lives, and he lives forever. A thousand years from now, Virginia, nay, ten times ten thousand years from now, he will continue to make glad the heart of childhood.

24日16時から恒例のサンタ追跡

アメリカとカナダが共同運用する北アメリカ航空宇宙防衛司令部(NORAD)が、クリスマス恒例のサンタ・クロース追跡を、24日午後4時から開始する。NORADは航空機や大陸間弾道ミサイル、人工衛星の軌道などを監視する米加国防組織。核戦争危機映画「ウォーゲーム」の舞台になった。

1955年にコロラドスプリングスのデパート「シアーズ」が、子供向けに「サンタへの直通電話」を開設した新聞広告に、誤って、NORAD(当時はCONAD)の司令長官のホットライン電話番号を掲載してしまい、子供の電話が殺到した。当日の当番責任者だったシャウプ大佐は、部下に「サンタの現在位置」を答えるように指示した。この伝統が現在まで続き、24日夜のテレビ・ラジオの天気情報では必ず引用されるようになった。

この広報は電話からラジオ、テレビ、ネットと、その時代の主流メディアをもっとも想像力を働かせて駆使する。相手が世界中の子供だからだ。2009年からTwitterFacebookを使い始めた。

NORADの公式説明では「サンタが北極から南に向かった形跡がないか部下にレーダーで確認させました。そして、電話を掛けてきた子供たちにサンタの現在地の最新情報を順次伝えた」らしく、NORADの公式見解では、現在でも「レーダー、人工衛星、サンタカメラ、ジェット戦闘機の最新鋭システムでサンタを追跡している」らしい。

「地球の静止軌道上には、赤外線センサーが搭載され熱を感知することのできる人工衛星が複数配置されています。なんと、赤鼻のトナカイ「ルドルフ」の鼻からは赤外線信号が放出されているため、NORAD の人工衛星はルドルフとサンタの位置を検知できるのです」

この活動は基地関係者のボランティアと企業の寄付で運営されている。今年の主スポンサーはグーグル。技術的にもGoogle Earthで追跡できるようなサービスを予定している。

今年のショッキングな出来事は、7カ国語に対応しているウェブサイトの2番目に中国語が登場したことだ。「圣诞老人的小矮人助手们已经比往常更为繁忙地做着今年的准备工作」なんて可愛らしい。

ドイツ:驚愕の早口言葉

【お正月向けの一時的記事です。動画再生中に直方体サイコロの物理シミュレーションをしています。詳しくはここで説明しています】

ドイツのテレビ番組に昔登場した早口言葉(Zungenbrecher=直訳すれば「舌破り」)の名人。スロー再生されても完璧なドイツ語。

BBCのデータジャーナリズム:the Joy of Stats

英BBCの4チャンネルで12月から、統計データを扱う番組「Joy of Stats(統計の楽しみ)」が始まっている。データ・ジャーナリズムはガーディアンだけの専売品ではない、という対抗心が表れている。



登場するのはHans Rosling。ノーベル医学生理学賞で有名なスウェーデン・カロリンスカ研究所の教授でスイス人。専門は医学統計。同時に、病気の流行と社会的、経済的要因の関係を研究している。Gapminderというデータ・サイトを運営し、Trendalyzerというプレゼンテーションソフトを開発した。

データから通念を裏切る切り口は、アイデア見本市「TED」で注目されていた。一般大衆に語りかける専門家として「データだけではだめだ。どう表現するかが重要だ」という思想を実践している。圧巻だ。

TED:ハンス・ロスリングのHIV考察: 新たな事実と驚愕のビジュアルデータ(字幕設定可)


一方、英ガーディアンはデータ部門を1ジャンルとして独立させた。DataStoreというセクションで、同紙お得意のサークル・チャートが満載だ。

データが発表されても、一度使われただけで死蔵されてしまうことを防ぎ、世界中の人に信頼できるデータ倉庫として開放しようという試み。
データはGoogleDocsの表計算アプリで公開される。将来的には、ビジュアル化アプリや読者のグラフィック作品も紹介する予定だという。
同様の試みは、すでにNYTimesが「Visualization Lab」で始めている。データをAPIで開放するだけでなく、IBM研究所のMany Eyesと提携し、ビジュアル化作品を公開している。(Many EyesはJava appletベース)

動画を使う表現にはまだまだ可能性がある。例えば、こんな動画もあるようだ。

3D物理エンジン:jiglibflash

3D空間の物理エンジンjiglibflashを使ってみた。Papervision3Dと完全に統合されている。

【基本】
1)初期化段階でPV3Dのsceneを結びつける
physics = new Papervision3DPhysics(scene, 8); // 8は速度係数
2)PV3DのRenderTickごとに時間を進める
protected override function onRenderTick(event:Event = null):void {

physics.step();
// physics.engine.integrate(0.1);ステップ時間を固定する場合
super.onRenderTick(event);
}

【物体】
物体作成には以下の関数を使う。Papervision用物体とjiglib用物体を同時につくってくれる。SphereとCube、Planeのみ。
public function createSphere(material:MaterialObject3D, radius:Number=100, segmentsW:int=8, segmentsH:int = 6):RigidBody
戻り値のRigidBodyはjiglib内の実体。

複雑な形状はBlenderからcollada1.4形式(.dae)で吐き出し、DisplayObject3Dにした上で、JSphereに渡して生成する。
【操作】
x,y,z,rotationXなどが読み取り可能。操作はできないので、マウスに反応させるにはプログラムが必要(Box2Dと同じ)。

NYTimes:メーター方式は愛読者依存

ニューヨークタイムズの有料化について、地元の雑誌「New York」が予想を書いている。

採用される方式は、これまで公表されてきたメーター方式で、一定本数までは無料だが、それ以上には料金がかかる。同誌は、システムは、(日本でいえばメディア・パブのような)ネット上で宣伝する輩が必ず登場する「裏口」を使うことをよしとしない「特定の読者」をターゲットにしているという。
(ハッカーには随時システム対策で、コピペはデジタル著作権法で対応するのだろう)

ハッカーのような正面突破だけでなく、単純なコピペでも「有料化の壁」は打ち抜かれてしまうが、そのような手段で読むことをできるだけ面倒にして、魅力的な購読料で「NYTimesのクラブ員」から料金を払ってもらおうという方針。iTunesを見習っている。
NPRのように、タイムズを支えている正規の読者(goodwill member)になるという人に精一杯のサービスをしようという計算がある。

NYtimes.comの平均的訪問者は月4回にすぎず、メーター方式では無料のまま閲覧できるという。僕は確実に引っかかる。

CNNがiPad版アプリ スポンサーはトヨタ

CNNが14日からiPad版無料アプリを公開した。1.99ドルで売っていたiPhone版も無料にした。大手では最も遅い。

CNN releases 'immersive' iPad app

新聞のようなスタイルではなく、雑誌のように画像を満載した作りで、新しいフォーマットとして普及するかもしれない。動画も配信し、Facebookやtwitter、メールにコメントを送り出せる機能も備えている。
表示方法も選べるようで、レイアウトモードとリストモード、スライドショーモードがある。広告依存で、最初のスポンサーはレクサス。

2011年はAll-accessモデル

Ken Doctorは、2011年アメリカ国内だけでiPadが5000万台、アンドロイドなどのタブレット端末が2000万台売れる見通しで、とりわけAppleのプラットフォームが無視できなくなると指摘している。漏れ聞こえる話として

アップルが新聞用課金システム(iNewsstand)で、無料のアプリ+購読料の仕組みを作る
発行者はブラウザからのアクセスを禁止しなければならなくなる(バイパスされるので)
発行者はアップルの枠組みの外で、独自の認証システムを作らなければならない

という。2011年に始まるのは「All-accessモデル」で、単一課金でPC+タブレット+携帯のいずれでも見たい時に見たいだけ閲覧できる。すでにWSJは週3.99ドルで単一課金を始めている。JournalismOnlineを使った地方新聞も単一課金を始める準備をしている。

ロイター、トリビューンと配信契約

ロイターのアメリカ子会社で、ブログのアフリゲーションも行うロイター・アメリカが、トリビューン社と配信契約を結んだ。
同社は、ハイパーローカルサイトなど6サイトと、その記事を新聞社サイトに配信するパートナー契約を結んでいる。リストラが進んだ新聞編集局にさまざまなサービスをアラカルトで提供する戦略で、トリビューンはアメリカで最初の顧客になった。パートナーのExaminer.comとは、ローカル記事とロイター記事を交換する関係になる。Sports Direct、Sports Xchange、SB Nationはロイターが苦手なアメリカスポーツを配信する。

経営再建中のトリビューン社は、ロイターと記事、写真、動画などの配信を受け、シカゴ・トリビューンやロサンゼルスタイムズ、参加のテレビ局サイトなどで使用する。契約料は約4億円で、トリビューンはAPとの契約メニュー(9億円)を削って捻出する。
ただし、ロサンゼルスタイムズはAPのフルメニュー加盟社に留まり、傘下のテレビは契約を完全に打ち切る。

AP通信にとって、トリビューングループの離脱は大打撃。大手2紙が脱退したため、社団法人から株式会社に移行せざるを得なくなったカナダ通信の二の舞になる怖れすらある。

一方のトリビューンも、グループ内の各地のトリビューン紙向けに共通紙面をシカゴで制作しており、外販も始めた。
シカゴトリビューンの場合、6割が地元ニュース、残る4割のうち、4分の3がグループ内配信(20人の海外特派員、32人の駐ワシントン記者、Tribune Media Serviceのエンタメ・スポーツ情報)で占められている。残る1割が通信社によるものだった。APを使わないテストを行い、支障がないことも確かめていた。

Well-madeなコンテンツの配信

東京MXテレビの「松嶋×町山 未公開映画を観るTV」で放映された映画をインターネットで公開する「未公開映画祭」が11月17日から始まった。映画館にかかることがない海外ドキュメンタリーの問題作を1本500円で見せる直球企画。

ネット企業が低予算=低水準、あるいはアマチュア依存のコンテンツ(といっていいのか?)で、既存の制作者を批判(冷笑)ばかりして、全くといっていいほどwell-madeなコンテンツ制作に乗り出さないのには本当に頭に来る。東京は(政府補助がないのに)世界的にも指折りの映画充実都市で、ネットが情報の地方格差を克服すると言われてきたのに、このような企画がほとんどなかった。この試みは是非とも成功してほしい。
配信・運営は、この番組を制作している制作会社ケイマックスの子会社ケイマックス・ブラザース。

有料でwell-madeな音楽コンテンツとして最先端を走っていたのはベルリンフィルの「デジタル・コンサートホール」だ。2009年にドイツ銀行の支援で始まった。
24時間聞き放題で9.9ユーロ、30日間で29ユーロ、12ヶ月で149ユーロ。アーカイブだけでなく、その時間内にコンサートがあれば生中継で鑑賞できる。(2009年はコンサート単位だった)
メニューもドイツ語、英語、日本語に対応している。IIJの鈴木社長によると、すでにチケット収入を上回っているそうだ。
音がCD水準で、パソコンをステレオに接続すると素晴らしい音で聞くことができる。また、今年から、試験的ながら3D収録も公開している(専用メガネが必要)。

Django:管理画面のカスタマイズ

AdobeセミナーでMightyWorks@豊田氏のWordPressライブコーディングを見た。WordPressの管理画面を初めて見て、Djangoの問題点は管理画面にバリエーションがないことだと思った。以下は、カスタマイズに関するメモ。

問題点:
Dashboardなど全体を見渡す画面がない
WYSIWYGやファイル転送が(組み込みでは)ない
UNDOがない
複雑なモデルが扱いにくい

解決1)ModelAdminクラスでcssとjsをカスタマイズする

<pre>class ArticleAdmin(admin.ModelAdmin):
class Media:
&nbsp;&nbsp; &nbsp;css = {
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;"all": ("my_styles.css",)
&nbsp;&nbsp; &nbsp;}
&nbsp;&nbsp; &nbsp;js = ("my_code.js",)
</pre>

解決2)テンプレート改変
鍵になる雛形
admin/base.html
admin/index.html
admin/change_form.html
admin/change_list.html
admin/<my_app>/change_form.html</my_app>
admin/<my_app>/<my_model>/change_form.html</my_model></my_app>
以下のように、既存テンプレートを拡張する。
{% extends
"admin/change_list.html" %}
{% block object-tools %}
<h1 class="errornote">
Look Here!
</h1>
{{ block.super }}
{% endblock %}
解決3)テンプレートの別バージョン(表面上だけ)
django-grapelli
高機能スキン
ella
チェコの雑誌サイトのために作られたCMS
Gondola
有料CMS

解決4)UserModelAdminを新設する
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from demo_app.models import UserProfile
class UserProfileInline(admin.TabularInline):
model = UserProfile
fk_name = 'user'
max_num = 1
class CustomUserAdmin(UserAdmin):
inlines = [UserProfileInline, ]
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
参考とすべき既存クラス
django.contrib.admin.sites.AdminSite
django.contrib.admin.options.ModelAdmin
django.forms.models.ModelForm
django.contrib.admin.options.InlineModelAdmin
django.forms.formsets

解決5)カスタムビューを新設する
class PostAdmin(admin.ModelAdmin):
  def my_view(self, request):
    return admin_my_view(request,self)
  def get_urls(self):
    urls = super(PostAdmin,self).get_urls()
    my_urls = patterns('',(r'^my_view/$', self.my_view))
    return my_urls + urls

def admin_my_view(request, model_admin):
  opts = model_admin.model._meta
  admin_site = model_admin.admin_site
  has_perm = request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())
  context = {'admin_site': admin_site.name,'title': "My Custom View",
         'opts': opts,'root_path': '/%s' % admin_site.root_path,'app_label': opts.app_label,
         'has_change_permission': has_perm}
  template = 'admin/demo_app/admin_my_view.html'
  return render_to_response(template, context, context_instance=RequestContext(request))

米保健社会福祉省がビジュアル化コンテスト

米保健社会福祉省の健康研究健康品質局Agency for Healthcare Research and Quality (AHRQ) が、マイノリティや低所得者、高齢者など、特別に注目しなければならない「優先市民priority population」の健康状況についてのデータをビジュアル化するコンテストを開いている。
締め切りは1月21日。優勝賞金は5000ドル。


基本になるレポートデータが公開されているが、公開データなら何を使っても構わない。
特定のエスニックグループや集団に固有の疾病や医療格差について光を当てることが課題。

FlashかHTML5か

マルチメディアを担う技術はFlashか、HTML5かについて、記者教育と実装について2題。

カリフォルニア大バークレー校のジャーナリズム学科でマルチメディアの講師をしているJeremy Rueは、学生向け授業とジャーナリスト向けワークショップで4年間教えた経験から、将来性に疑問を抱きながらもFlashに軍配を上げている。

Flash vs. HTML5: What should journalists learn next?

フラッシュ:1社提供。iPhone/iPadで使える見込みがない。3時間の授業で最初の作品が作れるようになる。Final Cut ProやPhotoshopと差がない。
HTML5:オープン規格。実質的にはJavaScriptそのもので、どう教えていいのか分からない。教育に最低数ヶ月かかる。直感的な統合開発環境がない。

とはいえ、学生にはHTML5をマスターするものいて、このサイト「Behind Bars」は昨年の学生がFlashなしで作ったものだ。学生の中には、全くプログラミングの知識がなくても短期間にJQueryをマスターする者もいる。だから、無理ではないかもしれない。

だだし、問題はまだある。パソコン向けにはクリックに対応すればいいが、スマートフォンはタッチベースだ。この障害が2つを別の世界にしている。幸い、JQuery Mobileというフレームワークが開発されている。
とはいえ、デザインコンセプトは大きく違う。モルガンスタンレーの調査では、2015年にPCよりもスマートフォンの方が多くなる。
Check out this SlideShare Presentation:

NYタイムズのiPad用選挙地図

NYTご自慢の選挙地図はFlashで作られているため、iPadでは表示されない。このため、iPad用にUIを改変したHTML canvasベースの地図を作った。
UIでは、選択のボタンを大きくし、-webkit-gradientなどのWebKit限定CSS属性で立体感を出した。
#nytint-state-overview-map-nav {
margin-bottom: 20px;
height: 20px;
-webkit-border-radius: 6px;
border: 1px #bbb solid;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E7E7E7), color-stop(11%,#F5F5F5), color-stop(89%,#F5F5F5), color-stop(100%,#E7E7E7));
}
さらに、州選択には<select>エレメントを使用し、iPadのセレクトリストに対応した。インタラクティブ性に関しては、地図データをバイナリで転送する仕組みを準備、ズームにもCSSのズーム機能を使った。javascriptよりも、WebKitのtransition属性を活用した。iPadではz属性はGPUで処理されるためだ。
iOS4.2では WebSockets, typed arrays, XHR support for blobs (binary data), ImageDataも利用可能になる。

NYタイムズの有料化はどうなる

来月から有料化されるNYTimesについて、ニーマン研が関係者に予想を聞いている。

NJL:The great paywall debate: Will The New York Times’new model work?

Megan McCarthy
Mediagazer編集者
2011年は一般ニュースサイトの有料化とその崩壊。NYTは3月には軌道修正させられるだろう
Steve Brill
Press+(課金システム)
フリーミアムを試す新聞・雑誌に杞憂は起きない。多くのサイトがヘビーユーザーに課金しはじめるだろう。メーター方式は広告収入を減らすことがない。ブランド力を維持しながら、地域のニュースと情報を供給することで、かつての収益率まで徐々に上昇し始めるだろう。プリント版は徐々に中止され、最後は日曜版だけになるかもしれない。
C.W. Anderson
ニューヨーク大助教授
大量の読者がガーディアンとBBCに流れ、タイムズは有料化を断念するだろう。タイムズの有料化は2011年後半まで先延ばしされるかもしれない。ニュース中毒の読者は課金に応じるだろうか?ガーディアンに流れるだけだ。タイムズへのリンクは減少し、タイムズが公的領域に関する主要ニュース機関ではなくなるだろう。
第二の予想:有料化はされない。
Barry Sussman
Nieman Watchdog編集者
有料化は経済的に成功する。即座に。
Paddy Hirsch
公共放送
有料化へ追随する報道機関はあるだろうが、経済雑誌などのニッチ部門を例外としてコンテンツは無料になる流れは続く。
Jason Fry
Reinventing the Newsroom
有料化はある程度成功するだろう。課金に応じる人はいるだろうが、人数が少ないために、全体としては失敗と見なされる。課金についての議論も続くが、ドグマ的な議論から微妙な議論に変わるだろう。
Markos Moulitsas
Daily Kos
タイムズの課金は1年持たない。
Nikki Usher
USC Annenberg(調査機関)
タイムズの課金は全国レベルの報道機関にとって新しい時代の始まりになる。しかし、地方紙にも一般化できないかもしれない

社会科学のベイズ統計 動的線形モデルDLM


スタンフォード大学のSimon JackmanによるPolling the Pollsについては、Jackman本の最終章の最後に書いてある。

パネルデータを対象とする時空間モデル。隠れマルコフモデルと同じ発想だが、投開票日にだけ姿を現すのがおもしろい。
工学的にはカルマン・フィルターと呼ばれ、アポロ計画でロケットの軌道推定に使われた。

 【モデル】
  • i : 世論調査のナンバー
  • t : 日付(最初の調査を第1日とし、第T日目に投開票日をむかえる)
  • y: i番目の調査による政党の相対得票率(調査結果)
  • α: t日における政党の相対得票率(これが知りたい)
  • μit(i)j(i) : 世論調査の期待値はα(得票率)とδ(調査主体jによる癖、house effect)
  • σ2i=yi(1-yi)/n: サンプル数nの調査の分散期待値
  • yi〜N(μi2i) : 調査結果は正規分布
さらに以下のような仮定をする。
  • αt〜N(αt-12) : 政党得票率は分散ω(これ自体が分散0.1の雑音)でランダムウオークする
  • α1〜Uniform(0.15,0.5) : 初期値は多分15-50%で一様分布
  • αT=開票結果 : 最終的にこの結果にならねばならない

モデル式は以下の通り。
model{
    ## NPOLLS個の世論調査について
    for(i in 1:NPOLLS){
      ## μはalphaとhouse(効果)の和である
      mu[i] <- house[org[i]] + alpha[date[i]]
      ## 世論調査結果はμとprecで決まる正規分布
      y[i] ~ dnorm(mu[i],prec[i])
    }
    ## 推移モデル
    ## すべての期間について
    for(i in 2:NPERIODS){      ## 一つ前のalphaを基準にランダムウオークする
      mu.alpha[i] <- alpha[i-1]
      alpha[i] ~ dnorm(mu.alpha[i],tau)
    }
    ## 事前確率
    sigma ~ dunif(0,.01)    ## sigmaは0−1の一様乱数
    tau <- 1/pow(sigma,2)   ## ランダムウオークの分散
    alpha[1] ~ dunif(.15,.5) ## 初期値は15-50%の一様乱数
    for(i in 1:5){          ## 調査主体(この場合は5社)に応じた偏差
      house[i] ~ dnorm(0,.01)
    }
  }

各調査のシフト量
データ民主自民
朝日支持政党0.159920.02857
朝日投票予定0.105440.02764
NHK0.086730.06445
日経支持政党(重ね聞き)0.102750.03622
日経投票予定(重ね聞き)0.06954-0.01145
読売支持政党0.112310.05069
読売投票予定0.110670.02004

民主に関するhouseEffectの散らばり。

自民に関するhouseEffect

社会科学のベイズ統計 因子分析

因子分析には共通因子ξ(グザイ、xi)が共通係数γ(gamma)の線形回帰によって定義されると考える。その他のτなどはアプリオリに決める必要がある。
従来の因子分析に比べて、切片と傾きが求めることができるので、当てはめがよくなる。

モデルは以下の通り。
model{
  for(i in 1:50){
    for(j in 1:5){
      mu[i,j] <- gamma[j,1] + gamma[j,2]*xi[i]
      y[i,j] ~ dnorm(mu[i,j],tau[j])
    }
  }
  # ξ=xi、グザイ
  for(i in 1:50){
    xistar[i] ~ dnorm(0,10)
    xi[i] <- (xistar[i] -mean(xistar[]))/sd(xistar[])
  }
  for(j in 1:5){
   gamma[j,1:2] ~ dmnorm(g0[1:2],G0[1:2,1:2])
   tau[j] ~ dgamma(.01, .01)
   omega[j] <- 1/sqrt(tau[j])
  }
}
R側のコマンドはこんな感じになる。
if(exists("foo")) rm(foo)
foo <- list()

library(base)
data <- state.x77[,2:6]
data[,1] <- data[,1]/1000
## 相関行列をざっと見る
panel.cor <- function(x, y, digits=2, prefix="", cex.cor)
{
    usr <- par("usr"); on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    r <- abs(cor(x, y))
    txt <- format(c(r, 0.123456789), digits=digits)[1]
    txt <- paste(prefix, txt, sep="")
    if(missing(cex.cor)) cex <- 0.8/strwidth(txt)
    
    test <- cor.test(x,y)
    # borrowed from printCoefmat
    Signif <- symnum(test$p.value, corr = FALSE, na = FALSE,
                  cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
                  symbols = c("***", "**", "*", ".", " "))
    
    text(0.5, 0.5, txt, cex = cex * r)
    text(.8, .8, Signif, cex=cex, col=2)
}
## pairs(data, lower.panel=panel.smooth, upper.panel=panel.cor)
res <- princomp(data)
summary(res)
## eigenvalue
eigen(cor(data))

ystar <- sweep(data,2,apply(data,2,mean))
## conventional factor analysis
f1 <- factanal(data,1,scores="regression")
lambda <- unclass(f1$loadings)
psi <- diag(f1$uniquenesses)
sigma <- var(data)
gamma <- t(lambda)%*%solve(psi)%*%lambda
beta <- t(solve(1 + gamma)%*%t(lambda)%*%solve(psi))
x1 <- scale(data,TRUE,TRUE)%*%beta
x0 <- f1$scores

forJags <- list(g0=rep(0,2), G0=diag(.01,2,2), y=matrix(as.numeric(data),50,5))
g <- matrix(NA, 5, 2)
omega <- rep(NA, 5)
for(j in 1:5){
 tmpReg <- lm(data[,j] ~ x0)
 g[j,] <- coef(tmpReg)
 omega[j] <- summary(tmpReg)$sigma
}
inits <- list(list(gamma=g, tau=1/omega^2, xistar=as.vector(x0), .RNG.name="base::Mersenne-Twister",.RNG.seed=1264))
require(rjags)
foo <- jags.model(file="factor.bug", data=forJags, inits=inits)
update(foo, n.iter=1000)
res <- coda.samples(foo, variable.names=c("xi","gamma"), n.iter=50000)
結果は以下の通り。

Jackmanはこんな風に美しいグラフを描く。
extractFromCoda <- function(coda,vname){
  dnames <- dimnames(coda[[1]])[[2]]
  theString <- paste("^",vname,sep="")
  cat(paste("searching for",theString,"in MCMC output\n"))
  theOnes <- grep(theString,
                  dnames)
  cat(paste("found",length(theOnes),"matching columns\n"))
  as.matrix(coda[[1]][,theOnes])
}

x <- extractFromCoda(res,"xi")
g <- extractFromCoda(res,"gamma")
## omega <- extractFromCoda(res,"omega")
nsims <- dim(x)[1]
## summaries for x
myfunc <- function(x)c(mean(x), quantile(x,c(.025,.975)))
xbar <- apply(x,2,myfunc)
xsd <- apply(x,2,sd)
xbar <- t(xbar)
dimnames(xbar) <- list(dimnames(state.x77)[[1]], c("Mean","2.5%","97.5%"))
gbar <- t(apply(g,2,myfunc))  ## summaries for gammas
##omegabar <- t(apply(omega,2,myfunc))

## r-squared
r2 <- matrix(NA,nsims,5)
yss <- apply(y,2,function(x)sum((x-mean(x))^2))
for(iter in 1:nsims){
  rho <- cor(cbind(x[iter,],y))[2:6,1]
  r2[iter,] <- rho^2
}  
r2bar <- t(apply(r2,2,myfunc))

#########################################################################
## graphs 

indx <- order(xbar[,1])          ## sort ideal point estimates
cols <- rep("black",50)          ## colors
southernStates <- c("Louisiana","Mississippi","South Carolina","Alabama","Georgia","North Carolina","Kentucky", "Tennessee","Texas","Arkansas","Virginia","Florida")
cols[dimnames(xbar)[[1]] %in% southernStates] <- gray(.45)

##pdf(file="LatentVariable1.pdf", width=11.5,height=16)
png(file="LatentVariable1.png", width=600,height=1200)
par(mfrow=c(1,1), mar=c(2,0.1,2,0.1), omi=rep(0,4))
plotlims <- range(xbar)
axislims <- c(-2.5,2)
axisticks <- seq(from=axislims[1],to=axislims[2],by=.5)
axislabs <- as.character(axisticks)
textloc <- 1.01*xbar[,2]
textloc[textloc > -3] <- 1.01 * -3
 ## empty plotting region
plot(x=plotlims,y=c(1,50), type="n", cex=.5, ylim=c(.5,50.5),yaxs="i", axes=FALSE, xlab="",ylab="")

for(i in 1:50){    
  ## line for confidence interval
  lines(y=c(i,i), x=c(xbar[indx[i],2],xbar[indx[i],3]), lwd=2.5)
  ## overlay posterior mean
  points(y=i,x=xbar[indx[i],1],col=cols[indx[i]], pch=19,cex=1.25)
  ## text, state name
  text(xbar[indx[i],3],i, dimnames(xbar)[[1]][indx[i]], adj=-0.1)
}
axis(1,at=axisticks,labels=axislabs,cex=.5,lwd=1.5)
axis(3,at=axisticks,labels=axislabs,cex=.5,lwd=1.5)
dev.off()
MCMC因子分析
伝統的因子分析

社会科学のベイズ統計 JAGSの使い方

JAGS=Just Another Gibbs Samplerは、ギブス抽出法を用いたベイズ階層モデルの計算をするために作られたフリープログラム。
同様のプログラムにはWinBUGSとかOpenBUGSがある。
BUGS(Bayesian inference Using Gibbs Sampling、ギブズ標本によるベイズ推計)という枠組があり、マルコフ連鎖モンテカルロ法によってシミュレートするモデル(大抵のばあい拡張子.bug)をBUGS言語というフォーマットで記述し、観測データと初期値を与えると計算してくれる

参考:フロリダ大Rebecca Steortsによる紹介スライド

 【使い方メモ】
JAGSをインストールする。基本的に統計ソフトRが入っていることが前提。RとJAGSを繋ぐパッケージrjagsを組み込む(「パッケージインストーラ」のCRANバイナリではなくCRANソースから)
R >>install.packages("rjags")
//カレントディレクトリを移動しておく
R >>setwd("/path-to-example/directory")
作者によるExampleユーザーマニュアルなどが公開されている。

北大の久保先生による説明
生態学のデータ解析 - R で JAGS
統数研ベイズ講習 2009
統数研ベイズ講習 2010

使える関数は以下の通り。




社会科学のベイズ統計 カテゴリー値の推定

【順序のあるカテゴリー値の推定=ordered outcome】潜在変数を設定して、その値がどの区画に落ちるかどうかを見る

サンプルはAmerican National Election Studiesによる調査データ。yは公的事象の一般的知識水準。lengthはインタビュー時間。idは調査担当者。
> politicalInformation
               y collegeDegree female age homeOwn govt length  id
1    Fairly High           Yes     No  49     Yes   No  58.40   1
2        Average            No    Yes  35     Yes   No  46.15   2
3      Very High            No    Yes  57     Yes   No  89.52   3
4        Average            No     No  63     Yes   No  92.63   4
5    Fairly High           Yes    Yes  40     Yes   No  58.85   4
6        Average            No     No  77     Yes   No  53.82   4
7        Average            No     No  43     Yes   No  58.47   5
8    Fairly High           Yes    Yes  47     Yes   No  53.02   5
9        Average           Yes    Yes  26     Yes   No  58.98   5
10     Very High            No    Yes  48      No  Yes  86.00   6
11       Average            No    Yes  41     Yes   No  52.93   7
12   Fairly High            No     No  41     Yes   No  48.20   7
(略)

Probit推定はMCMCpackを使えばいい。
> require(MCMCpack)
 要求されたパッケージ MCMCpack をロード中です 
##
## Markov Chain Monte Carlo Package (MCMCpack)
## Copyright (C) 2003-2010 Andrew D. Martin, Kevin M. Quinn, and Jong Hee Park
##
## Support provided by the U.S. National Science Foundation
## (Grants SES-0350646 and SES-0350613)
##
> mcmc <- MCMCoprobit(y ~ collegeDegree + female + log(age) + homeOwn + govt + log(length), data=politicalInformation, burnin=1000, mcmc=10000, verbose=1000)


MCMCoprobit iteration 1 of 11000 
beta = 
  -1.83352
   0.78388
  -0.36721
   0.28265
   0.36068
   0.06903
   0.54890
Metropolis acceptance rate for gamma = 0.00000


MCMCoprobit iteration 1001 of 11000 
beta = 
  -2.59300
   0.81042
  -0.33587
   0.33996
   0.19943
   0.18885
   0.67586
Metropolis acceptance rate for gamma = 0.76523

(略)

MCMCoprobit iteration 10001 of 11000 
beta = 
  -2.55985
   0.83729
  -0.41622
   0.19746
   0.35694
   0.16774
   0.77403
Metropolis acceptance rate for gamma = 0.77612


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The Metropolis acceptance rate for beta was 0.77436
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 警告メッセージ: 
In model.response(mf, "numeric") :
  using type="numeric" with a factor response will be ignored
> 

Logitモデルはちょっと難しい。

library(pscl)
data(politicalInformation)

ols <- lm(as.numeric(y) ~ collegeDegree + female +log(age) + homeOwn + govt + log(length), data=politicalInformation,x=T,y=T)
(ols)
forJags <- list(y=ols$y, x=apply(ols$x[,-1],2,function(x)x-mean(x)),N=length(ols$y),b0=rep(0,6),B0=diag(1E-08,6))
inits <- list(list(beta=coef(ols)[-1],tau0=2:5))
require(rjags)
foo <- jags.model(file="orderedLogit.bug", data=forJags, inits=inits)
res <- coda.samples(foo, variable.names=c("beta","tau"), n.iter=50000, thin=100)
モデルは以下の通り
model{
  for(i in 1:N){
    mu[i] <- x[i,1]*beta[1] + x[i,2]*beta[2] + x[i,3]*beta[3] + x[i,4]*beta[4] + x[i,5]*beta[5] + x[i,6]*beta[6]
    logit(Q[i,1]) <- tau[1]-mu[i]
    p[i,1] <- Q[i,1]
    for(j in 2:4){
      logit(Q[i,j]) <- tau[j] - mu[i]
      p[i,j] <- Q[i,j] - Q[i, j-1]
    }
    p[i,5] <- 1 - Q[i,4]
    y[i] ~ dcat(p[i,1:5])
  }
  beta[1:6] ~ dmnorm(b0[],B0[,])
  for(j in 1:4){
    tau0[j] ~ dnorm(0, .01)
  }
  # sortはJAGSのみ
  tau[1:4] <- sort(tau0)
}

logit(Q[i,1]) <- tau[1]-mu[i]はQ[i,1]=1/(a;exp(-tau[1]-mu[i]))のこと。dcatは括弧内の確率で決まるカテゴリー値。sortは昇順並べ替え。
> summary(res)

Iterations = 1010:51000
Thinning interval = 10 
Number of chains = 1 
Sample size per chain = 5000 

1. Empirical mean and standard deviation for each variable,
   plus standard error of the mean:

           Mean      SD  Naive SE Time-series SE
beta[1]  1.4612 0.09716 0.0013740      0.0019184
beta[2] -0.6553 0.08930 0.0012629      0.0016932
beta[3]  0.4664 0.12646 0.0017884      0.0030589
beta[4]  0.4498 0.09455 0.0013371      0.0019446
beta[5]  0.1724 0.13440 0.0019007      0.0033755
beta[6]  1.1113 0.14911 0.0021087      0.0039453
tau[1]  -3.1718 0.10742 0.0015192      0.0014938
tau[2]  -1.3524 0.05979 0.0008456      0.0008958
tau[3]   0.3573 0.05271 0.0007455      0.0006848
tau[4]   1.8186 0.06840 0.0009674      0.0009597

2. Quantiles for each variable:

            2.5%      25%     50%     75%   97.5%
beta[1]  1.26756  1.39437  1.4625  1.5258  1.6501
beta[2] -0.83107 -0.71398 -0.6559 -0.5932 -0.4867
beta[3]  0.21936  0.37945  0.4666  0.5524  0.7202
beta[4]  0.26697  0.38413  0.4499  0.5165  0.6294
beta[5] -0.09063  0.08134  0.1723  0.2633  0.4372
beta[6]  0.81689  1.00770  1.1131  1.2132  1.3980
tau[1]  -3.38414 -3.24649 -3.1710 -3.0991 -2.9654
tau[2]  -1.46826 -1.39309 -1.3525 -1.3137 -1.2351
tau[3]   0.25478  0.32167  0.3576  0.3932  0.4572
tau[4]   1.68598  1.77103  1.8183  1.8655  1.9545

Logitの方は、中央化されている分、シフトしている。

【順序のないカテゴリー値=multinomial outcome】各選択肢ごとに潜在変数(効用変数U)を用意する。iがjを選ぶ場合をUij=xiβi+εijと置く。リンク関数としてF(εij)=exp[-exp(-εij)] を仮定することで、p(εij)=exp(-εij)exp[-exp(-εij)] とすると、πij=prob(yi=j)=prob(Uijが最大の場合)を求める。
上の仮定では、πij=exp(xiβj)/Σ(exp(xiβk))
identifyするために、β0=0にする。つまり最初の選択肢が効用変数がゼロ基準になる。


1992年米大統領選の投票結果データ。
ちなみに、Inter-university Consortium for Political and Social Researchによる調査結果もある。

> vote92
       vote dem rep female persfinance natlecon clintondis bushdis perotdis
1      Bush   0   1      1           1        0     4.0804  0.1024   0.2601
2      Bush   0   1      1           0       -1     4.0804  0.1024   0.2601
3   Clinton   1   0      1           0       -1     1.0404  1.7424   0.2401
4      Bush   0   1      0           0       -1     0.0004  5.3824   2.2201
5   Clinton   0   0      1           0       -1     0.9604 11.0220   6.2001
6   Clinton   1   0      1          -1       -1     3.9204 18.6620  12.1800
7     Perot   1   0      1           1        0     0.0004  5.3824   2.2201
8      Bush   0   1      0           0        0     1.0404  1.7424   0.2401
9      Bush   0   1      1           1       -1     9.1204  0.4624   2.2801
10    Perot   0   1      0           0        0     1.0404  1.7424   0.2401
(略)
モデルは以下の通り。
model{
  for(i in 1:NOBS){
    for(j in 1:3){
      mu[i,j] <- beta[j,1] + beta[j,2]*dem[i] + beta[j,3]*ind[i]
                 + beta[j,4]*rep[i] + beta[j,5]*female[i]
                 + beta[j,6]*natlecon[i]
                 + gamma*dist[i,j]
      emu[i,j] <- exp(mu[i,j])
      p[i,j] <- emu[i,j]/sum(emu[i,1:3])
    }
    y[i] ~ dcat(p[i,1:3])
  }
  for(k in 1:6){
    beta[1,k] <- 0
    betastar[1,k] <- 0
  }
  for(j in 2:3){
    beta[j,1:6] ~ dmnorm(b0,B0)
  }
  gamma ~ dnorm(0, .01)
  for(j in 2:3){
    bmean[j] <- mean(beta[j,2:4])
    betastar[j,1] <- beta[j,1] + bmean[j]
    for(k in 2:4){
      betastar[j,k] <- beta[j,k] - bmean[j]
    }
    for(k in 5:6){
      betastar[j,k] <- beta[j,k]
    }
  }
}
データは以下のように準備する。
library(pscl)
forJags <- list(y=4-as.numeric(vote92$vote),ind=as.numeric(!vote92$dem & !vote92$rep),dem=vote92$dem,rep=vote92$rep,female=vote92$female,natlecon=vote92$natlecon,dist=cbind(vote92$bushdis,vote92$clintondis,vote92$perotdis),NOBS=dim(vote92)[1],b0=rep(0,6),B0=.01*diag(6))

inits <- list(list(betas=matrix(0,6,3),gamma=0,.RNG.name="base::Mersenne-Twister",.RNG.seed=1234))
require(rjags)

foo <- jags.model(file="vote92.bug", data=forJags, inits=inits)
update(foo,n.iter=1000)
res <- coda.samples(foo, variable.names=c("betastar","gamma"), n.iter=50000)

社会科学のベイズ統計 収束のテクニック

全然分からないので、箇条書き(途中)

1)Identification(Rothenberg,1971):
あるパラメータと別のパラメータで確率が同じとき(p(θi)=p(θj))、観測的に同値(observationally equivalent)という。あるパラメータが、観測的に同値のパラメータを持たぬ場合、同定可能(identifiable)という。
MCMCでの問題は、p(a/b)のような確率がモデル内にあると、例えば、p(a/b)=0.3となるサンプルは、aとbの比が同じ無限の組み合わせをサンプリングしなければならないので、収束が遅くなってしまうことにある(らしい)。

これを回避するための正規化(normalization)として、1)切片などを固定する2)分散を固定するなどの対策がある。

2)Centering(中央化)

3)data Augmentation(The Art of Data Augmentation)とMarginal Data Augmentation

社会科学のベイズ統計 米大統領選の民主党得票率

two-way ANOVA(2要因の分散分析)
pscl: Political Science Computational Laboratory, Stanford Universityには米大統領選挙の1932年から2004年までの州別民主党得票率がある。ハワイとアラスカは1960年から、ワシントンDCは1964年から、アラバマの1948年、1964年の結果は欠けている。DCは例外的に民主党得票率が高いので除外する。
モデル:yit 〜 N(μ+αi+ δt, σ2)
(t年のi州の得票率は、共通平均μに州ごとのα、年ごとのδで表される)

Jackman本は2000年までしかデータを使っていない。現在はpsclパッケージのpresidentialElectionsデータは2008年まで整備されているので、本のデータとは一致しない。
> library(pscl)
> summary(presidentialElections)
    state              demVote           year        south        
 Length:996         Min.   :10.09   Min.   :1932   Mode :logical  
 Class :character   1st Qu.:40.47   1st Qu.:1952   FALSE:778      
 Mode  :character   Median :47.12   Median :1972   TRUE :218      
                    Mean   :48.49   Mean   :1971   NA's :0        
                    3rd Qu.:54.42   3rd Qu.:1992                  
                    Max.   :98.57   Max.   :2008                  
> data <- presidentialElections[presidentialElections$state != "DC",]
> data
              state demVote year south
1           Alabama   84.76 1932  TRUE
2           Arizona   67.03 1932 FALSE
3          Arkansas   86.27 1932  TRUE
4        California   58.41 1932 FALSE
5          Colorado   54.81 1932 FALSE

結果
> geweke.diag(res) Fraction in 1st window = 0.1 Fraction in 2nd window = 0.5 sigma[1] sigma[2] sigma[3] tau[1] tau[2] tau[3] -1.5802 -0.1668 -0.1601 1.4742 0.3138 -0.1104 > geweke.plot(res)
となり、GewekeのZ値(difference between the two sample means divided by its estimated standard error)が大きすぎるので、まだ定常化していない。
twowqyANOVA.rの中身
if(exists("foo")) rm(foo)
foo <- list()

library(pscl)
data(presidentialElections)
summary(presidentialElections)
data <- presidentialElections
# data <- presidentialElections[presidentialElections$state != "DC",]

foo$nyear <- length(unique(factor(data$year)))
foo$n <- length(data$year)
foo$demVote <- data$demVote
# factorize
data$year <- factor(data$year, label=1:20)
data$state <- factor(data$state, label=1:51)
foo$s <- data$state
foo$j <- data$year

## write contents of object foo back to top level directory
for(i in 1:length(foo))
  assign(x=names(foo)[i],value=foo[[i]])
dump(list=names(foo))   ## dump
rm(list=names(foo))     ## now clean-up

## run jags job in batch mode
system("jags jags.command")

library(coda)
res <- read.coda("CODAchain1.txt", "CODAindex.txt")
summary(res[,1:3])
plot(res[,1:3])
geweke.diag(res)
geweke.plot(res)
model.bugの中身
model{
 for(i in 1:n){
  mu.y[i] <- mu + alpha[s[i]] + delta[j[i]]
  demVote[i] ~ dnorm(mu.y[i], tau[1])
 }
 mu ~ dnorm(50, tau.mu)
 tau.mu <- pow(15, -2)
 sigma[1] ~ dunif(0, 20)
 sigma[2] ~ dunif(0, 15)
 sigma[3] ~ dunif(0, 15)
 for(i in 1:51){
  alpha[i] ~ dnorm(mu, tau[2])
 }
 for(i in 1:nyear){
  delta[i] ~ dnorm(0, tau[3])
 }
 for(i in 1:3){
  tau[i] <- pow(sigma[i], -2)
 }
}
jags.commandの中身
model in model.bug
data in dumpdata.R
compile
initialize
update 5000
monitor sigma, thin(5)
monitor tau, thin(5)
update 0000
coda *
モデルを変更し、identifiedにする。
twowqyANOVA.rの中身
if(exists("foo")) rm(foo)
foo <- list()

library(pscl)
data(presidentialElections)
summary(presidentialElections)
data <- presidentialElections[presidentialElections$state != "DC",]

statenames <- levels(factor(data$state))
foo$nyear <- length(unique(factor(data$year)))
foo$n <- length(data$year)
foo$demVote <- data$demVote
# factorize
data$year <- factor(data$year, labels=1:20)
data$state <- factor(data$state, labels=1:50)
foo$s <- data$state
foo$j <- data$year

## write contents of object foo back to top level directory
for(i in 1:length(foo))
  assign(x=names(foo)[i],value=foo[[i]])
dump(list=names(foo))   ## dump
rm(list=names(foo))     ## now clean-up

## run jags job in batch mode
system("jags jags.command")

library(coda)
res <- read.coda("CODAchain1.txt", "CODAindex.txt")
##summary(res[,1:3])
##plot(res[,1:3])
##geweke.diag(res)
##geweke.plot(res)

oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
mat <- res[,2:51]
colnames(mat) <- statenames
par(las=1,mar=c(2, 8, 2, 1), mgp=c(2.0, 0.7, 0))
boxplot(data.frame(mat), main = "US elections states", horizontal = TRUE)
model.bugの中身
model{
 for(i in 1:n){
  mu.y[i] <- mu[1] + alpha[s[i]] + delta[j[i]]
  demVote[i] ~ dnorm(mu.y[i], tau[1])
 }
 sigma[1] ~ dunif(0, 20)
 sigma[2] ~ dunif(0, 20)
 sigma[3] ~ dunif(0, 20)
 for(i in 1:50){
  alpha[i] ~ dnorm(mu[2], tau[2])
 }
 for(i in 1:nyear){
  delta[i] ~ dnorm(mu[3], tau[3])
 }
 for(i in 1:3){
  tau[i] <- pow(sigma[i], -2)
 }
 for(i in 1:3){
  mu[i] ~ dnorm(0,1E-4)
 }
 ## transformtion
 mustar <- mu[1] + mean(alpha[]) + mean(delta[])
 for(i in 1:50){
  alphastar[i] <- alpha[i] - mean(alpha[])
 }
 for(i in 1:nyear){
  deltastar[i] <- delta[i] - mean(delta[])
 }
}
jags.commandの中身
model in model.bug
data in dumpdata.R
compile
initialize
update 5000
monitor mustar, thin(5)
monitor alphastar, thin(5)
update 55000
coda *
JAGSの練習用の素材だから仕方ないが、とてもじゃないが推定はできない。

次は、tに関して交換可能性がない、時系列データとしてモデル化する。

longitidial.rの中身
if(exists("foo")) rm(foo)
foo <- list()

library(pscl)
data(presidentialElections)
summary(presidentialElections)
data <- presidentialElections[presidentialElections$state != "DC",]
result2004 <- data[data$year == 2004,]
result2004$state <- factor(result2004$state, labels=1:50)

data <- data[(data$year > 1983)&(data$year < 2001),]

statenames <- levels(factor(data$state))
# foo$nyear <- length(unique(factor(data$year)))
foo$n <- length(data$year)
foo$demVote <- data$demVote
# factorize
data$year <- factor(data$year, labels=1:5)
data$state <- factor(data$state, labels=1:50)
foo$s <- data$state
foo$j <- data$year

## write contents of object foo back to top level directory
for(i in 1:length(foo))
  assign(x=names(foo)[i],value=foo[[i]])
dump(list=names(foo))   ## dump
rm(list=names(foo))     ## now clean-up

## run jags job in batch mode
system("jags jags.command")

library(coda)
res <- read.coda("CODAchain1.txt", "CODAindex.txt")
s <- summary(res)
plot(res[,1:8])
##geweke.diag(res)
##geweke.plot(res)
plot(s$statistics[7:56,1],result2004$demVote)
model03.bugの中身
model{
 jbar <- 1
 for(i in 1:n){
  mu.y[i] <- alpha + beta[s[i],1] + beta[s[i],2]*(j[i]-jbar)
  demVote[i] ~ dnorm(mu.y[i], tau)
 }
 sigma ~ dunif(0, 20)
 ## convert to precision
 tau <- pow(sigma, -2)
 
 ## hierarchical model
 for(p in 1:50){
  beta[p, 1:2] ~ dmnorm(mu[1:2], Tau[,])
 }
 ## means
 for(q in 1:2){
  mu[q] ~ dnorm(0, .0016)
 }
 omega[1] ~ dunif(0,20)
 ## covariance matrix priors
 omega[2] ~ dunif(0,10)
 Omega[1,1] <- pow(omega[1],2)
 Omega[2,2] <- pow(omega[2],2)
 rho ~ dunif(-1,1)
 Omega[1,2] <- rho*omega[1]*omega[2]
 Omega[2,1] <- Omega[1,2]
 Tau[1:2,1:2] <- inverse(Omega[,])
 alpha ~ dnorm(0, .0001)
 ## identified param
 mustar[1] <- mu[1] + alpha
 mustar[2] <- mu[2]
 for(i in 1:50){
  betastar[i,1] <- beta[i,1] + alpha
  betastar[i,2] <- beta[i,2]
 }
 ## projection
 for(i in 1:50){
  mu.yhat[i] <- betastar[s[i],1] + betastar[s[i],2]*(6-jbar)
  yhat[i] ~ dnorm(mu.yhat[i],tau)
 }
}
jags.commandの中身
model in model03.bug
data in dumpdata.R
compile
initialize
update 5000
monitor mustar, thin(50)
monitor Omega[1,1], thin(50)
monitor Omega[2,2], thin(50)
monitor rho, thin(50)
monitor tau, thin(50)
monitor yhat, thin(50)
update 255000
coda *


つまり、線形の時系列を考慮しても効果がない。

社会科学のベイズ統計 160校7200人の数学スコア

7185人のスコアは平均12.75、四分位範囲(inter-quartile range; IQR)は7.28-18.32だった。
mlmRev: Examples from Multilevel Modelling Software Review
> library(mlmRev)
要求されたパッケージ lme4 をロード中です 
要求されたパッケージ Matrix をロード中です 
要求されたパッケージ lattice をロード中です 
> Hsb82
     school minrty     sx    ses   mAch      meanses   sector          cses
1      1224     No Female -1.528  5.876 -0.434382979   Public -1.093617e+00
2      1224     No Female -0.588 19.708 -0.434382979   Public -1.536170e-01
3      1224     No   Male -0.528 20.349 -0.434382979   Public -9.361702e-02
4      1224     No   Male -0.668  8.781 -0.434382979   Public -2.336170e-01
5      1224     No   Male -0.158 17.898 -0.434382979   Public  2.763830e-01
6      1224     No   Male  0.022  4.583 -0.434382979   Public  4.563830e-01
(略)
7184   9586     No Female -0.008 16.241  0.621152542 Catholic -6.291525e-01
7185   9586     No Female  0.792 22.733  0.621152542 Catholic  1.708475e-01
> summary(Hsb82)
school     minrty          sx            ses                  mAch       
2305   :  67   No :5211   Male  :3390   Min.   :-3.7580000   Min.   :-2.832  
5619   :  66   Yes:1974   Female:3795   1st Qu.:-0.5380000   1st Qu.: 7.275  
4292   :  65                            Median : 0.0020000   Median :13.131  
8857   :  64                            Mean   : 0.0001434   Mean   :12.748  
4042   :  64                            3rd Qu.: 0.6020000   3rd Qu.:18.317  
3610   :  64                            Max.   : 2.6920000   Max.   :24.993  
(Other):6795                                                                 
meanses                sector          cses           
Min.   :-1.1939459   Public  :3642   Min.   :-3.651e+00  
1st Qu.:-0.3230000   Catholic:3543   1st Qu.:-4.479e-01  
Median : 0.0320000                   Median : 1.600e-02  
Mean   : 0.0001434                   Mean   :-9.144e-19  
3rd Qu.: 0.3269123                   3rd Qu.: 4.694e-01  
Max.   : 0.8249825                   Max.   : 2.856e+00  
【基本】平均は12.75でナイーブな標本誤差は0.081
> mean(Hsb82$mAch)
[1] 12.74785
> sd(Hsb82$mAch)/sqrt(7185)
[1] 0.08114547
ところが、Huberのsandwich estimatorは0.24で、デザイン効果は8.75。予想されるクラス内相関は0.17。(どうやって求めるのか?)

【別の手法】1)ANOVAによるF検定
> library(gplots)
> plotmeans(Hsb82$mAch ~ Hsb82$school)
> oneway.test(Hsb82$mAch ~ Hsb82$school, var=T)
 One-way analysis of means
data:  Hsb82$mAch and Hsb82$school 
F = 10.4293, num df = 159, denom df = 7025, p-value < 2.2e-16
2)学校をダミー変数とした回帰分析 残差平方和が0.19=学校の差 【ベイズ的手法】 Rのスクリプト:onewayANOVA.r
Sys.setlocale("LC_TIME", "C")
if(exists("foo")) rm(foo)
foo <- list()

library(mlmRev)
summary(Hsb82)
foo$math <- Hsb82$mAch
foo$j <- factor(Hsb82$school,labels = 1:160)
foo$N <- length(Hsb82$mAch)
foo$J <- 160
foo$alpha <- rep(NA,foo$J)

## write contents of object foo back to top level directory
for(i in 1:length(foo))
  assign(x=names(foo)[i],value=foo[[i]])
dump(list=names(foo))   ## dump
rm(list=names(foo))     ## now clean-up

## run jags job in batch mode
system("jags jags.command")

library(coda)
res <- read.coda("CODAchain1.txt", "CODAindex.txt")
summary(res[,1:3])
plot(res[,1:3])
モデルファイル:model.bug
model{
  for(i in 1:N){
    mu.y[i] <- alpha[j[i]]
    math[i] ~ dnorm(mu.y[i], tau[1])
  }
  for(p in 1:J){
    alpha[p] ~ dnorm(mu, tau[2])]
  }
  mu ~ dnorm(0, .0001)
  for(p in 1:2){
    tau[p] <- pow(sigma[p], -2)
    sigma[p] ~ dunif(0, 10)
  }
}
設定ファイル:jags.command
model in model.bug
data in dumpdata.R
compile
initialize
update 1000
monitor sigma, thin(100)
monitor tau, thin(100)
monitor alpha, thin(100)
update 3000
coda *

社会科学のベイズ統計

ベイズ推計は事前推定をデータを使って事後推定に修正していく推計方法。
同じデータを事前推定の異なる2人の人間が推計したとき、事後推計は異なってしまう。しかし、伝統的統計でも推定者による判定が不可避。ならば、主観的推定が確率論にできる限り合致するように合理的に修正していくというアプローチの方が有効ではないかと考える。

以下はSimon Jackmanの「社会科学のためのベイズ分析」のさわりの部分。(完全に個人的なメモ)

第1章:ベイズ推計の基礎

確率probabilityの定義は数学的に決まっているが、解釈は多様。「腕は体の10%」という比率の話はできても、「腕の確率は10%」とは言えない。
Ramseyとde Finettiは、その確率で賭け事をするよりも勝てるような確率が存在しないものという主観的確率を提案し、新たな情報で絶えず修正していくことを当然のものとしている。こうしない限り
  • 次の選挙で共和党が過半数を得る確率
  • 5年以内にテロ攻撃がある確率
  • 一生のうち、知人が投獄される確率
などを扱うことができない。

伝統的推定frequentist inferenceベイズ推定 Bayesian inference
統計的:無限に繰り返すことができる仮想的イベントの頻度(これ以外の確率論が見出せなかった)。確率は事象の客観的な特徴であると考えている。認識論的epistemological:真実でありそうな度合い
帰無仮説を条件として、手元にあるデータが観測される蓋然性を求める。入手したデータよりも「極端な」データが観測される可能性を論じる手元にあるデータを条件として、仮説の事後確率を求める
「統計的に有意」を適当に使い過ぎ。頻度という概念が不適切な、繰り返し観測できないデータ(single-shot affaire)にも使っている。データが過去の事例の場合、それは標本なのか(繰り返しても同じ値しか得られない)あくまで観測者の知識による主観的蓋然性で議論を貫く
調査結果の95%信頼区間は「95%の確率で信頼区間の中に落ちる」と考えがち。パラメータは固定されているので、落ちるか落ちないかは確定的。標本抽出を繰り返した場合の比率にすぎない信頼区間の中に落ちることを95%の確率として確信しているという意味
p値は帰無仮説を条件としたデータの蓋然性に関する値なのに、「このようなデータを見ると、帰無仮説はありそうにないと思われる」と主観的に述べられる最初から主観的
各群独自のパラメータと共通hyperパラメータで表現される、研究者が想定するパラメータ。パラメータは(例えば)一様乱数を使った階層モデル
パラメータが多い場合、構造が複雑な場合は計算できないシミュレーション向き

第2章:単純モデルのベイズ分析

ベイズの定理:P(A|B) = P(B|A)P(A) / P(B)
(Bが起きたときのAの確率 = Aが起きたときのBの確率 × Aの確率 ÷ Bの確率)

すべての事象について
P(Ai|B) = P(B|Ai)P(Ai) / (すべてのiについての合計P(B|Ai)P(Ai))
分母は確率の合計が1にならなければならない事情があるためで、基本的には、
Bが起きたときのAの確率(事後分布、posterior distribution) = Aが起きたときのBの確率(尤度関数、likelihood function) × Aの確率(事前分布、prior distribution)

ところが、このかけ算で分布の形状が維持されるのは共役conjugateの場合だけ。この条件を満たすの関数として逆ガンマ関数が現れる。

解析的に計算できる場合
条件事前分布(π)尤度関数(f)事後関数(π)
平均値μ未知正規分布正規分布正規分布
分散σ未知逆ガンマ分布正規分布逆ガンマ分布
μもσも未知正規逆ガンマ分布正規分布正規逆ガンマ分布
ベルヌーイ過程ベータ分布二項分布ベータ分布
ガンマ分布指数分布ガンマ分布
ポワソン過程ガンマ分布ポワソン分布ガンマ分布
多次元の複雑な分布が共役であるとは限らないので、解析的に解けない。
そこで、シミュレーションできるだけ多数のサンプルを発生させて、推定する方法が必要になる。

第3章:モンテカルロ法

【大数の法則】確率分布から可能な限りサンプリングを取れば、目的の分布になる。
ただし、確率分布が一次元の場合は、累積確率分布の逆関数に乱数(0,1]を代入すれば、簡単にサンプルが作れるが、多次元の場合はどうする?

第4章:マルコフ連鎖

【エルゴード性ergodic】性質のいいマルコフ連鎖は定常状態を持つ(詳細釣り合い)
【大数の法則】マルコフ連鎖で発生させたサンプリングでは自己相関があるが、可能な限りサンプリングすれば、目的の分布になる

第5章:マルコフ連鎖モンテカルロ法

【メトロポリス=ヘイスティングス法やギブス法】多次元確率分布から効率的にサンプルを作成するアルゴリズム
※ただし、ピークが複数あるような分布には向かない。

第6章:マルコフ連鎖モンテカルロ法の実装

JAGSのモデル記述方法についての説明(モデル構文パーサーとサンプラーから構成される)
DAG(Directed Acyclic Graph)の説明

第7章:階層的統計モデル(自己相関モデルなど解説)
第8章:選択のベイズ分析
第9章:計測のベイズ的アプローチ

  • 交差系列 (Cross section Data):同一時点での様々なData
  • 時系列 (Time series Data):同一種類のDataを様々な時点で取ったもの
  • 交差時系列 (Panel Data):交差系列 (Cross section Data) で時系列 (Time series Data) である系列

ヘラトリ朝日がプリント版廃止

訂正:12月7日朝刊社告で、2011年2月末で英字紙の発行をやめ、電子情報端末向けの配信に全面移行すると発表していた。

Newsonomicsを書いたKen Doctorによると、朝日新聞が発行する英字新聞、ヘラトリ朝日のうち、英文朝日部分の制作を間もなくやめる。インターナショナル・ヘラルド・トリビューンは単独で発行される。

Newsonomics:Asahi abandons Print for iPad
the Diplomat:Asahi to Drop English Daily

すでに購読申し込みができないようで、撤退モードに移っている。英字新聞はiPad(月9.99ドル)とKindle(月5.99ドル)で発行する予定だという。
在京リサーチャーの話として、ヘラトリ朝日は20000部、デイリー読売は32000部にすぎないという話を紹介している。

日経電子版が10万人突破

日経電子版の有料会員数が12月10日に10万人を超えた。わざわざ1面と2社面で広告している。
新聞としてどうかと思うほど、電子版の見開き広告を掲載していたから、10万人突破は遅いくらいだ。「10月から登場したiPhone版が読者の拡大につながっている」というのは、iPhone4を使っている人には納得だろう(iPhone3gでは少々重い感じがする)。これが出てから、全く紙の方を見なくなった。我ながら、怖いくらいだ。
「次の紙面」のボタンが最上位にあれば、UI的には完成すると思う。

Edgefirstのメモが紹介しているが、社内では不満があるらしい。「ニュースをクリックすれば関連記事が読めるサービスのため、過去の記事から関連しそうな内容のものを探しては、ひたすら画面にコピーして貼り付けるような仕事に異動させられた人もいる。それが本当に新聞記者のする仕事なのか」という言葉は、取材しかしたことがないヤメ記者が書いた「作りもののコメント」だと思う。
「異動させられた人」はその程度の人材だったのだし、電子版の編集がまるで分かっていない。「電子版の開始は、日経の報道内容を強化し、本当に収益増に繋がっていくのでしょうか」という日経マンがいるなんて信じがたい。儲かるに決まっているじゃないか。

NYタイムズがS&P500から除外


ニューヨークタイムズが17日に、米株式市場の指標であるS&P500種株価指数の構成銘柄から除外される。一緒に除外されるのは、コダックと米事務用品小売り大手オフィス・デポ。
代わって採用されるのは、ネット配信のレンタルビデオである・ネットフリックスと、ネット経由のソフト供給技術を提供するF5ネットワークス。石油・天然ガス採掘のニューフィールド・エクスプロレーションの3社

構成銘柄の基準になる時価総額は70億ドル。タイムズの時価総額は14億ドルしかない。

メディア・リテラシーとは

メディア・リテラシーとは「情報メディアを主体的に読み解いて必要な情報を引き出し、その真偽を見抜き、活用する能力のこと」らしい。デジタル機器の操作方法という基本的なリテラシーがないのは現実感を欠いている。いかにも「学をひけらかしている」用語で、こんな言葉を連発する人間の真偽を見抜かないといけないと思う。

とはいえ、こういう視点が必要なメディア・リテラシーだ。

宇多田ヒカルがコンサート生中継


50年後にマスコミュニケーションの年表を書くとき、恐らく書き込まれることなのでメモ。

00年代の歌姫、宇多田ヒカルが8日、活動休止する前の最後のコンサート「WILD LIFE」公演の模様を、Ustreamを通じて全世界に生中継した。
19時に開幕し、21時半ごろにはUStreamの主チャンネル(700Kbps)で6万数千人、iPhone用の副チャンネル(300Kbps)では3万5000人程度が同時に閲覧した。700K×65000+300K×35000=約56Gbpだ。大手ISPの帯域を飲み込んでしまう。
この公演は、64ヶ所の映画館(70幕)でも有料で生中継された。

Ustream Asia株式会社によると、ユニーク視聴者数は34万5000人、最大同時接続数についても10万人を超えたとしている。

チリ地震の発生直後、New York Timesがチリのテレビ生中継を埋め込んだ際には、同時接続数は1万超だった。接続の大部分が日本国内だとはいえ、約10万人が同時接続し、(時々映像は途絶えたものの)ユニキャストで配信を捌ききったことは書き留めておかなければならない。

ちなみに、ラジオ配信サービスのRadikoも数万人の同時接続に備えている。
参考:Ustreamの脅威、あるいはLivestream
中国人が全員同時にテレビ電話できるルーター

Amanda Cox:NYTimesのグラフィックエディター



NYTimesのグラフィックエディター、Amanda Coxがコペンハーゲンで開かれた会議「New Media Days」で講演した。大量データを背後に抱えた地図などは彼女が制作している。2005年入社。
統計のとの字も知らない記者が世論調査を扱っている日本と違い、グラフィック担当の彼女さえ統計学の修士を持っている。

プレゼンは2010年秋の時点で、NYTimes自身が「このレベルのマルチメディアコンテンツを作ることができる組織はあるまい」と思っている最先端表現。とくに、ハイチ地震の衛星写真before/afterは、どう実現しているのか見当がつかない。

質疑応答のさりげない一言に驚く。
  • インタラクティブコンテンツは滞在時間が長く、コピーされにくいのでnytimes.comでも指折りのトラフィックを稼いでいる。
  • Hadson川に旅客機が不時着水した時のCGアニメーションは「3 or 4 hours」で作った。
  • マイケルジャクソン死去の時のデータ処理、グラフィックスにはRを使ったらしい(Rの出力をillustratorで取り込み、整形してFlashにexportした)。死後数時間でこれを作る力量には、驚くべきものがある。


会議では、NPRの多プラットフォーム化責任者のZach Brandも講演した。

WikiLeaks:ビルマ議長とマンU

2008年5月に14万人が死亡したサイクロン「ナルギス」の復旧が遅々として進まず、国内の不満が高まっていたころ、ビルマのタン・シュエ国家平和発展評議会議長が、イギリスの名門サッカーチーム、マンチェスター・ユナイテッドの過半数の株を10億ドルで買収しようと試みていたと、英ガーディアンがwikileaksの暴露公電特集で書いている。
WikiLeaks cables: Burma general considered Manchester United buyout

同紙は、10億ドルという価格は、当時復旧費用(3年間)と同じだと怒り心頭。
タン・シュエ議長の孫はサッカー狂で、クラブ買収のために10億ドル出してくれるようせがんだものの、最終的には断念させられた。かわりに、国内サッカーリーグを作ることにしたらしい。国内の主要企業や政治家にプロチームを揃えるよう強要した。
公電によると、選手の年俸から広告、スタジアムまですべて自己負担で揃えるよう命じられた。ラングーン・ユナイテッド(笑)は5人のアフリカ人選手を、デルタ・ユナイテッド(笑)はアルゼンチン人選手を呼び寄せている。

年間数億円かかる費用は、公共工事契約や宝石採掘権、輸入許可などを与えることで間接的に回収されている。タン・シュエの孫はチームで雇用されてる。負担させられてる企業自身も「国民の不満をそらすためではないか」と考えているらしい。

記事は、イランのサッカーについても言及。ナショナルチームがサウジアラビアに負けてダエイ監督が解任されたとき、マフムード・アフマディーネジャード大統領は北朝鮮戦へ向かうチームに大統領専用機を貸与した。しかし、ファンが「政治的な試合は見たくない」と試合中に声を上げたという。

WikiLeaks:Google中国撤退の舞台裏

米公電暴露の5紙協調展開で、Googleの中国撤退の内実が報告されている。

英ガーディアン:WikiLeaks cables blame Chinese government for Google hacking

政治局の幹部の一人がgoogleで自分の名前を検索した際に、自分を個人攻撃する文書を見つけたことをきっかけに、Googleを中国から撤退させるための動きが始まった。(なんとナイーブなことか)

この幹部は、別の政治局員と協力して、Google中国(google.cn)のトップページにあるGoogle米国(google.com)へのリンクを削除するよう働きかけた。まず、中国の三大通信会社に対してGoogleとの商売を止めるように指示。Googleが踏ん張ると、ネットユーザー団体が「Googleはポルノサイトをブロックしていない」と抗議させ、当局はGoogleへの接続を24時間切断した。
公電が本国へ報告しているのは、google中国に駐在している社員が泣きついたからだ。
この2人は反政府運動家のGMailアカウントへの侵入も指揮した。

NYタイムズはこの幹部の名前をぼかしていない。
李長春・政治局常務委員は2002年から党中央精神文明建設指導委員会主任として、プロパガンダ部門を率いた人物。(2006年に、いわゆる義和団史観を批判した論文を掲載した週刊付属紙「氷点週刊」を発行停止にした責任者)

NYタイムズ:Cables Discuss Vast Hacking by a China That Fears the Web

2009年5月の公電では、李長春常務委員がgoogle.com(本体)で中国語で自分の名前を検索し、自分を批判する結果を見て驚いた話をwell-placed sourceの話として報告している。2010年初頭には、ある中国人の話として李委員がGoogleサーバーへの攻撃を指示したという話を懐疑的なトーンで報告した。NYタイムズも、独自調査で、彼にその知識はなく、直接関与したという話には否定的だ。
中国は、GoogleEarthの画像がテロリストによる攻撃で利用された場合、その責任はアメリカ政府にあるという警告も伝えている。

中国によるコンピュータ網侵入には、政府・軍のデータや地球温暖化防止条約を担当する米外交官の資料が狙われた。
2008年には、Byzantine Candor(権謀術数のビザンチン帝国的あけすけ。よくも名付けたものだ)と米側で呼ばれたハッキング事件が発生し、50MBのメールとある政府機関の全職員のパスワードが流出した。アメリカ側は、侵入者が上海発で中国語キーボードを使用していることを突き止めた。
2009年6月には、地球温暖化担当大使事務所の海洋部門の5人に対して、ナショナルジャーナル(米の政府情報通信社)を装ったフィッシングメールが送られ、ウイルス入りPDFファイルが添付されていた。
2009年のByzantine Hades(ビザンチンの地獄)と名付けらたハッキング事件では、侵入と人民解放軍の関係を疑っている。(この件はすでに報道されている)
公電は、多くは(政府機関が直接行ったのではなく)フリーのハッカーによるものと見ているが、周永康・政治局常務委員から直接指示されたものであると情報源が述べているという公電もある。

Streamgraphとは

2008年2月にNYTimesに掲載された映画売り上げグラフ「The Ebb and Flow of Movies: Box Office Receipts 1986 — 2008」について、これを描いたインターンのLee ByronとMartin Wattenbergが論文を公開している。書き込まれたコメントを分析して、可読性について検討しているところが素晴らしい。

http://leebyron.com/else/streamgraph/

Streamgraphは、Lee Byronがカーネギーメロン大の課題として作成したListeningHistoryが基になっている。Last.fmのサービス利用者(月3ドルで聞き放題)がどんな音楽を聴いていたかの推移を、流れるようなグラフで表現した。色相(hue)と彩度(saturation)の自動選択も検討されている(省略)。

具体的な時系列データの例として、日本自動車販売協会連合会が月別新車乗用車販売台数ランキングがある。


太い流れが直進する配置

もっとも単純なグラフは「積み上げ棒グラフ」で、全体の増減は一目明瞭だが、各車種の増減が上層に進むにつれて判読不能になる。

上下の変動を減らすにはX軸に拘らなければいい。「ThemeRiver」というグラフは、x 軸に対して対称にしたもの。各月合計値の1/2だけ下にシフトさせればいい。中心軸を必ず維持する。

Streamgraphは、注目されるべき「太い流れ」が直線に流れるようとすることを考慮して、中心軸に変動を認めたもの。
各月について
1/c×(シフト分 - 月合計値/2)2+Σ((各車種の位置 - 前月の対応位置)2×各車種の販売量)
を最低にすればいい。cが中心軸の変動容認度を決める。

ブレーク順に並び替え

Lee Byronのオリジナリティは、元データの積み上げ順を変化させることによって、印象が全く異なるということを指摘していることだ。
月別乗用車のように、一つの車種の継続が長い場合はあまり影響がないが、Lee Byronが関わった音楽・映画のように、入れ替わり立ち替わりに新しい項目が現れて、短い期間で爆発的に増減するデータの場合は、並び替えアルゴリズムがグラフの外観に大きな違いを生む。

右図は、論文に掲載されたlast.fmの視聴データで、上から1)並び替えなし2)登場順に並び替え3)登場順に上と下に交互に並び替えの違いがある。

とりわけ、3)は突然peakyなデータが登場した場合に、他のデータに影響が伝わっていない。これには、公開されていないアルゴリズムが隠れている気がする。

折れ線グラフの曲線化

調査中。どう考えても単純な内挿では上手く描けない。

参照:NameVoyagerは名前の推移をinteractiveに表したもの。

直方体のさいころ

直方体のさいころがどんな確率で目が分布するのか。
数学的に簡単に処理できるのか、物理法則が複雑に絡んで解析的に難しいのか、見当がつかない。

ならば、さまざまな縦横比の直方体を作って、繰り返し振ってみればいい。


物理エンジンはJiglibFlashを使ったが、何度やっても「表と裏」の関係が偏っていて、表になりやすい。丸め誤差が「表」に有利にできているようだ。このため、表裏が逆になったサイコロをセットにしてシミュレーションしている。

このフラッシュをウェブサイトに掲載し、さいころの結果を集計すれば、どのような確率分布を持つか、クラウドスーシング的に処理することができる。物理計算なので、単位系を完全に移さない限り、どんな高速パソコンをつかっても1度に5秒かかり、できるだけ平行処理してもらう必要があるからだ。

WikiLeaks:サイトに対するDOS攻撃は元米軍人

Wikileaksが米公電公開を予定していた時間に、サーバーがDDOS攻撃を仕掛けられて閲覧できなくなっていた件で、米ABCニュースが、「愛国的米国人ハッカー」が、公開を阻止するために攻撃を仕掛けたと名乗り出ていると特ダネとして報じている。
ABC News:Patriotic 'Hacktivist' Claims He Took Down Wikileaks Site

wikileaksは、twitter経由で「毎秒10Gビットの接続要求を送りつけられている」と報告していた。
WSJなどによると、wikileaksのサーバーはアマゾンE2C(アマゾンのサーバー時間貸しサービス)を使っていたが、元副大統領候補リーバーマンが圧力をかけ、契約を切られた。また、wikileaksのDNSを担当していた会社もサービスを中止した。
このため、スイス(wikileaks.ch)にサーバーを移している。

攻撃しているのはジェスター(Jester)と名乗る団体を装い、@th3j35t3rで攻撃報告をしているようだ。「ハッカー活動家」と名乗り、イスラムの若者が「徴兵」されることをオンライン上で阻止することを目的に、関係ウェブサイトを攻撃している。wikileaksを狙ったのは「余興にすぎない」らしい。

攻撃記録をブログで公開していることから、セキュリティー専門家の間でも有名で、専門家は、「自分の技量を示したいために攻撃しているのではないか」と想像している。

DDoS攻撃=分散型サービス拒否攻撃

踏み台と呼ばれる複数のコンピュータが、標的とされたサーバ等に対して一斉に接続要求を行う。単一のホスト(通信相手)からの攻撃であればそのホストとの通信を拒否すればよいが、数千・数万のホストからでは個々に対応することが難しい。そのため、通常のDoS攻撃よりも防御が困難であり、攻撃による被害はDoS攻撃よりも大きくなると考えられる。攻撃を受けたサーバには踏み台となったコンピュータが攻撃主として認識される。

ABCニュースは先月たまたまインタビューをして、「目的は第一には戦争という危険な無駄遣い(を阻止すること)だが、本当は、戦争のよって普通のイスラム教徒が過激化して、アメリカ国内にテロリストを生んでしまうからだ」と話した。XerXeSという攻撃ツールを開発したらしい。従軍経験があり、軍とも協力しているとほのめかしている。

30分から1時間でサイトをダウンさせることができ、これまでに米国内にある179のjihadist(聖戦)サイトを攻撃した。

自分のことについては30歳以上50歳以下としか明かさないが、「10歳のときからプログラムを書き始めた。従軍したい気持ちが抑えられず、2度空挺部隊に勤めた」とも。

WikiLeaks:米公電25万本を主要5紙が先行展開

ウィキリークスが入手した、世界各地のアメリカ大使館とワシントンの間で交わされた公電25万本について、NYTimes英ガーディアン独シュピーゲル仏ルモンド西エルパイスの5紙が、11月29日午前6時ごろから一斉に記事展開を始めた。
5紙から25人の記者が解読にあたり、独裁国などで制裁される恐れのあり、保護しなければならない人物リストを共同で作成し、Wikileaks側に提示した。これを受けて、Wikileaksは即時無制限の発表を控えている。

続報:WikiLeakからNYタイムズは情報提供受けず。関係悪化か

専用サイト「Secret US Embassy Cables」は立ち上がった模様だが、東京関連は公開されていない。


日本の新聞が関与できなかったのは、以下のような経緯があり、wikileaksにとって当事国ではないからだ。もちろん、英語と地理の二重の障害があるのが大きいのだろう。5紙はオンラインニュースで最先端を走っているので、アサンジュ氏のお眼鏡にかなったかもしれない。
WikiLeaks:アフガン文書を公開、米英独3紙が協調展開
WikiLeaks:米軍ヘリのバグダッド市民銃撃ビデオを公開、ロイター記者2人が死亡

東京関連は5697本

早くアメリカの日本評が読みたいものだ。2006年以降なので小泉首相退陣以降の全員が対象。

ルモンドによると、251287本のうち、"Secret"が16652本、"Confidentiel"が101748本で、それ以外は"non classifiés"だった。ガーディアンによると、米公電はsipdis(secret internet protocol distribution)という扱いを受け、秘密扱いではあるが他機関と共有すべき情報として大使館の非公開ウェブサイトに掲示されていたものだという。9.11事件以降に政府内で情報を共有するために作られた仕組みで、数千人が閲覧可能。

スペインが一番面白そうなのにも関わらず、全く読めない。まさかスペイン語が必要になるとは。
辞書を引き引き、主な記事を紹介すると(随時更新)
スライドを開く(open)
  • 仏ルモンド
  • 西エル・パイス
  • 独シュピーゲル
  • 英ガーディアン
  • 米ニューヨークタイムズ


ルモンド:イランに対するアラブ諸国の恐怖

ルモンド:国際機関外交官「イランは全体主義」

[ご指摘を受けて翻訳]アメリカがイランと1980年に外交関係を断絶して以来、米国務省は周辺地域で得られた情報によってイラン体制を観察せざるをえなかった。このIran Watchersは大量の公電を送っている。アメリカ人にとってイラン体制は「謎」。たとえば、2009年に中央アジアの国で得られた情報によると、大統領選挙前の政治混乱は最高潮だった。(略)
2009年11月のイスラエルからの電報によると、モサドの代表との会見で「モサドとしては、ハメネイ氏の健康状態にいかなる変化もなく、周囲の忠誠はかつてないほど高い」という。国際機関の一員としてテヘランに行った外交官とパリで接触した際の電報では、「宗教エリートとバザール商人、革命防衛隊の三角基盤の上に建つイランの政権は、全体主義体制のようだ」と聞いたという。

ルモンド:オバマ政権の「バドミントン外交」
2009年、イランのお祭りNowruzに合わせて、オバマ大統領が「イスラム共和国(イラン)と相互尊敬に基づいた接近」を伝えるビデオメッセージを送った。そこでは、米中ピンポン外交に似た「バドミントン外交」の道も含まれていた。
しかし、ドバイの総領事からの公電では、アメリカ女子バドミントンチームの受け入れをテヘランが断ってきたことを伝えている。理由は「イランが望むより早く、国務省が訪問を発表したことで、米政府の「よからぬ意図」が分かったことを理由に、大統領がビザを発給しなかった」ためだという。
イラン政府も、オバマ政権と付き合えるか最初のテストとしてスポーツ団を見ていたが、ハメイニ氏が認めなかった。1998年にアメリカのレスリングチームがアメリカ国旗を自慢げに振り回した様子がテレビ放映された「不愉快な記憶」があるため、メディアの報道をコントロールできないことも怖れていたらしい。
2009年5月には、テヘランで反米スローガンやポスターが撤去される決定があり、「アメリカと交渉するテヘランの姿勢の重要な指標だ」と報告している。

ルモンド:イスラエルのイラン観・イスラエルの外交5原則



エルパイス:アメリカ外交の秘密明らかに
エルパイス:米外交官が国連でスパイ活動(パレスチナの和平プロセスとテロ防止策、ハマス指導者の生い立ち、経済基盤などの情報、IAEAの制作に関する英独仏ロシアの活動情報、イランの人権問題に関するロシアと中国の意図、パラグアイの大統領選挙の候補者について、バイオメトリックデータ、指紋、写真、目の光彩パターン、DNA情報の取得命令)
エルパイス:ベルリンのスパイ(米大使によるメルケル首相評。「過去8年間にわたり反米だったことを忘れてはならない」)
エルパイス:エルドアン・トルコ首相を監視(2003年当時、イラク侵攻にあたって、トルコのイスラム法が影響することはないという報告。イスラム原理主義的な首相を警戒。同首相家族の汚職に関する情報を収集)


具体的な事例については今後数週間かけて報道する予定らしい。
きょう面白いのは12枚の人物スライド。公電に記載された自分評価とともに写真が掲載されている。イタリアの絶倫ベルルスコーニとロシアのプーチンの2ショットは感慨深い。ロシアのメドベージェフ大統領の妻は忠実度に欠ける職員のブラックリストを作成した。ケニアのムワイ・キバキ大統領の汚職体質。トルコのアルカイダ支援はEU加盟の可能性を閉ざすとも。

シュピーゲル:Internal Source Kept US Informed of Merkel Coalition Negotiations(なぜか英語)
ドイツ関連の報告は1719本。
ドイツ政権に対するアメリカ外交官の批評:CDUと連立政権を組む自由党(FDP)のギド・ベスターベレ党首はインポテンツ(無能の意味)で虚栄心があり、反米的だと評価、外交経験がほとんどなく「謎」であり、過剰な個性があるため、メルケル首相と議論になっても黙っていられない人物で、アメリカ外交にとってチャレンジになると。メルケル首相については、「リスクを嫌いほとんどクリエーティブでない」という報告もあるものの、ギド党首よりはいいという評価。


論議を呼びそうなものとして列挙したもの
  • 国連でのスパイ指示:各国指導者の生物的データ(指紋や光彩)、国連代表のパスワード、クレジットカードやマイレッジカードの口座番号などの情報収集を指示
  • プーチン大統領:alpha-dog(イカレタぼんぼん、映画のタイトルから)と記述
  • パキスタンの核開発計画に関する危惧:経済崩壊で政府職員が核物質を転売する恐れを指摘
  • アフガン政府の汚職:ジア・マスード副首相が5200万ドル所持でアラブ首長国連邦の空港で足止めを食った件
  • グーグルの中国撤退:グーグルで自分の名前を検索したら、個人攻撃する文書が見つかった中国政治局幹部(1人)が、ハッカーを使って攻撃を指揮した
  • プーチンとベルルスコーニ:豪華な贈り物交換、エネルギー供給契約、ロシア語使いの影の仲介者の存在
  • ロシアのマフィア:ロシアの情報部門がマフィアを使って犯罪的行動をしている疑い。「この国は事実上マフィア国家だ」という報告も
  • アフガンのイギリス軍:アメリカ将校やアフガニスタン大統領による、英国軍作戦の徹底的な批判(とりわけ、英国人が集まるサンギンという街で治安が保てない件について)
  • 英王室の政策批判:英王室の一員による、「ある国」に関する不適切な発言
  • アメリカとイエメン:イエメンの対アルカイダ爆撃で米軍機使用秘匿の合意。イエメン大統領「爆弾は我々のものだと言い続けるよ」
  • リビアのカダフィ:いつも肉感的なブロンド(voluptuous blonde)のウクライナ人看護婦を連れている件の報告
  • キャメロン首相:イングランド銀行のマーヴィン・キング総裁がアメリカ大使に対して「深みに欠ける男だ」と批評
  • 特別な関係:英米間の「特別な関係」について、イギリスの偏執狂で、そのまま放っておけと分析した報告
  • アンドリュー王子:外国での狼藉報告
  • 武器使用:禁止兵器の使用について、英国議会を欺く計画
現在ガーディアンが裏付け調査をしている項目
  • ロシアによる、西側指導者に対する贈賄
  • 英国ビジネスマンが主体となったカザフスタンの腐敗
  • 北朝鮮崩壊が間近であるという予測
  • 濃縮ウランの極秘積み出しが「環境破壊」寸前だった件

リード記事は「Cables Obtained by WikiLeaks Shine Light Into Secret Diplomatic Channels」だが、気になる記事は「Iran Fortifies Its Arsenal With the Aid of North Korea」かもしれない。

主な事例
  • パキスタンの核開発:ウラン試験炉を撤去する秘密工作に失敗。2009年にはアメリカの技術者訪問を拒絶。「もし地元のメディアが燃料撤去と聞けば、必ずアメリカがパキスタンの核を奪ったと書くだろう」と政府職員の声を報告。
  • 北朝鮮崩壊:北朝鮮が内部崩壊(implode)した場合の統一朝鮮について討論。韓国は中国を経済的に誘い込むこと(inducement)を考慮、統一朝鮮とアメリカが「やさしい(benign、外交官が大好きな言葉)連盟」を結ぶことに関して、中国の不安を慰める(salve)ことになると信じていると報告
  • グアンタナモ米軍基地;収容者の移住に関して各国に協力を求めるも不調。スロベニアがオバマ大統領に会えるなら一人受け入れ、キリバスは中国系ムスリムの受け入れに数百万ドルの提案を受けるという提案。ベルギーには「受け入れはEU内で目立つ低コストな政策」と持ちかける。
  • アフガンの腐敗:アフガン副首相がアラブ首長国連邦の空港で麻薬取り締まり局に5200万ドルを所持していることを発見される
  • グーグル中国撤退:中国中央政治局の指示で中国グーグルのシステムに侵入を図るという情報が中国人によって1月にもたらされる。中国政府と民間専門家によって実施され、2002年からアメリカ政府システム、西側政府システム、ダライラマ、アメリカ企業に侵入している
  • テロ対策:サウジからの寄付が依然としてスンニ派民兵の主要資金源。アメリカ軍を受け入れているカタールは「アメリカと連携しているように思われた報復を怖れて、公知のテロリストにも行動を起こさない。テロ対策では地域で最低だ」と報告。
  • 親密すぎる伊露関係:豪華な贈り物、ロシア語を操る影のイタリア人仲介者。「ベルルスコーニはプーチンのマウスピースに成り下がっている」と報告。プーチンは彼の指示を無視する官僚機構に足をすくわれているとも。
  • シリア:シリアによるヒズボラへの武器供与阻止に失敗。アルアサド大統領が国務省高官に武器供与をしないと約束した一週間後には最新武器供与の情報をつかむ。
  • 人権問題:2007年、同じ名前のアフガン民兵と間違えられたドイツ市民が誘拐され、数ヶ月アフガンで監禁された事件について、ドイツに対してCIA職員の逮捕を見送るよう強く警告。「ドイツ政府を脅す訳ではないが、対米関係への影響を注意深く考慮するよう要請する」と警告。