The Nameless City

何故か製薬やSAS関連のブログ、の予定。

SASonDemandという名前は、某多分シェア一番ぐらいになるEDCのSASデータセットアウトプット機能の名称とバッティングするので紛らわしいよなと思いつつ、まあどうでもいいアドバイスなど。

ill-identified.hatenablog.com
で言及されました。うん、TBやっぱあった方がいいよね、はてなブログ
まあそれはともかくとして。

半角カタカナはデータとして避けた方がよいです。

SASv8ではエラーになったり出力時にバグが発生したりしました。SAS9になっても残ってる部分はあると思います。SAS9.4ではどうなってるかまでは把握してないですが、SAS9.4ではODSの周りでデグレ起こっている可能性が(デグレではないかも知れないが、UTF-8周りでのフォントの扱いに何かしら難点がある)あるのもあって、まだ完全には対応し切れていない可能性があります。

System Optionには、起動後に変更出来ないものがある。

DBCSLANGとかは起動後には変更出来ません。利用するSASHELPとかが完全に違ってくるとかあるので。多分MEMSIZEとか、XCMDとかもです。
「OPTIONSステートメント」「SAS システムオプションウィンドウ」と記載されていない場合には、起動後の変更は無理です。
多分SASonDemandは今のSAS Integration Technologiesベースでしょうし、マルチなエンコードは想定されてないので無理です。

「Default」エンコーディングという謎。

1つは, 何らかの理由で, sas7bdat から文字コード情報が欠落しているため文字化けが起こる場合, もう1つは, 変換後の文字列のバイト数が文字変数の長さを超えてしまうため文字列の切り捨てが起こる場合である.

1つ目の, 文字コード情報が欠落している場合は, 対処が簡単で, テキストファイルのときと同様に, 文字コードを指定するオプションを使う. これには2つ方法があり, 1つは libname ステートメントに inencoding= オプションを使うことでライブラリのデータセットに一括で指定する方法で, もう1つはデータセットオプションの encoding= を使う方法がある (Technical Support, SAS(R) 9.2 National Language Support (NLS): Reference Guide).また, これらはどうやら v9 以降でしか使えないようなので注意. 具体的には, こういうようなコードになる.

SASでの文字コードの扱い方 - ill-identified diary

UTF-8環境だと「Default」、S-JISなどだと「S-JIS」と表記されてしまうSASデータセットですが、実際に存在します。
で、この何らかの理由なんですが、微妙に思い出して来たのですが、「.sas7bdat」で表現されるこのデータセット、上位互換とは言いながら、v8の時代には「エンコーディング」の情報はなかったっぽいです。
参考:
英語版SASで作成したSASデータセットを編集モードで開けない


道理でやたらあると思った。日本でのSASの普及から考えるとv6からv7をスキップしてv8.2とかだったんで、このv8.2辺りで作成されるとエンコーディング情報がないんですね。


もう一つ。XPORTファイルを作成する場合には、エンコーディング情報が同様にすっ飛びます。.sas7bdatではないですが。

SAS Enterprise Guideの「予期せぬエラー」「SASの実行に失敗」する場合には、落ち着いて、以下の事をチェックしておいてほしい。

少しでも無駄な悩みが減りますように。
こういうトラブルって、人を渡り歩くと本当に大袈裟な話になってくからなあ・・・・・・。

プロファイルを間違えてないか

SASサーバに紐付ける形でのEGの設定なのにプロファイルを使わないローカルの設定になっていないかどうかとか確認しておいてほしいです。

SASのライセンス失効

SASのトラブルのあるあるネタとして、「ライセンスが切れてる」って場合多々あるので、ライセンスはご注意を。以前は実行出来たのに!とかの場合かなりの確率でコレです。
一年間しかライセンスがないっての本当に面倒臭いです。

トラブルだと声を上げるのは別に間違った態度とは思わない

SASの嫌な所なんですが、「ライセンス上使えないんだけど口だけはある」とかの場合に、平気でエラーとかにするんですよね。あと、使えないオプションのパターンがあるとか。
まあエラーまでは許すとしても、前調査用スクリプトみたいなの組み込んでおいてくれてもいいと思うんですよ、本当に。


あと、ソースのフォークが怖いのかも知らんけど、DMSはともかくとして、EGのローカルとリモートサーバ用、パッケージとして分けてもバチ当たらんと思うんだよねえ・・・・・・。
お客さんの少ない情報から環境を推し量る技術だけが妙に向上していくのはホントどうにかなんないですかね。

WORKライブラリをメモリ上に載せる方法。

SSDが安定するのですが。Fusion-IOとかの大容量SSDも出てますし、256GBでも問題ないですし。
メモリだと、大容量メモリに個人用PCだとそれほど対応していないというのもあります。家のマシンだとほぼ16GB積んでいるんですが、これから上になるとレアモノだったりノートPCに刺さらなかったりでして。本当は64GB積みたいです。


MEMLIBシステムオプションをconfigファイルに記述する事で、WORKライブラリをメモリ上に乗っける事が出来ます。
当然ながら、以下のメリットがあります。

起動が早くなる
WORKライブラリをメモリ上に乗っけるので、物理に実際にフォルダを切る事など考えると、早いです。
I/O速度が早くなる
SASはとにかくDISK I/Oが実行時間を決定してしまう為、そこが早い場合には当然ながら早くなります。


デメリットは、「利用ユーザがメモリページをロックする権限を追加しなければいけない」(ローカルセキュリティポリシーの修正)のと「UAC無効化が必要」なのと、まあ、そうやってメモリを使うと当然ながら起動プロセス毎にメモリがその分減ります。
(参考:18274 - When you use the MEMCACHE or MEMLIB system options the following error message occurs "Error: Cannot adjust the token privileges with error 1300."
強制終了後WORKライブラリの中身調査とかはまずしないので消えるのはいいんですが。
この点、特に速度が重要な場合のみ、異なるConfigで実行するような事を想定した方が良いかと思います。あと、この場合プロセス強制終了時にメモリ解放されんのかとか気になりますね。やっぱ別のRAMDISKアプリを使った方が幸せになれそうです。

-config "C:\Program Files\SASHome\SASFoundation\9.4\nls\ja\sasv9.cfg"
-MEMLIB
-MEMCACHE 4
-MEMMAXSZ 500M

統計学とは、最低の学問である。

そう言わざるを得ない。

素人でも振りかざせる「統計」。

「解析」がつくと怯む人も出て来るが、実際の所、大した調査もせず、国家統計で出て来ている数字を適当に組み合わせて「分析」と言う人が多い。

統計モデルが、原理原則に基づいたモデルと勘違いしている人が多い。

これはホント不思議なんだけど、「機構は隠されているが」「統計上で見える関係に近い事で物事が動いているんだ」と思う人は多い。

詐欺によく使われる。

統計モデルの適応例として、情けない事に、SEのステップ数計算とかがある。ロクに当たらず、勘の拠り所にもなりづらい。

統計が持ち出されるのは、大抵「はっきりしない」時であるが、統計が「物事をはっきりさせる訳ではない」。

よく疫学として水俣病の話が上がるが、稀な例であり、多くは「はっきりしない事がはっきりする」という冗長な話になる。

ちゃんと使おうとすると、あまりにつまらない道具であるし、詐欺師には大変便利な道具でもある。

もう、「悪用厳禁」とか書いておいたらいいと思う。

SAS University Editionが、鬼畜な仕様で笑った。

VMのテンプレートで提供とか酷えです。


SAS Studioが悪い、って気はしないですが、
大した工夫もなくただプログラムをWeb経由で登録実行出来はするんだけどさ、
ライセンス料金はともかくとして、どう考えたってシンプルに生SAS使うのに比べてCPUやメモリを無駄食いする。パフォーマンス・チューニングもロクに出来ないしな。


今のSASCentOSにだって入れられる(残念ながらDebian系にはそのまんまは入れられない)んだけどさ。
いい加減マルチコア対応とかのちゃんと使いたい訳ですよ。潤沢なメモリ活かして。なのに、何故Webサーバ(裏でJava)の為にメモリ使うんだよ。そんなマルチユーザ向けの機能とかいらないしー。


もう少しSASはエンジンとして使い勝手を良くするべきなのに、うざったいなあ。


大学で利用している人は、大学で購入しているパターンが多いので(Universityのライセンスとかで)、もう少し活用してやるといいんじゃないでしょうか。
University Editionを企業で利用するのは多分宜しくないし、頭も悪い感じになると思います。

ドキュメントも開発手法も、正しく開発設計に向かわなければ、手間も時間も掛かる。

という事を延々と言っているのだけどなあ。


某所にて。
設計書作りと設計が乖離し、開発と開発すべき物が乖離し、お客さんと合意すべきものが散逸し、どこから手を付けるか→卓袱台返しやった方が早いだろう、とは常々思っているのだが。
まあ2月ぐらいから言っているので、結局の所、順調に終わっているのだけど。


昨今の開発において、完全なるウォーターフォールは難しい。
予測不能の開発困難点が発生した時に、要件の方から手をいれる必要があったりするのだが(ここら辺、キッチリ顧客業務要件と機能要件を意識的に分けて考えるべきなのだが、顧客は時々勘違いして要件を飛び越えて機能やUIを要求するし、設計者は業務要件を意識しない事がある)、
ともかくも、関係者全員が無能力状態である。


自分も、開発についての権限は持ち合わせていないしなあ。なんかねえ。


責任取れと言われる事はないだろうが、自分が東京で働いていたらとうの昔に転職してるわーという状況なんだが、それでも自分を常駐させようとか言うんだろうか。
言うんだろうかなあ。
前の担当課長は転職したし、先輩も転職したし、その状況であるという意味分かってんのかねえ。
期待は薄いなあ。


ホント応募しようかしらん。

  • 十年以上、製薬分野でSEとして働いています
  • SASに関しては、おおよそBASE PROGRAMMERとかADVANCEDとかのレベルはあると思います(資格は取ってませんが、かったるいので取ってないだけです)。
  • DIほかのソリューションでの開発経験あり。
  • 臨床試験での統計解析システムの開発経験あり。
    • 基本的な統計なら、パラメトリックもノンパラも分かります。
    • 一般化線形モデルぐらいも。
  • SASでの帳票系の作成経験もあり。
  • 顧客企業としては、おおよそ現在でも5社+公共での作業もあり。
    • ほぼ製薬分野というか新薬メーカーですが。
    • 大した事はしてませんが、SASの裏側に近い事はよくやってます。


まあ、でも、歌って踊れてというタイプのSEなので、スペシャリスト的なものではないんですが。

Windows-1252にある文字のUTF-8に変換した時最大で3バイトになる。

タイトル通り。


いわゆるISO-8859-1、通称Latin-1というヤツであるが、これ、Windows上では拡張されWindows-1252というものになっている。
この拡張された部分に埋められた文字が、UTF-8では3バイトになるものがある。ダガーやダブルダガーとか。


shift_JISからだと、2バイト→最大4バイトでありcvpmultは2で十分なのだが、wlatin-1だとこれがcvpmult=3を設定しなければいけない。
大変残念である。
本来はlatin-1はUTF-8でも文字としてのバイトの中身が変わらんのだけど。大変残念である。
追加:latin-1かつ非ASCIIの場合には、UTF-8と解釈しようとしても上手くいかない。

今更ながら、Windowsのファイル文字列の取り扱いについて。

IBM Windows のファイル名の文字コードについて - Japan
があったので、大変有り難い。


ほぼそれの内容なのだけど。


いわゆるUTF-16LEでNTFSでは登録されているのだが、ファイルシステムが違う場合、特にFATとかでは日本標準ではS-JISに変換されるよう。
で、このファイルパスがUTF-16LEであるのにも関わらず、各アプリケーションではS-JISとして使われる。

(5) Windows 上で稼動するアプリケーションには、Windows カーネルSJIS に変換して渡す

IBM Windows のファイル名の文字コードについて - Japan

これは、必ずという訳ではなく、APIを経由すれば呼び出しも可能のようなのだけど、Windowsの幾つかのものがそもそもそういうのにマトモに対応していない。


WindowsのPIPE機能をSASで使う時などでモロに引っかかると思われる。

SASインストールに関するTip幾つか。

多くの人が、「インストーラーに従ってインストールすれば問題ないよね?」的な発想でインストールされると思います。


特に問題がなければそれでだいたいは大丈夫です。間違ってません。
ただ、たまーに問題が発生するのですが、そこら辺を自力解決というには、ちとインストーラーも含めて親切になり過ぎてます。


まあ、滅多に発生はしないのですが、発生すると「ああ、そういや昔からこんなトラブルあったなあ」と古い人は懐かしく思うんじゃないでしょうか。

前提として

SAS英語圏、頑張ってもLatin-1のあんまり拡張使わない領域で構築されてます。
それ故に、英語圏パッケージでありがちな間違いをよくしています。
そこら辺のトラブルを避けるなら、まずその辺りを考慮し、ダブルバイト文字をとにかく混入させないようにしてください。
また、インストール前の処置は重要です。アンチウィルスソフト停止、はまだいいんですけど、それからSASデータ実行防止の例外に登録しておくことも必要です。

ユーザ名に日本語が入っていると、インストーラーが「インストールの後処理」でコケる。

インストールの後処理で、sasv9.cfg周りの設定をやっているように思うのですが、その際にコケる事があります。
今、Windows8.1ではoutlookアカウントに紐付ける形でアカウントを最初に作る事が多々あり、そのアカウント(管理者権限持ち)でインストールすると、SASバッチで何かしている時にコケてるようです。


Windowsの場合には、大概Administratorが使えるのでそれで実行するのが最善ですが、そうでない場合には、インストール用の英文字だけで構成されたユーザを作成してインストールして下さい。

OQツール実施で、不特定な箇所でFailが発生する。

よく画面眺めていると、データ実行防止機能でsas.exeを止めたと、タスクトレイにポップアップで表示されます。
これは、64bit版SASではなく32bit版SAS限定で発生します。イベントログにはたいていOffice IMEに対してsas.exeが不正アクセスっぽい事してると警告が上がります。
データ実行防止機能の例外に登録してください。

OQツールで、正常にインストールできたのにFailが出る。

レポートにsastestのプログラムが出ているので、それをデフォルトで起動するSAS DMS上で再実行して見て下さい。多分たいていはSASの日本語版が起動すると思います。
proc compareで間抜けにも、日本語の文字と英語の文字を比較している結果が表示されてるかと思います。原因はそれです。

setup.exeを実行し、言語の選択をした後に起動するまでに時間が異様にかかる。

たいていは、アンチウィルスソフトが悪さをしています。インストール中には実行を停止してみて下さい。
Analytics Proでトータル三時間もあればインストール出来るのですが、これを知らなくて辛抱強く待つ人もいます。出来なくもないですが、びっくりするぐらい時間がかかるのでこちら推奨です。

他人の性能に振り回されない為の、大局観。

gin-kei.hatenablog.com
見て。


まあ、タイトル通りですが。
他人の能力というのは過信してはならず、予定通りに進んでなさげな場合には、マイルストーンを適切に作らせるとか、そういう事をしていかなければならない、という気がします。


ちなみに、定型的にミスが発生する場合には、チェックリストなどを作成してもらい、それに従ったチェックをさせるとか、そういう事をしていかないと、レビューアーが増えません。


まあありがちといえばありがちなんですが、社会人の心得とか意識とかに任せるといつまでもそこら辺に忙殺されるので、体系化してフローに組み込んでしまうというのがいいですねん。

p値はnに影響を受けるものなので。

b.hatena.ne.jp
で、ブコメでもちょっとコメントしてますが。

このサンプルサイズでは、検定をしても仕方がない。

まあ、A/Bでそれぞれn=10000みたいな状況の場合には、統計手法の選択もクソもなく、ほぼほぼ元々の母集団での比率に差があればpは0に近くなります。
計算するだけ時間の無駄です。比率出して比較すればいいだけです。


ちなみに、SASのコードで書くとこんな感じですが。

data test ;
	attrib pattern length=$1. ;
	attrib cv length=8 ;
	attrib imp length=8 ;
	input pattern cv imp ;
	cards ;
a 30097 100399
b 28901 99896
; run ;

data test2 ;
	set test ;
	attrib event length=$4. ;
	attrib uu length=8 ;
	event = 'cv' ;
	uu = cv ;
	output ;
	event = 'miss' ;
	uu = imp-cv ;
	output ;
run ;

proc freq data=test2 ;
	table pattern * event /cmh ;
	weight uu ;
quit ;
                                    FREQ プロシジャ

                                 表 : pattern * event

                       pattern        event

                       度数          |
                       パーセント    |
                       行のパーセント|
                       列のパーセント|cv      |miss    |   合計
                       --------------+--------+--------+
                       a             |  30097 |  70302 | 100399
                                     |  15.03 |  35.10 |  50.13
                                     |  29.98 |  70.02 |
                                     |  51.01 |  49.75 |
                       --------------+--------+--------+
                       b             |  28901 |  70995 |  99896
                                     |  14.43 |  35.45 |  49.87
                                     |  28.93 |  71.07 |
                                     |  48.99 |  50.25 |
                       --------------+--------+--------+
                       合計             58998   141297   200295
                                        29.46    70.54   100.00


                             pattern * event の要約統計量

               Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

           統計量    対立仮説                  自由度          値      p 値
           ----------------------------------------------------------------
             1       相関統計量                     1     26.3809    <.0001
             2       ANOVA 統計量                   1     26.3809    <.0001
             3       一般関連統計量                 1     26.3809    <.0001


                               共通オッズ比と相対リスク

    統計量               手法                       値                95% 信頼限界
    ------------------------------------------------------------------------------
    オッズ比             Mantel-Haenszel        1.0516        1.0316        1.0721
                         ロジット               1.0516        1.0316        1.0721

    相対リスク (列 1)    Mantel-Haenszel        1.0362        1.0222        1.0503
                         ロジット               1.0362        1.0222        1.0503

    相対リスク (列 2)    Mantel-Haenszel        0.9853        0.9797        0.9909
                         ロジット               0.9853        0.9797        0.9909


                               標本サイズの合計 = 200295

このモデルをそのまんま使って、ただし、

a 30097 100399
b 28901 99896

a 30 100
b 29 100

a 300 1004
b 289 999

で同じように検定してみましょう。
(見ればわかると思いますが、サンプルサイズを元の千分の一、百分の一という感じにしてます)

                                  FREQ プロシジャ

                               表 : pattern * event

                     pattern        event

                     度数          |
                     パーセント    |
                     行のパーセント|
                     列のパーセント|cv      |miss    |   合計
                     --------------+--------+--------+
                     a             |     30 |     70 |    100
                                   |  15.00 |  35.00 |  50.00
                                   |  30.00 |  70.00 |
                                   |  50.85 |  49.65 |
                     --------------+--------+--------+
                     b             |     29 |     71 |    100
                                   |  14.50 |  35.50 |  50.00
                                   |  29.00 |  71.00 |
                                   |  49.15 |  50.35 |
                     --------------+--------+--------+
                     合計                59      141      200
                                      29.50    70.50   100.00


                           pattern * event の要約統計量

             Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

         統計量    対立仮説                  自由度          値      p 値
         ----------------------------------------------------------------
           1       相関統計量                     1      0.0239    0.8771
           2       ANOVA 統計量                   1      0.0239    0.8771
           3       一般関連統計量                 1      0.0239    0.8771


                             共通オッズ比と相対リスク

  統計量               手法                       値                95% 信頼限界
  ------------------------------------------------------------------------------
  オッズ比             Mantel-Haenszel        1.0493        0.5713        1.9270
                       ロジット               1.0493        0.5713        1.9270

  相対リスク (列 1)    Mantel-Haenszel        1.0345        0.6739        1.5880
                       ロジット               1.0345        0.6739        1.5880

  相対リスク (列 2)    Mantel-Haenszel        0.9859        0.8241        1.1795
                       ロジット               0.9859        0.8241        1.1795


                              標本サイズの合計 = 200
                                    FREQ プロシジャ

                                 表 : pattern * event

                       pattern        event

                       度数          |
                       パーセント    |
                       行のパーセント|
                       列のパーセント|cv      |miss    |   合計
                       --------------+--------+--------+
                       a             |    300 |    704 |   1004
                                     |  14.98 |  35.15 |  50.12
                                     |  29.88 |  70.12 |
                                     |  50.93 |  49.79 |
                       --------------+--------+--------+
                       b             |    289 |    710 |    999
                                     |  14.43 |  35.45 |  49.88
                                     |  28.93 |  71.07 |
                                     |  49.07 |  50.21 |
                       --------------+--------+--------+
                       合計               589     1414     2003
                                        29.41    70.59   100.00


                             pattern * event の要約統計量

               Cochran-Mantel-Haenszel 統計量 (テーブルスコアに基づく)

           統計量    対立仮説                  自由度          値      p 値
           ----------------------------------------------------------------
             1       相関統計量                     1      0.2183    0.6403
             2       ANOVA 統計量                   1      0.2183    0.6403
             3       一般関連統計量                 1      0.2183    0.6403


                               共通オッズ比と相対リスク

    統計量               手法                       値                95% 信頼限界
    ------------------------------------------------------------------------------
    オッズ比             Mantel-Haenszel        1.0469        0.8638        1.2688
                         ロジット               1.0469        0.8638        1.2688

    相対リスク (列 1)    Mantel-Haenszel        1.0329        0.9018        1.1831
                         ロジット               1.0329        0.9018        1.1831

    相対リスク (列 2)    Mantel-Haenszel        0.9866        0.9324        1.0440
                         ロジット               0.9866        0.9324        1.0440


                                標本サイズの合計 = 2003

という感じで、「同傾向のデータでも増やすとより有意を見つけやすくなります」。


元の話に戻って考えてみればいいのですが、

  • 「Aだと10万人来てコンバージョンしてくれた(?)のが3万人」
  • 「Bだと10万人来てコンバージョンしてくれた(?)のが2万9千人」

というぐらいな話なのです。
この3万/10万と2万9千/10万で表されるような「サンプルでの比率」は「母集団の比率の推定値」になるわけなんですが、そうした時に「母集団でも確かにこの比率の差が発生する」という事を仮説として考え、その対立仮説「母集団ではこの比率の差がない」の確率を求めているというのがこのp値です。
まあ、例えば「想定される母集団が例えば10万人程度だったら」、ほぼ全例調査なわけで、そりゃその1千人の差は確かでしょうし、

  • 「Aだと100人来てコンバージョンしてくれた(?)のが30人」
  • 「Bだと100人来てコンバージョンしてくれた(?)のが29人」

だと、先ほどの話よりもサンプルが偶然そうなってただけの可能性があるわけです。


そもそもこんな例数で検定かけるとかwというものです。

連続性の補正。

"2-sample test for equality of proportions with continuity correction" は 2 郡の比率が等しいかどうかを検定したことを意味しています。その際、連続性の補正 (continuity correction) を行った旨が表示されていますが、連続性の補正の有無で経営判断が変わるほど結果に影響を及ぼすことはまずないと思われるので気にしなくて大丈夫です。

A/B テストで施策の効果を検証!エンジニアのための R 入門 - クックパッド開発者ブログ

連続性の補正というのは、カイ二乗検定は、この分布が連続した関数であるカイ二乗分布に従うという仮定で行うのですが、実際には人が0.1人とかそんな分離の仕方しないので、その補正の為に行うものです。
で。
これだけ例数が多いと、一人程度での不連続はあんま意識しなくていいので補正は入れなくてもいいでしょう。


そこら辺の丁寧な説明は
Fisherの正確検定かカイ2乗検定か
とかにあります。
ちなみに、他によく使うのは青木先生の所とか。


経営判断が変わるほど結果に影響を及ぼすことはまずないと思われる」は、サンプルサイズが小さい時には可能性としてありますが、サンプルサイズが小さい時には、二項検定使うでしょうね。
というか、A/Bテストの結果が経営判断に直結するというのは、そもそも会社の経営として頭がおかしだけという話もありますが。

CVRが30%とか言っている時に、1%の差は意味があるんだろうか。

という事を考えた方がいいです。逆に、「どれぐらいの差があった時に検出できるようにするか」という事を検討していった方がいいでしょう。
A/Bテストを「した方がいいのか」というのも、一つの判断になります。

余談。

このあたりの人に、たまにあるのですが、CVRの足し算引き算して前後比較するのに躊躇いがない人がたくさんいます。
一見正しそうですが、サンプルサイズおんなじだった?とかそういう情報ガスガス落としたスライド見る事も多いです。


また、1回のテストでは、どうしてもそれに紛れ込んでくる影響が気になります。タイミングの影響がそこはかとなく存在したりする場合もあるわけですよ。そういうすべての要因を考慮するのは難しいのですが、

  • 理想の条件でテストすれば、実態に合わないテストになる
  • 実態に合わせてテストすると、どうしても沢山の要因を考えないといけない

という二律背反な所があります。
1%ぐらいのCVRなら、幾らテストで高い評価を得てたとしても、おそらくどんなユーザに届いたかとかの方が影響が大きく、そこに金をかけるのは効果的ではない、というような感じですね。


まああと、A/Bテストとかで画面考えてくのって、どちらかと言うとメンテナンスモードの改修で使えるか、ぐらいですねえ本当は。
サイトの成長期なら、テストで出てくる確率ほどの信頼性は当然ないです。検定とかではあくまでテストの対立・帰無仮説を包む大きな仮説が成り立つ時、使えるというものだったりするので。

SASのバージョンアップはかなりツライ。

まあ、SASに限らずだけど。
SASの資格は大したものは持っていないのだけど、体系だってSASを学んだと言うより鬼のような現状に鍛え上げられたという感じなので、ほぼほぼ大概の事は何とかなるようになってる。


んだけど、流石にSAS/GRAPH周りは普段やってない(やる気しない)のでキツい。


EMFという形式でファイルが出力出来るんだが、バージョン違いだとIEだと見えない、という事象が発生した。9.1.3と9.4。
ペイントだと見える。
意味が分からんので、GDEVICEプロシージャで眺め、差分をModifyしたが、結果変わらず。
テクサポに投げたら、9.3でその辺りだいぶ変わってるとの事。うん、まあ、html標準出力とかは大枠は知ってるけど、多分それ関係ないねんと思いながら眺め倒す事にしたら、EMF"Plus"という記述が。


ほう。
Dual形式では見えるとか、EMF形式のパターンでも見えたので、おそらくこれと。
勘弁してくれ。


ファイル拡張子も含め、EMFとして組まれているシステムをどうやって改造すりゃいいのか途方に暮れる。
無論、GDEVICEでエントリ置き換える事もやってみたが、全く効果なし。
どうやらGDEVICEで設定されるレベルでは挙動変えられないっぽい。


悩みに悩んだが、ふと思い立ち、SASのRegistryがあるのを思い出した。たまにfontregでその辺り弄る人はいるだろうけど。
EMF設定のRegistryをEMFPlusの設定で上書きし、無事動く事を確認。


そろそろ、SASの仕組みの裏側覗くような仕事は辞めたい。
正直な所、コレをクリアしたらまた大した事のない風に思われるんだろうなあ。


誰やねん、簡単に移行出来るって客に言ったヤツ。

システムは生物です。消費期限があります。

古いシステムを騙し騙し使う、というのは、実際とてもコストがかかる事が多いのですが。


ほぼほぼその辺りの話は全てお話しているハズなんですが、「聞いてない」というお客さんは多いです。


どんなシステムも、バージョンアップで見た目とか挙動とか変わります。APIも変わるでしょう。
細かくバージョンアップ対応するならいいんですけど、一段飛ばしみたいな事するのは、無理ですからね。
Windows 2003 Server→2008→2008 R2→2012→2012R2
おおよそ五年ぐらいで一度ちゃんと手を入れないといけないという事です。これを10年とかにしてしまうと、その時点で出血確定です。

SASインストール時に、アンチウィルスソフトは「絶対に」止めましょう。死ぬほど暇ならいいですが。

SASインストールのお話ですが。


SASのサーバコンポーネント、jarファイル多いんですが、アンチウィルスソフトによって内部をサーチされる時に、異様に時間がかかります。
今の所、インストールに失敗するケースはありませんが、人間が音を上げるくらい時間が掛かるので、停止して下さい。
ウィルスチェックをしたい場合には、メディアを最初にアンチウィルスソフトでチェックして、でお願いします。


実績値としても、二三時間削れるので。